advanced cakephp tips

# Obetener la ip de la peticion
$this->request->clientIp();

# cargar on the fly

# en una clase con controller
$this->loadModel( ‘User’ );
# en una clase sin controller
$User = ClassRegistry::init(‘User’);

# Cargar componente
$this->MyComponent = $this->Components->load(‘MyComponent’);
# initialize manual del componenete
# necesitaremos estar dentro de un controller
$this->MyComponente->initialize( $this->Controller );

Nota:
Se puede cargar automáticamente si nuestro componente tiene este método
[php]
public function initialize(Controller $controller) {
$this->controller = $controller;
}
[/php]

# Cargar helper
$this->helpers[] = ‘MyHelper’;

# Cargar una vista para retornar el codigo html renderizado sin que salga por la salida standard
$view = new View();
$view->layout = ‘mylayout’;
$view->set( compact(‘myvar’) );
$view->render( ‘myview’ );

# Generar un fichero schema para un plugin
./Console/cake schema generate –plugin Users
# importar un schema de un plugin
./Console/cake schema update –plugin Users
# los schemas se generan chequeando los modelos que existen dentro de Plugin/PluginName/Models

# nombrar tablas
ofertas
usuarios
ofertas_usuarios # en orden alpha
privada_ofertas # para ofertas privadas, puede haber otra tabla que sea ofertas

# nombrar los campos
name
title
first_name
user_id
establishment_id

# ejecutar un test de modelo de un plugin
Console/cake test Users Model/Offer
# lanzar solo un test de todos los que hay en un modelo
Console/cake test Users Model/Offer –filter test_nombre_del_test_a_probar

# generar un fixture para un plugin
# los fixtures deben coincidir con el schema de la base de datos , si no, los test podrían fallar
Console/cake bake fixture offers_users –plugin Users


Publicado

en

por

Etiquetas:

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.