Categoría:

CakePHP

Ayuda, tutoriales, códigos de ejemplo y mi experiencia trabajando con este framework.

Cakephp generar logs con $this->log();


Generar logs de datos en CakePHP es muy simple y útil con la función log() que es parte de la clase Object que es común para la mayoria de las clases de Cakephp. Esta función log se puede usar en el contexto de una clase de cake ya sea un Modelo, un Controlador, un componente, prácticamente lo que sea, y podrás generar logs con los datos que se desea. La función log() toma dos parámetros. El primero es el mensaje que se desea escribir en el archivo de log. Por defecto, este mensaje de error es escrito en el log de errores ubicado en app/tmp/logs/error.log //Ejecutando esto dentro de una clase CakePHP: $this->log("Registro de datos"); //El resultado de esto se agrega a app/tmp/logs/error.log 2010-13-07 10:22:02 Error: Registro de datos El segundo parámetro es usado para definir el tipo de log con el se quiere escribir el mensaje. Si no se suministra, el valor por defecto es LOG_ERROR, el cual escribe en el log de errores previamente mencionado. Como alternativa, Se puede establecer este segundo parámetro a LOG_DEBUG, para escribir su mensaje en el log de depuración ubicado en app/tmp/logs/debug.log: ///Ejecutando esto dentro de una clase CakePHP: $this->log(‘Un mensaje de depuración.’, [...]

Sin Comentarios Categoria : CakePHP

cakephp codificacion en utf8


Cuando tenéis una aplicación en cakephp y todo está en utf8 es muy importante especificar en la configuración de base de datos que se conecte en utf8 porque en cakephp se pueden generar problemas de codificación a pesar de que todo esté en utf8 (mysql, apache, php, código y html). Para ello hay que añadir la siguiente línea en nuestra configuración de bases de datos /app/config/database.php ‘encoding’ => ‘utf8′ un ejemplo completo estableciendo la codificación en utf8 var $local = array( ‘driver’ => ‘mysql’, ‘persistent’ => false, ‘host’ => ‘localhost’, ‘login’ => ‘root’, ‘password’ => ”, ‘database’ => ‘cake’, ‘prefix’ => ”, ‘encoding’ => ‘utf8′ ); Esto no es un milagro, si hay problemas graves de codificación en una aplicación en cakephp hay que revisar primero todos los elementos que pueden estar generando la inestabilidad en la codificación. Hay muchos elementos a tener en cuenta para que una web esté toda en utf8, como he dicho antes. ¿Quieres saber más sobre problemas de codificación utf 8? Para los que quieran saber más sobre problemas de codificacion web con php, mysql, etc.. he escrito un análisis y resolución sobre este problema en el siguiente artículo: Problemas codificacion web. Configurar codificación utf8 [...]

7 Comentarios Categoria : CakePHP

usando memcached con cakephp


Memcached es un sistema distribuido de cache de objetos está especialmente indicado para webs dinámicas con gran carga a la base de datos. Memcache es una cache en memoria ram, al contrario que la mayoria de los tipos de cache que son mediante ficheros físicos en disco duro. Se puede almacenar fragmentos arbitrarios de datos, ya sean un cadena, un array, un objeto un trozo de html o una página entera. Considero que memcached es un elemento obligatorio a usar en las aplicaciones con cakephp ya que éstas realizan una gran carga a la base de datos cuando hay muchas relaciones entre modelos. Ejemplo por defecto de una configuración de cache con memcache en /app/config/core.php Cache::config(‘default’, array( ‘engine’ => ‘Memcache’, //[required] ‘duration’=> 3600, //[optional] ‘probability’=> 100, //[optional] ‘prefix’ => Inflector::slug(APP_DIR) . ‘_’, //[optional] prefix every cache file with this string ‘servers’ => array( ’127.0.0.1:11211′ // localhost, default port 11211 ), //[optional] ‘compress’ => false, // [optional] compress data in Memcache (slower, but uses less memory) )); Un ejemplo real: Cache::config(‘memcache_ram’, array(‘engine’ => ‘Memcache’,'duration’=> 3600,’probability’=> 100,’servers’ => array(’127.0.0.1:11211′ ), ‘compress’ => false)); Ejemplo de uso en un controlador function leer_post($id) { $resultado = Cache::read(‘post_’.$id,’memcache_ram’); if(empty($resultado)) { $resultado = $this->Cake->findById($id); $resultado = [...]

2 Comentarios Categoria : CakePHP

problema en CacheHelper, crea archivos de caché que pueden entrar en conflicto


Hay un problema bastante serio tanto con el helper de Cache de cakephp como en algunos elementos del core de éste framework, en este caso mas en concreto con el cake/dispatcher.php El problema que voy a comentar es que en mi aplicacion estoy usando el mismo desarrollo que he hecho en cake como base para diferentes sites,  mi site en España, para México,  Peru, etc… mi site, es decir, un site internacional, cargando contenidos geo localizados por dominio, hasta aquí sencillo, no hay mucha dificultad. El problema reside cuando yo quiero cachear una página usando el helper de Cache. *Este helper lo que hace es después de renderizar la vista sobre el layout guarda todo el html generado en la carpeta views. Esta funcionalidad está muy bien y hace que la aplicación sea mucho más rápida, de hecho es necesario que casi todas las aplicaciones que se hagan con cakephp vayan cacheadas por todos los medios posibles, tanto por la el tipo “File”, memcache, etc, pues este framework da mucha carga a la base de datos cuando se hacen relaciones  del tipo, belongsTo, hasMany,etc… Como he explicado el helper genera un archivo de cache de la página que estamos viendo. [...]

Sin Comentarios Categoria : CakePHP

subir ficheros con swfupload componente cakephp

subir ficheros con swfupload componente cakephp

Existe una herramienta genial para subir ficheros a un servidor con PHP, Javascript y un flash, se llama SwfUpload y muchos ya la conocerán, pero integrarla en CakePHP ha sido un poco caos porque los artículos que hay están desactualizados, hechos para versiones obsoletas de SwfUpload o para la versión 1.1 de CakePHP, por lo que he tenido que tocar mucho. En el siguiente artículo de CakePHP lo explican mas o menos http://bakery.cakephp.org/articles/view/swfupload-and-multipurpose-uploader y en la documentación oficial de SwfUpload te envían al artículo, asi que tampoco es que sea una maravilla. Yo voy a explicar lo que he hecho para integrar el SwfUpload en CakePHP con las versiones mas actuales ahora mismo: CakePHP: 1.2 y SwfUpload 2.2.0.1 Lo primero el Componente. Que es lo único que he copiado íntegro del artículo. y guardarlo en app/controllers/components/swf_upload.php <?php /* $Id$ */ /** * SwfUploadComponent – A CakePHP Component to use with SWFUpload * Copyright (C) 2006-2007 James Revillini <james at revillini dot com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the [...]

37 Comentarios Categoria : CakePHP
  1. Páginas:
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5

Colabora, añade +1 a mi blog!!