Buenas prácticas en el desarrollo de aplicaciones con CakePhp

LIBP-0107 (Libro de pautas)

Conjunto de indicaciones destinadas a optimizar el desarrollo de aplicaciones en PHP, basadas en el framework Cake PHP

Pautas

TítuloCarácter
Uso de $usesNo Recomendada
ContainableRecomendada
Debug a 0Recomendada
CachéObligatoria
Persistencia de los modelosObligatoria

Uso de $uses

No usar $uses a menos que sea realmente necesario

El uso de la $uses implica un mayor consumo de recursos y una bajada de rendimiento de las aplicaciones

Containable

Usar Containable para simplificar las operaciones sobre los enlaces

Es recomendable hacer uso de Containable para simplificar las operaciones sobre los enlaces del modelo. Esto ayudará a reducir el desgaste innecesario de la base de datos, aumentando la velocidad y el rendimiento general de su aplicación. La clase también ayudará a buscar y filtrar los datos para los usuarios de una manera limpia y consistente, agilizando y simplificando las operaciones sobre los enlaces del modelo. 

Debug a 0

Establecer el debug a 0 para aumentar el tiempo de expiración

Es una recomendación clara pero es bastante habitual olvidarla. El motor Cake genera dos secciones de caché. La primera es /tmp/cache/models. En ella, se describe un fichero por cada modelo que contiene la tabla schema de su sistema. La salida de las consultas se filtran si el nivel de debug es 0

La segunda caché es /tmp/cache/persistent. Hay una pareja de ficheros diferentes allí que son usados por Cake cuando se esta ejecutando la aplicacion. El fichero que causa que una deceleración en la ejecución es cake_core_file_map. Este fichero almacena las rutas de varias clases en la aplicacion. Para construir el fichero, Cake utiliza la lógica para buscar por el árbol el fichero correcto. Si ponemos debug a 0 aumentamos el tiempo de expiración de estos archivos en el caché, lo cual es muy necesario en estos ficheros. Poniendo el debug aumentamos la expiración del cache a 999 días.

Caché

Utilizar el caché para almacenar el diseño (layouts) y las vistas

Se debe hacer uso del caché para almacenar el diseño (layouts) y las vistas, ahorrando tiempo en la recuperación de datos repetidos. Cabe señalar que el Cache helper no tiene métodos que sean directamente llamados. En su lugar, las vistas son marcadas con etiquetas de caché que indican qué bloques de contenido no deben ser almacenados en caché.

Cuando se solicita la URL, Cake realiza controles para ver si esa cadena de solicitud ya se ha almacenado en caché. Si la tiene, el resto del proceso de envío de url es omitido. Todos los bloques nocache se procesan con normalidad, lo que provoca un gran ahorro en tiempo de tramitación de cada solicitud a una dirección URL en caché ya que se ejecuta como código mínimo. Si Cake no encuentra una vista en caché, o ha expirado para la URL solicitada, prosigue para procesar la solicitud normalmente.

Persistencia de los modelos

Añadir en el controlador el atributo var $persistModel = true;

Los modelos deben hacerse persistentes para aumentar el rendimiento cuando existan relaciones entre ellos. Para ello, se añadirá en el controlador el atributo:

var $persistModel = true;

Contenidos relacionados

Recursos
Área: Desarrollo » Construcción de Aplicaciones por Capas » PHP
Código Título Tipo Carácter
RECU-0262 CakePHP Referencia Recomendado