Cake PHPCookbook
Cake PHPCookbook
Publicacin 3.x
27 de August de 2015
ndice general
1. CakePHP at a Glance
Additional Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
3
3
3
4. Tutoriales y Ejemplos
Bookmarker Tutorial . . . . . . . . . . . . . . . . .
Bookmarker Tutorial Part 2 . . . . . . . . . . . . . .
Tutorial de desarrollo del Blog . . . . . . . . . . . .
Tutorial de desarrollo del Blog - Aadiendo una capa
Blog Tutorial - Part 3 . . . . . . . . . . . . . . . . .
Simple Authentication and Authorization Application
5. Contributing
Documentation . . . . . . . . .
Tickets . . . . . . . . . . . . . .
Code . . . . . . . . . . . . . . .
Coding Standards . . . . . . . .
Backwards Compatibility Guide
6. Instalacin
Requisitos . . . . . .
Licencia . . . . . . .
Instalando CakePHP
Permisos . . . . . . .
Configuracin . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
. 7
. 7
. 8
. 12
. 23
. 23
.
.
.
.
.
.
.
.
.
.
25
25
25
26
26
26
.
.
.
.
.
27
27
28
28
29
29
.
.
.
.
.
Desarrollo . . .
Produccin . .
URL Rewriting
A rodar! . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7. Configuration
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
30
31
31
33
8. Routing
35
Dispatcher Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9. Request & Response Objects
37
10. Controllers
39
More on Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
11. Views
43
More About Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
12. Models
49
More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
13. Authentication
55
59
65
18. ES - Deployment
67
19. Email
69
71
73
75
23. Logging
77
79
25. Pagination
81
26. Plugins
83
II
27. REST
85
28. Security
87
Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Cross Site Request Forgery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
29. Sessions
89
30. Testing
91
31. Validation
93
95
33. Collections
97
99
35. Hash
101
103
37. Inflector
105
38. Number
107
109
40. Text
111
41. Time
113
42. Xml
115
117
119
45. Migrations
121
46. Appendices
3.0 Migration Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Migration Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
123
124
124
125
127
ndice
129
III
IV
CAPTULO 1
CakePHP at a Glance
Additional Reading
Where to Get Help
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
CakePHP Conventions
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github3 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
1
https://github.com/cakephp/docs
https://github.com/cakephp/docs
3
https://github.com/cakephp/docs
2
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
CAPTULO 2
Bookmarker Tutorial
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
3
https://github.com/cakephp/docs
2
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
CAPTULO 3
https://github.com/cakephp/docs
CAPTULO 4
Tutoriales y Ejemplos
En esta seccin puedes encontrar varias aplicaciones completas construidas en CakePHP que te ayudarn a
comprender el framework y ver cmo se relacionan todas las piezas.
Tambin puedes ver otros ejemplos en: CakePackages1 y en Bakery2 encontrars tambin componentes
listos para usar.
Bookmarker Tutorial
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github3 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
http://plugins.cakephp.org/
http://bakery.cakephp.org/
3
https://github.com/cakephp/docs
4
https://github.com/cakephp/docs
2
Obtener CakePHP
La manera ms sencilla de ponerse en marcha es utilizando Composer. Composer te permite instalar fcilmente CakePHP desde tu terminal o consola. Primero, debes descargar e instalar Composer si todava no lo
has hecho. Si tienes cURL instalado, es tan fcil como ejecutar lo siguiente:
curl -s https://getcomposer.org/installer | php
O puedes descargar composer.phar desde la pgina web de Composer5 .
Instalando Composer de manera global evitars tener que repetir este paso para cada proyecto.
Luego, simplemente escribe la siguiente lnea en tu terminal desde tu directorio de instalacin para instalar
el esqueleto de la aplicacin de CakePHP en el directorio [nombre_app].
php composer.phar create-project --prefer-dist cakephp/app [nombre_app]
La ventaja de utilizar Composer es que automticamente completar algunas tareas de inicializacin, como
aplicar permisos a ficheros y crear tu fichero config/app.php por ti.
Existen otros modos de instalar CakePHP si no te sientes cmodo con Composer. Para ms informacin
revisa la seccin Instalacin.
5
https://getcomposer.org/download/
Dejando de lado cmo has descargado e instalado CakePHP, una vez ha terminado la configuracin, tu
directorio de instalacin debera tener la siguiente estructura:
/directorio_raiz
/config
/logs
/src
/plugins
/tests
/tmp
/vendor
/webroot
.gitignore
.htaccess
.travis.yml
README.md
composer.json
phpunit.xml.dist
Quizs sea buen momento para aprender algo sobre cmo funciona esta estructura de directorios: echa un
vistazo a la seccin CakePHP Folder Structure.
Si por alguna razn CakePHP no puede escribir en ese directorio, sers informado mediante una alerta
mientras no ests en modo produccin.
A pesar de que no se recomienda, si no eres capaz de aplicar la propiedad del directorio al mismo usuario
que el servidor web, puedes simplemente aplicar permisos de escritura al directorio ejecutando un comando
tipo:
$ chmod 777 -R tmp
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
La eleccin de los nombres para el nombre de la tabla y de algunas columnas no se ha hecho al azar. Si
sigues las convenciones para nombres en la Base de Datos, y las dems convenciones en tus clases (ver
ms sobre convenciones aqu: CakePHP Conventions), aprovechars la potencia del framework y ahorrars
mucho trabajo de configuracin. CakePHP es suficientemente flexible como para acomodarse hasta en el
peor esquema de base de datos, pero utilizando las convenciones ahorrars tiempo.
Echa un vistazo a las convencionnes para ms informacin, pero basta decir que nombrando nuestra tabla
articles automticamente lo vincula a nuestro modelo Articles y que campos llamados modified y created
sern gestionados automticamente por CakePHP.
Al llamar articles a nuestra tabla de artculos, estamos diciendo a CakePHP que vincule esta tabla por
defecto al Modelo Articles, e incluiya los campos modified y created con ese nombre, los cules sern
automticamente administrados por CakePHP.
10
En cuanto guardes tu nuevo fichero app.php deberas de ser capaz de acceder mediante tu navegador web
y ver la pgina de bienvenida de CakePHP. Tambin debera decirte que se ha encontrado el fichero de
configuracin as como que ha podido conectarse a la base de datos.
Nota: Recuerda que debes tener PDO y pdo_mysql habilitados en tu php.ini.
Configuracin Opcional
An hay unas pocas cosas que puedes configurar. La mayora de desarrolladores acaban estos tems de la
lista de la compra, pero no se necesitan para este tutorial. Uno de ellos es definir un string de seguridad
(security salt) para realizar los hash de seguridad.
El string de seguridad se utiliza para generar hashes. Cambia el valor por defecto editando el fichero
/config/app.php. No importa mucho el valor que contenga, cuanto ms largo ms difcil de averiguar:
'Security' => [
'salt' => 'Algo largo y conteniendo un montn de distintos valores.',
],
Sobre mod_rewrite
Si eres nuevo usuario de apache, puedes encontrar alguna dificultad con mod_rewrite, as que lo trataremos
aqu.
Si al cargar la pgina de bienvenida de CakePHP ves cosas raras (no se cargan las imgenes ni los estilos
y se ve todo en blanco y negro), esto significa que probablemente mod_rewrite no est funcionando en tu
sistema. Por favor, consulta la seccin para tu servidor entre las siguientes acerca de re-escritura de URLs
para poder poner en marcha la aplicacin:
1. Comprueba que existen los ficheros .htaccess en el directorio en el que est instalada tu aplicacin
web. A veces al descomprimir el archivo o al copiarlo desde otra ubicacin, estos ficheros no se copian
correctamente. Si no estn ah, obtn otra copia de CakePHP desde el servidor oficial de descargas.
2. Asegrate de tener activado el mdulo mod_rewrite en la configuracin de apache. Deberas tener
algo as:
LoadModule rewrite_module
libexec/httpd/mod_rewrite.so
mod_rewrite.c
en tu fichero httpd.conf
11
Si no puedes (o no quieres) configurar mod_rewrite o algn otro mdulo compatible, necesitars activar las
url amigables en CakePHP. En el fichero /config/app.php, quita el comentario a la lnea:
'App' => [
// ...
// 'baseUrl' => env('SCRIPT_NAME'),
]
12
https://github.com/cakephp/docs
Los convenios usados para los nombres son importantes. Llamando a nuestro objeto Tabla
ArticlesTable, CakePHP deducir automticamente que esta Tabla ser utilizada en el controlador
ArticlesController, y que se vincular a una tabla en nuestra base de datos llamada articles.
Nota: CakePHP crear dinmicamente un objeto para el modelo si no encuentra el fichero correspondiente en /src/Model/Table. Esto significa que si te equivocas al nombrar el fichero (por ejemplo lo llamas
articlestable.php en minscula o ArticleTable.php en singular) CakePHP no va a reconocer la configuracin que escribas en ese fichero y utilizar valores por defecto.
Para ms informacin sobre modelos, como callbacks y validaciones echa un vistazo al captulo del Manual
Models.
Vamos a aadir una accin a nuestro nuevo controlador. Las acciones representan una funcin
concreta o interfaz en nuestra aplicacin. Por ejemplo, cuando los usuarios recuperan la url
www.example.com/articles/index (que es lo mismo que www.example.com/articles/) esperan ver un listado
de artculos. El cdigo para tal accin sera este:
namespace App\Controller;
class ArticlesController extends AppController
{
public function index()
{
$articles = $this->Articles->find('all');
$this->set(compact('articles'));
}
}
Por el hecho de haber definido el mtodo index() en nuestro ArticlesController, los usuarios ahora pueden
Tutorial de desarrollo del Blog - Aadiendo una capa
13
<!-- Aqu es donde iteramos nuestro objeto de consulta $articles, mostrando en pantalla
<?php foreach ($articles as $article): ?>
<tr>
<td><?= $article->id ?></td>
<td>
<?= $this->Html->link($article->title,
['controller' => 'Articles', 'action' => 'view', $article->id]) ?>
14
</td>
<td><?= $article->created->format(DATE_RFC850) ?></td>
</tr>
<?php endforeach; ?>
</table>
Si observas la funcin view(), ahora el mtodo set() debera serte familiar. Vers que estamos usando get()
en vez de find(all) ya que slo queremos un artculo concreto.
Vers que nuestra funcin view toma un parmetro: el ID del artculo que queremos ver. Este parmetro se
gestiona automticamente al llamar a la URL /articles/view/3, el valor 3 se pasa a la funcin view
Tutorial de desarrollo del Blog - Aadiendo una capa
15
esta
nueva
funcin
view
ubicndola
en
Verifica que esto funciona probando los enlaces en /articles/index o puedes solicitndolo manualmente accediendo a /articles/view/1.
Aadiendo Artculos
Leer de la base de datos y mostrar nuestros artculos es un gran comienzo, pero permitamos tambin aadir
nuevos artculos.
Lo primero, aadir una nueva accin add() en nuestro controlador ArticlesController:
namespace App\Controller;
class ArticlesController extends AppController
{
public $components = ['Flash'];
public function index()
{
$this->set('articles', $this->Articles->find('all'));
}
public function view($id)
{
$article = $this->Articles->get($id);
$this->set(compact('article'));
}
public function add()
{
$article = $this->Articles->newEntity();
if ($this->request->is('post')) {
$article = $this->Articles->patchEntity($article, $this->request->data);
if ($this->Articles->save($article)) {
$this->Flash->success(__('Your article has been saved.'));
return $this->redirect(['action' => 'index']);
}
16
Nota: Necesitas incluir el FlashComponent en cualquier controlador donde vayas a usarlo. Si lo ves necesario, inclyelo en tu AppController.
Lo que la funcin add() hace es: si el formulario enviado no est vaco, intenta salvar un nuevo artculo
utilizando el modelo Articles. Si no se guarda bien, muestra la vista correspondiente, as podremos mostrar
los errores de validacin u otras alertas.
Cada peticin de CakePHP incluye un objeto Request que es accesible utilizando $this->request.
El objeto de peticin contiene informacin til acerca de la peticin que se recibe y puede
ser utilizado para controlar el flujo de nuestra aplicacin. En este caso, utilizamos el mtodo
Cake\Network\Request::is() para verificar que la peticin es una peticin HTTP POST.
Cuando un usuario utiliza un formulario y efecta un POST a la aplicacin, esta informacin est disponible
en $this->request->data. Puedes usar la funcin pr() o debug() para mostrar el contenido de
esa variable y ver la pinta que tiene.
Utilizamos el mtodo mgico __call del FlashComponent para guardar un mensaje en una variable de sesin que ser mostrado en la pgina despus de la redireccin. En la plantilla tenemos <?=
$this->Flash->render() ?> que muestra el mensaje y elimina la correspondiente variable de
sesin. El mtodo Cake\Controller\Controller::redirect del controlador redirige hacia otra
URL. El parmetro [action => index] se traduce a la URL /articles (p.e. la accin index del
controlador de artculos). Puedes echar un ojo al mtodo Cake\Routing\Router::url() en la API7
para ver los formatos en que puedes especificar una URL para varias funciones de CakePHP.
Al llamar al mtodo save(), comprobar si hay errores de validacin primero y si encuentra alguno,
no continuar con el proceso de guardado. Veremos a continuacin cmo trabajar con estos errores de
validacin.
http://api.cakephp.org
17
<?php
echo
echo
echo
echo
echo
?>
$this->Form->create($article);
$this->Form->input('title');
$this->Form->input('body', ['rows' => '3']);
$this->Form->button(__('Guardar artculo'));
$this->Form->end();
Si create() no tiene parmetros al ser llamado, asume que ests creando un formulario que enva va
POST a la accin add() (o edit() cuando id es incluido en los datos de formulario) del controlador
actual.
El mtodo $this->Form->input() se utiliza para crear elementos de formulario del mismo nombre.
El primer parmetro le indica a CakePHP a qu campo corresponde y el segundo parmetro te permite
especificar un abanico muy mplio de opciones - en este caso, el nmero de filas del textarea que se generar.
Hay un poco de introspeccin y automagia aqu: input() generar distintos elementos de formulario en
funcin del campo del modelo especificado.
La llamada a $this->Form->end() cierra el formulario. Tambin generar campos ocultos si la
CSRF/prevencin de manipulacin de formularios ha sido habilitada.
Volvamos atrs un minuto y actualicemos nuestra vista src/Template/Articles/index.ctp para aadir un
enlace de Aadir Artculo. Justo antes del tag <table> aade la siguiente lnea:
<?= $this->Html->link(
'Aadir artculo',
['controller' => 'Articles', 'action' => 'add']
) ?>
Te estars preguntando: Cmo le digo a CakePHP la forma en la que debe validar estos datos? Muy sencillo,
las reglas de validacin se escriben en el modelo. Volvamos al modelo Articles y hagamos algunos
ajustes:
namespace App\Model\Table;
use Cake\ORM\Table;
use Cake\Validation\Validator;
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->addBehavior('Timestamp');
}
public function validationDefault(Validator $validator)
{
$validator
18
->notEmpty('title')
->notEmpty('body');
return $validator;
}
}
El mtodo validationDefault() le dice a CakePHP cmo validar tus datos cuando se invoca el
mtodo save(). Aqu hemos especificado que ambos campos, el cuerpo y el ttulo, no pueden quedar
vacos. El motor de validaciones de CakePHP es potente y con numerosas reglas ya predefinidas (tarjetas de
crdito, direcciones de e-mail, etc.) as como flexibilidad para aadir tus propias reglas de validacin. Para
ms informacin en tal configuracin, echa un vistazo a la documentacin Validation.
Ahora que ya tienes las reglas de validacin definidas, usa tu aplicacin para crear un nuevo artculo con un ttulo vaco y vers cmo funcionan. Como hemos usado el mtodo
Cake\View\Helper\FormHelper::input(), los mensajes de error se construyen automticamente en la vista sin cdigo adicional.
Editando Artculos
Editando artculos: all vamos. Ya eres un profesional de CakePHP, as que habrs cogido la pauta. Crear una accin, luego la vista. He aqu cmo debera ser la accin edit() del controlador
ArticlesController:
public function edit($id = null)
{
$article = $this->Articles->get($id);
if ($this->request->is(['post', 'put'])) {
$this->Articles->patchEntity($article, $this->request->data);
if ($this->Articles->save($article)) {
$this->Flash->success(__('Tu artculo ha sido actualizado.'));
return $this->redirect(['action' => 'index']);
}
$this->Flash->error(__('Tu artculo no se ha podido actualizar.'));
}
$this->set('article', $article);
}
Lo primero que hace este mtodo es asegurarse de que el usuario ha intentado acceder a un registro existente. Si no han pasado el parmetro $id o el artculo no existe lanzaremos una excepcin
NotFoundException para que el ErrorHandler se ocupe de ello.
Luego verifica si la peticin es POST o PUT. Si lo es, entonces utilizamos los datos recibidos para actualizar
nuestra entidad artculo (article) utilizando el mtodo patchEntity. Finalmente utilizamos el objeto
tabla para guardar la entidad de nuevo o mostrar errores de validacin al usuario en caso de haberlos.
La vista sera algo as:
<!-- File: src/Template/Articles/edit.ctp -->
<h1>Edit Article</h1>
19
<?php
echo
echo
echo
echo
echo
?>
$this->Form->create($article);
$this->Form->input('title');
$this->Form->input('body', ['rows' => '3']);
$this->Form->button(__('Guardar artculo'));
$this->Form->end();
Mostramos el formulario de edicin (con los valores actuales de ese artculo), junto a los errores de validacin que hubiese.
CakePHP utilizar el resultado de $article->isNew() para determinar si un save() debera insertar
un nuevo registro o actualizar uno existente.
Puedes actualizar tu vista ndice (index) con enlaces para editar artculos especficos:
<!-- File: src/Template/Articles/index.ctp
<h1>Artculos</h1>
<p><?= $this->Html->link("Aadir artculo", ['action' => 'add']) ?></p>
<table>
<tr>
<th>Id</th>
<th>Title</th>
<th>Created</th>
<th>Action</th>
</tr>
<!-- Aqu es donde iteramos nuestro objeto de consulta $articles, mostrando en pantalla la
<?php foreach ($articles as $article): ?>
<tr>
<td><?= $article->id ?></td>
<td>
<?= $this->Html->link($article->title, ['action' => 'view', $article->id]) ?>
</td>
<td>
<?= $article->created->format(DATE_RFC850) ?>
</td>
<td>
<?= $this->Html->link('Editar', ['action' => 'edit', $article->id]) ?>
</td>
</tr>
<?php endforeach; ?>
</table>
Borrando Artculos
Vamos a permitir a los usuarios que borren artculos. Empieza con una accin delete() en el controlador
ArticlesController:
20
La lgica elimina el artculo especificado por $id y utiliza $this->Flash->success() para mostrar al
usuario un mensaje de confirmacin tras haber sido redirigidos a /articles. Si el usuario intenta eliminar
utilizando una peticin GET, el allowMethod devolvera una Excepcin. Las excepciones que no se traten
sern capturadas por el manejador de excepciones de CakePHP (exception handler) y una bonita
pgina de error es mostrada. Hay muchas Excepciones que pueden ser utilizadas para indicar los varios
errores HTTP que tu aplicacin pueda generar.
Como estamos ejecutando algunos mtodos y luego redirigiendo a otra accin de nuestro controlador, no es
necesaria ninguna vista (nunca se usa). Lo que si querrs es actualizar la vista index.ctp para inclur el ya
habitual enlace:
<!-- File: src/Template/Articles/index.ctp -->
<h1>Artculos</h1>
<p><?= $this->Html->link("Aadir artculo", ['action' => 'add']) ?></p>
<table>
<tr>
<th>Id</th>
<th>Title</th>
<th>Created</th>
<th>Action</th>
</tr>
<!-- Aqu es donde iteramos nuestro objeto de consulta $articles, mostrando en pantalla la
<?php foreach ($articles as $article): ?>
<tr>
<td><?= $article->id ?></td>
<td>
<?= $this->Html->link($article->title, ['action' => 'view', $article->id]) ?>
</td>
<td>
<?= $article->created->format(DATE_RFC850) ?>
</td>
<td>
<?= $this->Form->postLink(
'Eliminar',
['action' => 'delete', $article->id],
['confirm' => 'Ests seguro?'])
?>
<?= $this->Html->link('Editar', ['action' => 'edit', $article->id]) ?>
</td>
21
</tr>
<?php endforeach; ?>
</table>
Rutas (Routes)
En muchas ocasiones, las rutas por defecto de CakePHP funcionan bien tal y como estn. Los desarroladores
que quieren rutas diferentes para mejorar la usabilidad apreciarn la forma en la que CakePHP relaciona las
URLs con las acciones de los controladores. Vamos a hacer cambios ligeros para este tutorial.
Para ms informacin sobre las rutas as como tcnicas avanzadas revisa routes-configuration.
Por defecto CakePHP responde a las llamadas a la raz de tu sitio (por ejemplo http://www.example.com)
usando el controlador PagesController, mostrando una vista llamada home. En lugar de eso, lo reemplazaremos con nuestro controlador ArticlesController creando una nueva ruta.
Las reglas de enrutamiento estn en /config/routes.php. Querrs eliminar o comentar la lnea que
define la raz por defecto. Dicha ruta se parece a esto:
Router::connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
Esta lnea conecta la url / con la pgina por defecto de inicio de CakePHP. Queremos conectarla a nuestro
propio controlador, as que reemplaza dicha lnea por esta otra:
Router::connect('/', ['controller' => 'Articles', 'action' => 'index']);
Esto debera, cuando un usuario solicita /, devolver la accin index() del controlador ArticlesController.
Nota: CakePHP tambin calcula las rutas a la inversa. Si en tu cdigo pasas el array [controller
=> Articles, action => index] a una funcin que espera una url, el resultado ser /.
Es buena idea usar siempre arrays para configurar las URL, lo que asegura que los links irn siempre al
mismo lugar.
Conclusin
Creando aplicaciones de este modo te traer paz, honor, amor, dinero a carretas e incluso tus fantasas ms
salvajes. Simple, no te parece? Ten en cuenta que este tutorial es muy bsico, CakePHP tiene muchas otras
cosas que ofrecer y es flexible aunque no hemos cubierto aqu estos puntos para que te sea ms simple al
principio. Usa el resto de este manual como una gua para construir mejores aplicaciones.
22
Ahora que ya has creado una aplicacin CakePHP bsica, ests listo para la vida real. Empieza tu nuevo
proyecto y lee el resto del Cookbook as como la API8 .
Si necesitas ayuda, hay muchos modos de encontrar la ayuda que buscas - por favor, mralo en la pgina
Where to Get Help. Bienvenido a CakePHP!
http://api.cakephp.org
https://github.com/cakephp/docs
10
https://github.com/cakephp/docs
9
23
24
CAPTULO 5
Contributing
Documentation
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Tickets
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github3 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
1
https://github.com/cakephp/docs
https://github.com/cakephp/docs
3
https://github.com/cakephp/docs
2
25
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Code
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github4 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Coding Standards
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github5 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
6
https://github.com/cakephp/docs
5
26
Captulo 5. Contributing
CAPTULO 6
Instalacin
CakePHP se instala rpida y fcilmente. Los requisitos mnimos son un servidor web y una copia de
CakePHP, y ya! Aunque este manual se enfoca principalmente en configurar Apache (ya que es el ms
utilizado), puedes configurar CakePHP para que corra con una variedad de servidores web como nginx,
LightHTHPD o Microsoft IIS.
Requisitos
Servidor HTTP. Por ejemplo: Apache. mod_rewrite es recomendado, pero no requerido.
PHP 5.4.16 o mayor.
extensin mbstring.
extensin intl.
Tcnicamente una base de datos no es necesaria, pero imaginamos que la mayora de aplicaciones utiliza
alguna. CakePHP soporta una gran variedad de sistemas de bases de datos:
MySQL (5.1.10 o mayor).
PostgreSQL.
Microsoft SQL Server (2008 o mayor).
SQLite 3.
Nota: Todos los drivers nativos necesitan PDO. Debes asegurarte de tener las extensiones de PDO correctas.
27
Licencia
CakePHP est licenciado bajo la Licencia MIT1 . Esto signigica que eres libre para modificar, distribuir y
republicar el cdigo fuente con la condicin de que las notas de copyright queden intactas. Tambin eres
libre para incorporar CakePHP en cualquier aplicacin comercial o de cdigo cerrado.
Instalando CakePHP
CakePHP utiliza Composer2 , una herramienta de manejo de dependicias para PHP 5.3+, como el mtodo de
instalacin oficialmente soportado.
Primero, necesitas descargar e instalar Composer, si no lo has hecho ya. Si tienes instalado cURL, es tan
fcil como correr esto en un terminal:
curl -s https://getcomposer.org/installer | php
Una vez que Composer termine de descargar el esqueleto y la librera core de CakePHP, deberas tener una
aplicacin funcional de CakePHP instalada va Composer. Asegrate de que los ficheros composer.json y
composer.lock se mantengan junto con el resto de tu cdigo fuente.
Ahora puedes visitar el destino donde instalaste la aplicacin y ver los diferentes avisos de setup.
http://www.opensource.org/licenses/mit-license.php
http://getcomposer.org
3
https://getcomposer.org/download/
4
https://github.com/composer/windows-setup/releases/
5
https://github.com/composer/windows-setup
2
28
Captulo 6. Instalacin
Donde <branch> es el nombre del branch que quieres seguir. Cada vez que ejecutes php
composer.phar update recibirs las ltimas actualizaciones del branch seleccionado.
Permisos
CakePHP utiliza el directorio tmp para varias operaciones. Descripciones de Modelos, el cach de las vistas
y la informacin de la sesin son algunos ejemplos de lo anterior. El directorio logs es utilizado para para
escribir ficheros de log por el motor de FileLog por defecto.
Asegrate de que los directorios logs, tmp y todos sus subdirectorios tengan permisos de escritura por
el usuario del Servidor Web. La instalacin de CakePHP a travs de Composer se encarga de este proceso
haciendo que dichos directorios tengan los permisos abiertos globalmente con el fin de que puedas tener
el setup de manera ms rpida. Obviamente es recomendable que revises, y modifiques si es necesario, los
permisos tras la instalacin va Composer para mayor seguridad.
Un problema comn es que logs, tmp y sus subdirectorios deben poder ser modificados tanto por el
usuario del Servidor Web como por el usuario de la lnea de comandos. En un sistema UNIX, si los usuarios
mencionados difieren, puedes ejecutar los siguientes comandos desde el directorio de tu aplicacin para
asegurarte de que todo est configurado correctamente:
HTTPDUSER=`ps
setfacl -R -m
setfacl -R -d
setfacl -R -m
setfacl -R -d
Configuracin
Configurar una aplicacin de CakePHP puede ser tan simple como colocarla en el directorio raz de tu
Servidor Web, o tan complejo y flexible como lo desees. Esta seccin cubrir los dos tipos principales de
instalacin de CakePHP: Desarrollo y Produccin.
Desarrollo: fcil de arrancar, las URLs de la aplicacin incluyen el nombre del directorio de la aplicacin de CakePHP y es menos segura.
Produccin: Requiere tener la habilidad de configurar el directorio raz del Servidor Web, cuenta con
URLs limpias y es bastante segura.
Desarrollo
Este es el mtodo ms rpido para configurar CakePHP. En este ejemplo utilizaremos la consola de
CakePHP para ejecutar el servidor web nativo de PHP para hacer que tu aplicacin est disponible en
http://host:port. Para ello ejecuta desde el directorio src:
bin/cake server
Permisos
29
Produccin
Una instalacin de produccin es una manera ms flexible de montar una aplicacin de CakePHP. Utilizando este mtodo, podrs tener un dominio entero actuando como una sola aplicacin de CakePHP. Este
ejemplo te ayudar a instalar CakePHP donde quieras en tu sistema de ficheros y tenerlo disponible en
http://www.example.com. Toma en cuenta que esta instalacin requiere que tengas los derechos de
cambiar el directorio raz (DocumentRoot) del servidor web Apache.
Despus de instalar tu aplicacin utilizando cualquiera de los mtodos mencionados en el directorio elegido
- asumiremos que has escogido /cake_install - tu estructura de ficheros debe ser la siguiente:
/cake_install/
bin/
config/
logs/
plugins/
src/
tests/
tmp/
vendor/
webroot/ (this directory is set as DocumentRoot)
.gitignore
.htaccess
.travis.yml
composer.json
index.php
phpunit.xml.dist
README.md
Si tu configuracin del Servidor Web es correcta debes tener tu aplicacin disponible aora en
http://www.example.com.
30
Captulo 6. Instalacin
URL Rewriting
Si quieres utilizar URL rewriting, entra en la seccin dedicada a ello:
A rodar!
Muy bien, ahora veamos a CakePHP en accin. Dependiendo del setup que hayas utilizado, deberas dirigirte
en tu navegador a http://example.com/ o http://localhost:8765/. En este punto, encontrs el home principal
de CakePHP y un mensaje que te dice el status actual de tu conexin a la base de datos.
Felicidades! Ests listo para Crear tu primera aplicacin de CakePHP.
URL Rewriting
31
32
Captulo 6. Instalacin
CAPTULO 7
Configuration
https://github.com/cakephp/docs
33
34
Captulo 7. Configuration
CAPTULO 8
Routing
class Cake\Routing\Router
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Dispatcher Filters
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
1
2
https://github.com/cakephp/docs
https://github.com/cakephp/docs
35
36
Captulo 8. Routing
CAPTULO 9
https://github.com/cakephp/docs
37
38
CAPTULO 10
Controllers
class Cake\Controller\Controller
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
More on Controllers
The Pages Controller
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Components
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
1
2
https://github.com/cakephp/docs
https://github.com/cakephp/docs
39
Por favor, sintase libre de enviarnos un pull request en Github3 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Authentication
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github4 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
CookieComponent
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github5 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
FlashComponent
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
3
https://github.com/cakephp/docs
https://github.com/cakephp/docs
5
https://github.com/cakephp/docs
6
https://github.com/cakephp/docs
4
40
Por favor, sintase libre de enviarnos un pull request en Github7 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Security
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github8 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Pagination
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github9 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Request Handling
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github10 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
9
https://github.com/cakephp/docs
10
https://github.com/cakephp/docs
8
More on Controllers
41
42
CAPTULO 11
Views
class Cake\View\View
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Themes
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
1
2
https://github.com/cakephp/docs
https://github.com/cakephp/docs
43
Por favor, sintase libre de enviarnos un pull request en Github3 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Helpers
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github5 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
FlashHelper
class Cake\View\Helper\FlashHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github6 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
FormHelper
class Cake\View\Helper\FormHelper(View $view, array $config =[])
3
https://github.com/cakephp/docs
https://github.com/cakephp/docs
5
https://github.com/cakephp/docs
6
https://github.com/cakephp/docs
4
44
HtmlHelper
class Cake\View\Helper\HtmlHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github8 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
NumberHelper
class Cake\View\Helper\NumberHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github9 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
PaginatorHelper
class Cake\View\Helper\PaginatorHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github10 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
7
https://github.com/cakephp/docs
https://github.com/cakephp/docs
9
https://github.com/cakephp/docs
10
https://github.com/cakephp/docs
8
45
RSS
class Cake\View\Helper\RssHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github11 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
SessionHelper
class Cake\View\Helper\SessionHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github12 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
TextHelper
class Cake\View\Helper\TextHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github13 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
TimeHelper
class Cake\View\Helper\TimeHelper(View $view, array $config =[])
11
https://github.com/cakephp/docs
https://github.com/cakephp/docs
13
https://github.com/cakephp/docs
12
46
UrlHelper
class Cake\View\UrlHelper\UrlHelper(View $view, array $config =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github15 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
14
15
https://github.com/cakephp/docs
https://github.com/cakephp/docs
47
48
CAPTULO 12
Models
More Information
Database Basics
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Query Builder
class Cake\ORM\Query
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
1
2
https://github.com/cakephp/docs
https://github.com/cakephp/docs
49
Por favor, sintase libre de enviarnos un pull request en Github3 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Table Objects
class Cake\ORM\Table
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github4 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Entities
class Cake\ORM\Entity
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github5 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
5
https://github.com/cakephp/docs
6
https://github.com/cakephp/docs
4
50
Validating Data
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github7 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Saving Data
class Cake\ORM\Table
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github8 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Deleting Data
class Cake\ORM\Table
Cake\ORM\Table::delete(Entity $entity, $options =[])
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github9 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
9
https://github.com/cakephp/docs
10
https://github.com/cakephp/docs
8
More Information
51
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Behaviors
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github11 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Core Behaviors
CounterCache Behavior
Timestamp Behavior
class Cake\Model\Behavior\TimestampBehavior
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github13 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Translate
class Cake\Model\Behavior\TranslateBehavior
11
https://github.com/cakephp/docs
https://github.com/cakephp/docs
13
https://github.com/cakephp/docs
12
52
TreeBehavior
class Cake\Model\Behavior\TreeBehavior
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github15 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Schema System
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github16 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
14
https://github.com/cakephp/docs
https://github.com/cakephp/docs
16
https://github.com/cakephp/docs
17
https://github.com/cakephp/docs
15
More Information
53
54
CAPTULO 13
Authentication
https://github.com/cakephp/docs
55
56
CAPTULO 14
Bake Console
Extending Bake
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
3
https://github.com/cakephp/docs
2
57
58
CAPTULO 15
Caching
https://github.com/cakephp/docs
59
60
CAPTULO 16
More Topics
Shell Helpers
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
3
https://github.com/cakephp/docs
2
61
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
I18N Shell
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github5 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Completion Shell
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github6 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Plugin Shell
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github7 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
4
https://github.com/cakephp/docs
https://github.com/cakephp/docs
6
https://github.com/cakephp/docs
7
https://github.com/cakephp/docs
5
62
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Routes Shell
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github8 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Upgrade Shell
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github9 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
8
9
https://github.com/cakephp/docs
https://github.com/cakephp/docs
More Topics
63
64
CAPTULO 17
Debugging
https://github.com/cakephp/docs
65
66
CAPTULO 18
ES - Deployment
https://github.com/cakephp/docs
67
68
CAPTULO 19
https://github.com/cakephp/docs
69
70
CAPTULO 20
https://github.com/cakephp/docs
71
72
CAPTULO 21
Events System
https://github.com/cakephp/docs
73
74
CAPTULO 22
https://github.com/cakephp/docs
75
76
CAPTULO 23
Logging
https://github.com/cakephp/docs
77
78
CAPTULO 24
Modelless Forms
class Cake\Form\Form
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
79
80
CAPTULO 25
Pagination
https://github.com/cakephp/docs
81
82
CAPTULO 26
Plugins
https://github.com/cakephp/docs
83
84
CAPTULO 27
REST
https://github.com/cakephp/docs
85
86
CAPTULO 28
Security
Security
class Cake\Utility\Security
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github2 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
3
https://github.com/cakephp/docs
2
87
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Security
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github4 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
88
https://github.com/cakephp/docs
CAPTULO 29
Sessions
https://github.com/cakephp/docs
89
90
CAPTULO 30
Testing
https://github.com/cakephp/docs
91
92
CAPTULO 31
Validation
https://github.com/cakephp/docs
93
94
CAPTULO 32
App Class
https://github.com/cakephp/docs
95
96
CAPTULO 33
Collections
https://github.com/cakephp/docs
97
98
CAPTULO 34
https://github.com/cakephp/docs
99
100
CAPTULO 35
Hash
https://github.com/cakephp/docs
101
102
CAPTULO 36
Http Client
https://github.com/cakephp/docs
103
104
CAPTULO 37
Inflector
class Cake\Utility\Inflector
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
105
106
CAPTULO 38
Number
class Cake\I18n\Number
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
107
108
CAPTULO 39
Registry Objects
https://github.com/cakephp/docs
109
110
CAPTULO 40
Text
class Cake\Utility\Text
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
111
112
CAPTULO 41
Time
class Cake\Utility\Time
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
113
114
CAPTULO 42
Xml
class Cake\Utility\Xml
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github1 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
115
116
CAPTULO 43
https://github.com/cakephp/docs
117
118
CAPTULO 44
Debug Kit
https://github.com/cakephp/docs
119
120
CAPTULO 45
Migrations
https://github.com/cakephp/docs
121
122
CAPTULO 46
Appendices
https://github.com/cakephp/docs
https://github.com/cakephp/docs
123
Por favor, sintase libre de enviarnos un pull request en Github3 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
General Information
CakePHP Development Process
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github5 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
Glossary
Nota: La documentacin no es compatible actualmente con el idioma espaol en esta pgina.
Por favor, sintase libre de enviarnos un pull request en Github6 o utilizar el botn Improve this Doc para
proponer directamente los cambios.
Usted puede hacer referencia a la versin en Ingls en el men de seleccin superior para obtener informacin sobre el tema de esta pgina.
https://github.com/cakephp/docs
https://github.com/cakephp/docs
5
https://github.com/cakephp/docs
6
https://github.com/cakephp/docs
4
124
CAPTULO 47
genindex
modindex
125
126
c
Cake\Collection, 95
Cake\Console, 61
Cake\Controller, 39
Cake\Database, 49
Cake\Database\Schema, 53
Cake\Form, 79
Cake\I18n, 107
Cake\Model\Behavior, 53
Cake\Network\Http, 103
Cake\ORM, 50
Cake\Routing, 35
Cake\Utility, 115
Cake\Validation, 91
Cake\View, 43
Cake\View\Helper, 46
Cake\View\UrlHelper, 47
127
128
ndice
Cake\Collection (namespace), 95
Cake\Console (namespace), 61
Cake\Controller (namespace), 39
Cake\Database (namespace), 49
Cake\Database\Schema (namespace), 53
Cake\Form (namespace), 79
Cake\I18n (namespace), 107
Cake\Model\Behavior (namespace), 52, 53
Cake\Network\Http (namespace), 103
Cake\ORM (namespace), 4951
Cake\Routing (namespace), 35
Cake\Utility (namespace), 87, 105, 111, 113, 115
Cake\Validation (namespace), 91
Cake\View (namespace), 43
Cake\View\Helper (namespace), 4446
Cake\View\UrlHelper (namespace), 47
Client (clase en Cake\Network\Http), 103
Controller (clase en Cake\Controller), 39
D
delete() (Cake\ORM\Table method), 51
E
Entity (clase en Cake\ORM), 50
F
FlashHelper (clase en Cake\View\Helper), 44
Form (clase en Cake\Form), 79
FormHelper (clase en Cake\View\Helper), 44
N
Number (clase en Cake\I18n), 107
NumberHelper (clase en Cake\View\Helper), 45
P
PaginatorHelper (clase en Cake\View\Helper), 45
Q
Query (clase en Cake\ORM), 49
R
Router (clase en Cake\Routing), 35
RssHelper (clase en Cake\View\Helper), 46
S
Security (clase en Cake\Utility), 87
SessionHelper (clase en Cake\View\Helper), 46
T
Table (clase en Cake\ORM), 50, 51
Text (clase en Cake\Utility), 111
TextHelper (clase en Cake\View\Helper), 46
Time (clase en Cake\Utility), 113
TimeHelper (clase en Cake\View\Helper), 46
TimestampBehavior
(clase
en
Cake\Model\Behavior), 52
TranslateBehavior (clase en Cake\Model\Behavior),
52
TreeBehavior (clase en Cake\Model\Behavior), 53
129
U
UrlHelper (clase en Cake\View\UrlHelper), 47
V
View (clase en Cake\View), 43
X
Xml (clase en Cake\Utility), 115
130
ndice