CakePHPCookbook

March 25, 2018 | Author: Cristian Samuel Cardenas Ojeda | Category: Apache Http Server, Web Server, Uniform Resource Locator, Computer File, Table (Database)


Comments



Description

CakePHP Cookbook DocumentationPublicación 3.x Cake Software Foundation 27 de August de 2015 Índice general 1. CakePHP at a Glance Additional Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2. Quick Start Guide Bookmarker Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bookmarker Tutorial Part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 3. 3.0 Migration Guide 5 4. Tutoriales y Ejemplos Bookmarker Tutorial . . . . . . . . . . . . . . . . . Bookmarker Tutorial Part 2 . . . . . . . . . . . . . . Tutorial de desarrollo del Blog . . . . . . . . . . . . Tutorial de desarrollo del Blog - Añadiendo una capa Blog Tutorial - Part 3 . . . . . . . . . . . . . . . . . Simple Authentication and Authorization Application 5. Contributing Documentation . . . . . . . . . Tickets . . . . . . . . . . . . . . Code . . . . . . . . . . . . . . . Coding Standards . . . . . . . . Backwards Compatibility Guide 6. Instalación Requisitos . . . . . . Licencia . . . . . . . Instalando CakePHP Permisos . . . . . . . Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 7 . 7 . 8 . 12 . 23 . 23 . . . . . . . . . . 25 25 25 26 26 26 . . . . . 27 27 28 28 29 29 . . . . . I . Configuration . . . . . . . . . . . . ES . . . . . . . . . . . . . . . Plugins 83 II . . . . . . . . . . . . . 29 30 31 31 33 8. . . . . . . . . Debugging 65 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Views 43 More About Views . . . . . . Models 49 More Information . . . . . . . . . Email 69 20. . . . . . . .Desarrollo . . . . 57 Extending Bake . . . . . . . . . 35 9. . . . . . . . . . . . . . Console & Shells 61 More Topics . . . . . . . . . . . . . . . . . . Bake Console 57 Code Generation with Bake . . . . . . Producción . . . . . . . 43 12. . . . . . . . . . . . .Deployment 67 19. . . . . . . . . . . . . . . . . . . . . . . . . . . Request & Response Objects 37 10. . . . . . . . . . . Pagination 81 26. . . . . . . . . . . . . . . . . . . . . . . . Caching 59 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Events System 73 22. . . . . . . . . . . . . . . . . Routing 35 Dispatcher Filters . . Controllers 39 More on Controllers . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 11. . . . 49 13. . . . . . . . . . . . . . . . . . . . . . . Logging 77 24. Internationalization & Localization 75 23. . . Authentication 55 14. . . . . . . . . . . . . . . . Modelless Forms 79 25. . Error & Exception Handling 71 21. . . . URL Rewriting A rodar! . . . . . . . . . . . . . . . . . . . . . . . . . . 57 15. . . . . . . . . . . . . . . 61 17. . . . . . . . . . . . . . . App Class 95 33. . . . . . . . . . . . . . . Validation 93 32. . . . . . Appendices 3. . . Time 113 42. . . . . . Number 107 39. . . . . . . . .0 Migration Guide . . Registry Objects 109 40. . . . . . . . . . . . . . . Text 111 41. . 87 Security . . . . General Information . . . . . . . . . . . . . . . . . . . . . . Sessions 89 30. . . . Debug Kit 119 45. . . Security 87 Security . . 88 29. . . . . . . . . . . . . . 123 123 124 124 47. 87 Cross Site Request Forgery . . . . . Constants & Functions 117 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Http Client 103 37. . . . . . . . 3. . . . . . . . . . Hash 101 36. . . . . . . Collections 97 34. . . . . . Testing 91 31. . . . . . Migrations 121 46. . .1 Migration Guide . . . . . . . . . . . Indices and Tables 125 PHP Namespace Index 127 Índice 129 III . . . . Xml 115 43. . . . Folder & File 99 35. . . . . . . .27. . . . . . . . . . . . . . Inflector 105 38. REST 85 28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. CakePHP Conventions Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor.com/cakephp/docs 2 1 . Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 3 https://github. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. 1 https://github.com/cakephp/docs https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 1 CakePHP at a Glance Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Additional Reading Where to Get Help Nota: La documentación no es compatible actualmente con el idioma español en esta página. x Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios. Publicación 3.CakePHP Cookbook Documentation.com/cakephp/docs Capítulo 1. CakePHP at a Glance . Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. CakePHP Folder Structure Nota: La documentación no es compatible actualmente con el idioma español en esta página. 4 2 https://github. Por favor.CAPÍTULO 2 Quick Start Guide Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 https://github. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs https://github. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Bookmarker Tutorial Part 2 Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 2 3 . Bookmarker Tutorial Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 3 https://github. Por favor. CakePHP Cookbook Documentation.x Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 4 Capítulo 2. Publicación 3. Quick Start Guide . Por favor.0 Migration Guide Nota: La documentación no es compatible actualmente con el idioma español en esta página.CAPÍTULO 3 3. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. 1 https://github.com/cakephp/docs 5 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 3. Publicación 3.x 6 Capítulo 3.CakePHP Cookbook Documentation.0 Migration Guide . 1 http://plugins.cakephp. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.org/ 3 https://github. Bookmarker Tutorial Part 2 Nota: La documentación no es compatible actualmente con el idioma español en esta página.CAPÍTULO 4 Tutoriales y Ejemplos En esta sección puedes encontrar varias aplicaciones completas construidas en CakePHP que te ayudarán a comprender el framework y ver cómo se relacionan todas las piezas.org/ http://bakery.com/cakephp/docs 2 7 . Bookmarker Tutorial Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor.com/cakephp/docs 4 https://github. También puedes ver otros ejemplos en: CakePackages1 y en Bakery2 encontrarás también componentes listos para usar. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios.cakephp. Por favor. aunque las instrucciones para otros servidores son similares.org/installer | php O puedes descargar composer. Conocimientos básicos de PHP.phar create-project --prefer-dist cakephp/app [nombre_app] O si tienes Composer instalado globalmente: composer create-project --prefer-dist cakephp/app [nombre_app] La ventaja de utilizar Composer es que automáticamente completará algunas tareas de inicialización. Servidor de base de datos.4. debes descargar e instalar Composer si todavía no lo has hecho. es tan fácil como ejecutar lo siguiente: curl -s https://getcomposer. 5 8 https://getcomposer. Instalando Composer de manera global evitarás tener que repetir este paso para cada proyecto. Igual tendremos que ajustar un poco la configuración inicial.CakePHP Cookbook Documentation. Usaremos MySQL en este tutorial. Si tienes cURL instalado.x Tutorial de desarrollo del Blog Bienvenido a CakePHP. Esperamos que puedas comprobarlo a medida que vas profundizando en el código. php composer. Existen otros modos de instalar CakePHP si no te sientes cómodo con Composer. pero la mayoría pueden poner en marcha CakePHP sin configuración alguna.php por ti. ¡Vamos allá! Obtener CakePHP La manera más sencilla de ponerse en marcha es utilizando Composer. simplemente escribe la siguiente línea en tu terminal desde tu directorio de instalación para instalar el esqueleto de la aplicación de CakePHP en el directorio [nombre_app]. Para más información revisa la sección Instalación.16 o superior así como tener las extensiones mbstring. CakePHP se encargará del resto. editar y eliminar artículos del blog.org/download/ Capítulo 4. Esto es lo que necesitarás: 1. Asegúrate de tener PHP 5. asegúrate también de tener pdo_mysql habilitado en PHP. Luego. Obtendremos e instalaremos CakePHP. intl y mcrypt activadas en PHP. Composer te permite instalar fácilmente CakePHP desde tu terminal o consola. Asumiremos que estás usando Apache. Necesitarás saber cómo crear una base de datos nueva. como aplicar permisos a ficheros y crear tu fichero config/app. Probablemente estás consultando este tutorial porque quieres aprender más sobre cómo funciona CakePHP. Primero. 2. Dado que utilizamos MySQL. añadir. 3. crearemos y configuraremos la base de datos y añadiremos suficiente lógica como para listar. Publicación 3. Nuestro objetivo es potenciar tu productividad y hacer más divertido el desarrollo de aplicaciones.phar desde la página web de Composer5 . Tutoriales y Ejemplos . Este tutorial te guiará en la creación de una aplicación sencilla de blog. Servidor web funcionando. El comando final que ejecutarás (en *nix) se parecerá al siguiente: $ chown -R www-data tmp Si por alguna razón CakePHP no puede escribir en ese directorio. ejecuta el siguiente código SQL en ella: /* Primero. una vez ha terminado la configuración.gitignore .json phpunit. Puedes crear una base de datos en blanco con el nombre que quieras. Publicación 3.dist Quizás sea buen momento para aprender algo sobre cómo funciona esta estructura de directorios: echa un vistazo a la sección CakePHP Folder Structure.htaccess . A pesar de que no se recomienda. puedes simplemente aplicar permisos de escritura al directorio ejecutando un comando tipo: $ chmod 777 -R tmp Creando la base de datos del Blog Vamos a crear una nueva base de datos para el blog.md composer.xml. creamos la tabla artículos: */ CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY. Permisos de directorio en tmp También necesitarás aplicar los permisos adecuados en el directorio /tmp para que el servidor web pueda escribir en él. ?>) y cambiar la propiedad del directorio tmp hacia dicho usuario. Una vez creada la tabla. De momento vamos a definir sólo una tabla para nuestros artículos (“posts”). Además crearemos algunos artículos de test para usarlos luego. si no eres capaz de aplicar la propiedad del directorio al mismo usuario que el servidor web. Tutorial de desarrollo del Blog 9 . tu directorio de instalación debería tener la siguiente estructura: /directorio_raiz /config /logs /src /plugins /tests /tmp /vendor /webroot .travis.x Dejando de lado cómo has descargado e instalado CakePHP. serás informado mediante una alerta mientras no estés en modo producción. title VARCHAR(50).CakePHP Cookbook Documentation.yml README. El mejor modo de hacer esto es encontrar con qué usuario corre tu servidor web (<?= ‘whoami‘. Echa un vistazo a las convencionnes para más información.created) VALUES ('Un título de nuevo'.body. NOW()). Seguramente esta sea la primera y última vez que configuras nada. 'driver' => 'Cake\Database\Driver\Mysql'.php.created) VALUES ('El título'.body. 'Y el cuerpo sigue. pero basta decir que nombrando nuestra tabla ‘articles’ automáticamente lo vincula a nuestro modelo Articles y que campos llamados modified y created serán gestionados automáticamente por CakePHP. INSERT INTO articles (title.CakePHP Cookbook Documentation. 'Esto es el cuerpo del artículo. Si sigues las convenciones para nombres en la Base de Datos. Al llamar ‘articles’ a nuestra tabla de artículos. Tutoriales y Ejemplos . 'encoding' => 'utf8'. pero utilizando las convenciones ahorrarás tiempo. aprovecharás la potencia del framework y ahorrarás mucho trabajo de configuración. vamos a decirle a CakePHP dónde está la Base de Datos y cómo conectarnos a ella. y las demás convenciones en tus clases (ver más sobre convenciones aquí: CakePHP Conventions). CakePHP es suficientemente flexible como para acomodarse hasta en el peor esquema de base de datos.created) VALUES ('El título ataca de nuevo'. La elección de los nombres para el nombre de la tabla y de algunas columnas no se ha hecho al azar. NOW()).'. 'host' => 'localhost'. 'password' => 'AngelF00dC4k3~'. El fichero de configuración debería de ser bastante sencillo: simplemente reemplaza los valores en la matriz ‘‘ Datasources. Una configuración completa de ejemplo podría parecerse a esto: return [ // Más configuración arriba 'Datasources' => [ 'default' => [ 'className' => 'Cake\Database\Connection'. Publicación 3. 'database' => 'cake_blog'. Configurando la Base de Datos Rápido y sencillo. pero nómbralo app. modified DATETIME DEFAULT NULL ). /* Luego insertamos algunos artículos para probar */ INSERT INTO articles (title.default.body. 10 Capítulo 4.x body TEXT. 'username' => 'cake_blog'. estamos diciendo a CakePHP que vincule esta tabla por defecto al Modelo ‘Articles’. 'persistent' => false. Copia este fichero en su mismo directorio. Una copia del fichero de configuración de CakePHP puede ser hallado en config/app.default‘‘ con los que encajen con tu configuración.php. INSERT INTO articles (title.'. los cuáles serán automáticamente administrados por CakePHP. NOW()). '¡Esto es realmente emocionante! No. created DATETIME DEFAULT NULL.'. e incluiya los campos ‘modified’ y ‘created’ con ese nombre. consulta la sección para tu servidor entre las siguientes acerca de re-escritura de URLs para poder poner en marcha la aplicación: 1.htaccess en el directorio en el que está instalada tu aplicación web. Comprueba que existen los ficheros . esto significa que probablemente mod_rewrite no está funcionando en tu sistema. Si no están ahí.c en tu fichero httpd. ]. Nota: Recuerda que debes tener PDO y pdo_mysql habilitados en tu php.'. // Más configuración abajo ]. así que lo trataremos aquí.so (para apache 1. No importa mucho el valor que contenga. El string de seguridad se utiliza para generar ‘hashes’. cuanto más largo más difícil de averiguar: 'Security' => [ 'salt' => 'Algo largo y conteniendo un montón de distintos valores. Publicación 3. A veces al descomprimir el archivo o al copiarlo desde otra ubicación. obtén otra copia de CakePHP desde el servidor oficial de descargas. Uno de ellos es definir un string de seguridad (security salt) para realizar los ‘hash’ de seguridad. ]. La mayoría de desarrolladores acaban estos ítems de la lista de la compra.php deberías de ser capaz de acceder mediante tu navegador web y ver la página de bienvenida de CakePHP. Cambia el valor por defecto editando el fichero /config/app. pero no se necesitan para este tutorial. 2.x 'timezone' => 'UTC' ]. Configuración Opcional Aún hay unas pocas cosas que puedes configurar. Por favor. También debería decirte que se ha encontrado el fichero de configuración así como que ha podido conectarse a la base de datos.conf Tutorial de desarrollo del Blog 11 . Si al cargar la página de bienvenida de CakePHP ves cosas raras (no se cargan las imágenes ni los estilos y se ve todo en blanco y negro).CakePHP Cookbook Documentation. En cuanto guardes tu nuevo fichero app. Deberías tener algo así: LoadModule rewrite_module libexec/httpd/mod_rewrite. Asegúrate de tener activado el módulo mod_rewrite en la configuración de apache. Sobre mod_rewrite Si eres nuevo usuario de apache. puedes encontrar alguna dificultad con mod_rewrite.3):: AddModule mod_rewrite.php. estos ficheros no se copian correctamente.ini. class ArticlesTable extends Table { 6 12 https://github. Cuando creamos un modelo. Por favor.php. Tutorial de desarrollo del Blog . necesitarás activar las url amigables en CakePHP. Los modelos están separados entre los objetos Tabla (Table) y Entidad (Entity). Si estás instalando CakePHP en otro servidor diferente a Apache.com/index.htaccess /webroot/. El fichero que crearemos se guardará en /src/Model/Table/ArticlesTable.com/cakephp/docs Capítulo 4. editar. podemos interactuar con la base de datos para crear.php.Añadiendo una capa para empezar a construir tu primera aplicación en CakePHP.. Los objetos Tabla proporcionan acceso a la coleción de entidades almacenada en una tabla específica y va en /src/Model/Table.Añadiendo una capa Nota: The documentation is currently partially supported in es language for this page. encontrarás instrucciones para que funcione la reescritura de URLs en la sección url-rewriting Ahora continúa hacia Tutorial de desarrollo del Blog .com/nombredelcontrolador/nombredelaaccion/parametro.x Si no puedes (o no quieres) configurar mod_rewrite o algún otro módulo compatible. // 'baseUrl' => env('SCRIPT_NAME'). Tutoriales y Ejemplos . Publicación 3. Crear un modelo Artículo (Article) Los modelos son una parte fundamental en CakePHP.htaccess Esto hará que tus url sean así: www. siéntase libre de enviarnos un pull request en Github6 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. ver y borrar con facilidad cada ítem de ese modelo.php/nombredelcontrolador/nombredelaaccion/parametro en vez de www. quita el comentario a la línea: 'App' => [ // .example.example..CakePHP Cookbook Documentation. use Cake\ORM\Table.htaccess que ya no serán necesarios: /. El fichero completo debería tener este aspecto: namespace App\Model\Table. ] Borra también los ficheros . En el fichero /config/app. class ArticlesController extends AppController { } Vamos a añadir una acción a nuestro nuevo controlador. los usuarios ahora pueden Tutorial de desarrollo del Blog . En el controlador es donde escribiremos el código para interactuar con nuestros artículos. Vamos a crear un nuevo fichero llamado ArticlesController. cuando los usuarios recuperan la url www. Por ejemplo.php —en singular) CakePHP no va a reconocer la configuración que escribas en ese fichero y utilizará valores por defecto. class ArticlesController extends AppController { public function index() { $articles = $this->Articles->find('all'). y que se vinculará a una tabla en nuestra base de datos llamada articles. como callbacks y validaciones echa un vistazo al capítulo del Manual Models. Llamando a nuestro objeto Tabla ArticlesTable. El código para tal acción sería este: namespace App\Controller.Añadiendo una capa 13 . Publicación 3. CakePHP deducirá automáticamente que esta Tabla será utilizada en el controlador ArticlesController. } } Los convenios usados para los nombres son importantes.example. Para más información sobre modelos.example.com/articles/) esperan ver un listado de artículos.com/articles/index (que es lo mismo que www.php dentro del directorio /src/Controller.php —en minúscula— o ArticleTable. } } Por el hecho de haber definido el método index() en nuestro ArticlesController.CakePHP Cookbook Documentation. Es donde se utilizan los modelos para llevar a cabo el trabajo que queramos hacer con nuestros artículos. Las acciones representan una función concreta o interfaz en nuestra aplicación.x public function initialize(array $config) { $this->addBehavior('Timestamp'). Nota: CakePHP creará dinámicamente 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. A continuación puedes ver el aspecto básico que debería tener este controlador: namespace App\Controller. Crear el Controlador de Artículos (Articles Controller) Vamos a crear ahora un controlador para nuestros artículos. $this->set(compact('articles')). por ahora. Se pueden definir múltiples plantillas y puedes cambiar entre ellas pero. Publicación 3. pero bien podrían acabar siendo XML.example.Aquí es donde iteramos nuestro objeto de consulta $articles. y que la lógica de nuestra aplicación está definida en nuestro controlador.CakePHP Cookbook Documentation. ¿Recuerdas cómo en la sección anterior hemos asignado la variable ‘articles’ a la vista utilizando el método set()? Esto asignaría el objeto de consulta (query object) a la vista para ser invocado por una iteración foreach. Las vistas en CakePHP se almacenan en la ruta /src/Template y en un directorio con el mismo nombre que el controlador al que pertenecen (tendremos que crear una carpeta llamada ‘Articles’ en este caso). Advertencia: Puede que tengas la tentación de llamar tus controladores y acciones de cierto modo para obtener una URL en concreto. La única instrucción en la acción utiliza set() para pasar datos desde el controlador hacia la vista (que crearemos a continuación).com/articles/index. que veremos más adelante. Resiste la tentación. etc.ctp --> <h1>Artículos</h1> <table> <tr> <th>Id</th> <th>Title</th> <th>Created</th> </tr> <!-. Luego podrás asignar URLs a tu código utilizando “rutas”. si definimos un método llamado foobar() los usuarios tendrán acceso a él desde www. puedes visitar el capítulo Controllers. 'action' => 'view'. utilizaremos la plantilla por defecto (default). La línea en cuestión asigna una variable en la vista llamada ‘articles’ igual al valor retornado por el método find(’all’) del objeto de tabla Artículos (ArticlesTable). $article->id]) ?> 14 Capítulo 4.) y crea acciones comprensibles.x acceder a su lógica solicitando www.com/articles/foobar.example. el código de nuestra vista debería ser algo así: <!-. CSV o incluso datos binarios. Para dar formato a los datos de este artículo en una bonita tabla. Sigue las convenciones de CakePHP (mayúsculas. Para aprender más sobre los controladores. ['controller' => 'Articles'. nombre en plural. mostrando en pantalla <?php foreach ($articles as $article): ?> <tr> <td><?= $article->id ?></td> <td> <?= $this->Html->link($article->title. Para la mayoría de aplicaciones son HTML mezclados con PHP. vamos a crear una vista para la acción índex creada en el paso anterior. Las vistas en CakePHP únicamente son fragmentos de presentación que encajan dentro de la plantilla (layout) de nuestra aplicación. Tutoriales y Ejemplos .File: /src/Template/Articles/index. Una plantilla es una presentación de código que envuelve una vista. que se dejen leer. Crear Vistas de Artículos (Article Views) Ahora que tenemos nuestros datos fluyendo por el modelo. Del mismo modo. class ArticlesController extends AppController { public function index() { $this->set('articles'. $this->set(compact('article')).example. $this->Articles->find('all')).com/articles/index. Publicación 3. } public function view($id = null) { $article = $this->Articles->get($id). el valor ‘3’ se pasa a la función view Tutorial de desarrollo del Blog . hay una llamada a un objeto $this->Html. deberías ser capaz de acceder con tu navegador a http://www. Se explica con detenimiento en la sección de Rutas (Routes). o bien algo ha ido mal o bien ya la habías definido. Este parámetro se gestiona automáticamente al llamar a la URL /articles/view/3. ?> </table> Esto debería ser sencillo de comprender. Llegados a este punto. Deberías ver tu vista.x </td> <td><?= $article->created->format(DATE_RFC850) ?></td> </tr> <?php endforeach. } } Si observas la función view(). Este objeto es una instancia de la clase Cake\View\Helper\HtmlHelper de CakePHP.CakePHP Cookbook Documentation. Además puedes especificar rutas relativas a la base de tu aplicación de la forma /controlador/accion/param1/param2 o incluso utilizar named-routes. Puedes aprender más sobre esto en Helpers. la crearemos ahora en nuestro controlador de artículos: namespace App\Controller. Verás que nuestra función view toma un parámetro: el ID del artículo que queremos ver. como por ejemplo crear un enlace o un formulario. correctamente formatada con el título y la tabla listando los artículos. En caso contrario. en cuyo caso eres muy astuto. Si no has sido infromado.Añadiendo una capa 15 . Si te ha dado por hacer clic en uno de los enlaces que hemos creado en esta vista (que enlazan el título de un artículo hacia la URL /articles/view/un\_id). CakePHP proporciona un conjunto de ayudantes de vistas (helpers) para ayudarte a completar acciones habituales. Si utilizas las rutas en formato array podrás aprovecharte de las potentes funcionalidades de generación de rutas inversa de CakePHP en el futuro. Como habrás notado. seguramente habrás sido informado por CakePHP de que la acción no ha sido definida todavía. ahora el método set() debería serte familiar. Cuando crees URLs en CakePHP te recomendamos emplear el formato de array. pero lo que es importante destacar aquí es que el método link() generará un enlace HTML con el título como primer parámetro y la URL como segundo parámetro. Verás que estamos usando get() en vez de find(’all’) ya que sólo queremos un artículo concreto. x como primer parámetro $id.')).ctp. $this->request->data). } public function add() { $article = $this->Articles->newEntity(). añadir una nueva acción add() en nuestro controlador ArticlesController: namespace App\Controller. if ($this->Articles->save($article)) { $this->Flash->success(__('Your article has been saved.CakePHP Cookbook Documentation. class ArticlesController extends AppController { public $components = ['Flash']. if ($this->request->is('post')) { $article = $this->Articles->patchEntity($article. public function index() { $this->set('articles'. return $this->redirect(['action' => 'index']). el método get() lanzará una excepción NotFoundException. Añadiendo Artículos Leer de la base de datos y mostrar nuestros artículos es un gran comienzo. $this->Articles->find('all')). Tutoriales y Ejemplos . Publicación 3. } public function view($id) { $article = $this->Articles->get($id).File: /src/Template/Articles/view. En caso de que el artículo solicitado no esté presente en la base de datos. pero permitamos también añadir nuevos artículos. También hacemos un poco de verificación de errores para asegurarnos de que el usuario realmente accede a dicho registro. Ahora vamos a definir la vista para /src/Template/Articles/view. Lo primero. esta nueva función ‘view’ ubicándola en <!-. } 16 Capítulo 4.ctp --> <h1><?= h($article->title) ?></h1> <p><?= h($article->body) ?></p> <p><small>Created: <?= $article->created->format(DATE_RFC850) ?></small></p> Verifica que esto funciona probando los enlaces en /articles/index o puedes solicitándolo manualmente accediendo a /articles/view/1. $this->set(compact('article')). Si el usuario solicita /articles/view lanzaremos una excepción NotFoundException y dejaremos al ErrorHandler tomar el control. Utilizando el método get() en la tabla Articles también hacemos una verificación similar para asegurarnos de que el usuario ha accedido a un registro que existe. inclúyelo en tu AppController. Al llamar al método save(). Para aprovechar estas funciones es conveniente que utilices el FormHelper en tus vistas. Veremos a continuación cómo trabajar con estos errores de validación. El objeto de petición contiene información útil acerca de la petición que se recibe y puede ser utilizado para controlar el flujo de nuestra aplicación. El método Cake\Controller\Controller::redirect del controlador redirige hacia otra URL.')). Si no se guarda bien. intenta salvar un nuevo artículo utilizando el modelo Articles. Puedes echar un ojo al método Cake\Routing\Router::url() en la API7 para ver los formatos en que puedes especificar una URL para varias funciones de CakePHP. Todos odiamos teclear largos formularios y gastar más tiempo en reglas de validación de cada campo. La clase Cake\View\Helper\FormHelper está disponible en tus vistas por defecto a través de $this->Form.x $this->Flash->error(__('Unable to add your article. utilizamos el método Cake\Network\Request::is() para verificar que la petición es una petición HTTP POST. } $this->set('article'.ctp --> <h1>Añadir Artículo</h1> 7 http://api. esta información está disponible en $this->request->data. En la plantilla tenemos <?= $this->Flash->render() ?> que muestra el mensaje y elimina la correspondiente variable de sesión. $article). no continuará con el proceso de guardado.CakePHP Cookbook Documentation. Si lo ves necesario. así podremos mostrar los errores de validación u otras alertas.File: src/Template/Articles/add. } } Nota: Necesitas incluir el FlashComponent en cualquier controlador donde vayas a usarlo.cakephp. He aquí nuestra vista add: <!-. Utilizamos el método mágico __call del FlashComponent para guardar un mensaje en una variable de sesión que será mostrado en la página después de la redirección. Validando los Datos CakePHP te ayuda a evitar la monotonía al construir tus formularios y su validación. comprobará si hay errores de validación primero y si encuentra alguno. En este caso. CakePHP lo hace más rápido y sencillo.Añadiendo una capa 17 . Publicación 3.e. Cada petición de CakePHP incluye un objeto Request que es accesible utilizando $this->request. Cuando un usuario utiliza un formulario y efectúa un POST a la aplicación.org Tutorial de desarrollo del Blog . muestra la vista correspondiente. El parámetro [’action’ => ’index’] se traduce a la URL /articles (p. Puedes usar la función pr() o debug() para mostrar el contenido de esa variable y ver la pinta que tiene. Lo que la función add() hace es: si el formulario enviado no está vacío. la acción index del controlador de artículos). $this->Form->button(__('Guardar artículo')).x <?php echo echo echo echo echo ?> $this->Form->create($article). La llamada a $this->Form->end() cierra el formulario. La ejecución de $this->Form->create() genera el siguiente código: <form method="post" action="/articles/add"> Si create() no tiene parámetros al ser llamado. Tutoriales y Ejemplos . Publicación 3. Volvamos atrás un minuto y actualicemos nuestra vista src/Template/Articles/index. use Cake\Validation\Validator. $this->Form->input('title'). El primer parámetro le indica a CakePHP a qué campo corresponde y el segundo parámetro te permite especificar un abanico muy ámplio de opciones . El método $this->Form->input() se utiliza para crear elementos de formulario del mismo nombre. ['rows' => '3']).CakePHP Cookbook Documentation. También generará campos ocultos si la CSRF/prevención de manipulación de formularios ha sido habilitada. $this->Form->end(). use Cake\ORM\Table. ['controller' => 'Articles'. el número de filas del textarea que se generará. class ArticlesTable extends Table { public function initialize(array $config) { $this->addBehavior('Timestamp'). $this->Form->input('body'. Hemos usado FormHelper para generar la etiqueta ‘form’. Hay un poco de introspección y “automagia” aquí: input() generará distintos elementos de formulario en función del campo del modelo especificado. asume que estás creando un formulario que envía vía POST a la acción add() (o edit() cuando id es incluido en los datos de formulario) del controlador actual. Volvamos al modelo Articles y hagamos algunos ajustes: namespace App\Model\Table.en este caso. Justo antes del tag <table> añade la siguiente línea: <?= $this->Html->link( 'Añadir artículo'. 'action' => 'add'] ) ?> Te estarás preguntando: ¿Cómo le digo a CakePHP la forma en la que debe validar estos datos? Muy sencillo. las reglas de validación se escriben en el modelo. } public function validationDefault(Validator $validator) { $validator 18 Capítulo 4.ctp para añadir un enlace de “Añadir Artículo”. if ($this->Articles->save($article)) { $this->Flash->success(__('Tu artículo ha sido actualizado. Ahora que ya tienes las reglas de validación definidas. } $this->Flash->error(__('Tu artículo no se ha podido actualizar. return $validator. Luego verifica si la petición es POST o PUT.File: src/Template/Articles/edit. La vista sería algo así: <!-.x ->notEmpty('title') ->notEmpty('body'). el cuerpo y el título. } Lo primero que hace este método es asegurarse de que el usuario ha intentado acceder a un registro existente. Crear una acción. direcciones de e-mail. los mensajes de error se construyen automáticamente en la vista sin código adicional. luego la vista. 'put'])) { $this->Articles->patchEntity($article. He aquí cómo debería ser la acción edit() del controlador ArticlesController: public function edit($id = null) { $article = $this->Articles->get($id). Como hemos usado el método Cake\View\Helper\FormHelper::input().ctp --> <h1>Edit Article</h1> Tutorial de desarrollo del Blog . } $this->set('article'. Publicación 3. if ($this->request->is(['post'. Si no han pasado el parámetro $id o el artículo no existe lanzaremos una excepción NotFoundException para que el ErrorHandler se ocupe de ello. $this->request->data).Añadiendo una capa 19 .CakePHP Cookbook Documentation. echa un vistazo a la documentación Validation. Editando Artículos Editando artículos: allá vamos. $article). Ya eres un profesional de CakePHP. Para más información en tal configuración.')). así que habrás cogido la pauta.) así como flexibilidad para añadir tus propias reglas de validación. } } El método validationDefault() le dice a CakePHP cómo validar tus datos cuando se invoca el método save(). return $this->redirect(['action' => 'index']). Si lo es. Aquí hemos especificado que ambos campos.')). El motor de validaciones de CakePHP es potente y con numerosas reglas ya predefinidas (tarjetas de crédito. no pueden quedar vacíos. Finalmente utilizamos el objeto tabla para guardar la entidad de nuevo o mostrar errores de validación al usuario en caso de haberlos. entonces utilizamos los datos recibidos para actualizar nuestra entidad artículo (article) utilizando el método ‘patchEntity’. usa tu aplicación para crear un nuevo artículo con un título vacío y verás cómo funcionan. etc. Aquí es donde iteramos nuestro objeto de consulta $articles.CakePHP Cookbook Documentation. $article->id]) ?> </td> </tr> <?php endforeach. $this->Form->end().ctp (edit links added) --> <h1>Artículos</h1> <p><?= $this->Html->link("Añadir artículo". $this->Form->button(__('Guardar artículo')). $article->id]) ?> </td> <td> <?= $article->created->format(DATE_RFC850) ?> </td> <td> <?= $this->Html->link('Editar'. ['action' => 'edit'. $this->Form->input('title'). ['rows' => '3']). Puedes actualizar tu vista índice (index) con enlaces para editar artículos específicos: <!-. mostrando en pantalla la <?php foreach ($articles as $article): ?> <tr> <td><?= $article->id ?></td> <td> <?= $this->Html->link($article->title. junto a los errores de validación que hubiese. ?> </table> Borrando Artículos Vamos a permitir a los usuarios que borren artículos. Tutoriales y Ejemplos . ['action' => 'view'.x <?php echo echo echo echo echo ?> $this->Form->create($article). Empieza con una acción delete() en el controlador ArticlesController: 20 Capítulo 4. Publicación 3. $this->Form->input('body'. ['action' => 'add']) ?></p> <table> <tr> <th>Id</th> <th>Title</th> <th>Created</th> <th>Action</th> </tr> <!-. CakePHP utilizará el resultado de $article->isNew() para determinar si un save() debería insertar un nuevo registro o actualizar uno existente.File: src/Template/Articles/index. Mostramos el formulario de edición (con los valores actuales de ese artículo). File: src/Template/Articles/index. return $this->redirect(['action' => 'index']).x public function delete($id) { $this->request->allowMethod(['post'. Publicación 3. el ‘allowMethod’ devolvería una Excepción.ctp para incluír el ya habitual enlace: <!-.CakePHP Cookbook Documentation. mostrando en pantalla la <?php foreach ($articles as $article): ?> <tr> <td><?= $article->id ?></td> <td> <?= $this->Html->link($article->title. ['action' => 'view'. 'delete']). ['confirm' => '¿Estás seguro?']) ?> <?= $this->Html->link('Editar'. $article->id]. $article = $this->Articles->get($id).'.Aquí es donde iteramos nuestro objeto de consulta $articles. ['action' => 'add']) ?></p> <table> <tr> <th>Id</th> <th>Title</th> <th>Created</th> <th>Action</th> </tr> <!-. h($id))).Añadiendo una capa 21 . Lo que si querrás es actualizar la vista index. } } La lógica elimina el artículo especificado por $id y utiliza $this->Flash->success() para mostrar al usuario un mensaje de confirmación tras haber sido redirigidos a /articles. no es necesaria ninguna vista (nunca se usa). Como estamos ejecutando algunos métodos y luego redirigiendo a otra acción de nuestro controlador. $article->id]) ?> </td> <td> <?= $article->created->format(DATE_RFC850) ?> </td> <td> <?= $this->Form->postLink( 'Eliminar'. Hay muchas Excepciones que pueden ser utilizadas para indicar los varios errores HTTP que tu aplicación pueda generar. $article->id]) ?> </td> Tutorial de desarrollo del Blog . Las excepciones que no se traten serán capturadas por el manejador de excepciones de CakePHP (exception handler) y una bonita página de error es mostrada. if ($this->Articles->delete($article)) { $this->Flash->success(__('El artículo con id: {0} ha sido eliminado.ctp --> <h1>Artículos</h1> <p><?= $this->Html->link("Añadir artículo". Si el usuario intenta eliminar utilizando una petición GET. ['action' => 'delete'. ['action' => 'edit'. CakePHP Cookbook Documentation. Tutoriales y Ejemplos . Es buena idea usar siempre arrays para configurar las URL. Publicación 3. ['controller' => 'Pages'.com) usando el controlador PagesController. cuando un usuario solicita ‘/’. 'home']). Querrás eliminar o comentar la línea que define la raíz por defecto. lo reemplazaremos con nuestro controlador ArticlesController creando una nueva ruta. Queremos conectarla a nuestro propio controlador. dinero a carretas e incluso tus fantasías más salvajes. lo que asegura que los links irán siempre al mismo lugar. Nota: Esta vista utiliza el FormHelper para pedir confirmación vía diálogo de confirmación de JavaScript al usuario antes de borrar un artículo. Simple. Vamos a hacer cambios ligeros para este tutorial. Rutas (Routes) En muchas ocasiones. Nota: CakePHP también calcula las rutas a la inversa. ['controller' => 'Articles'.x </tr> <?php endforeach. Conclusión Creando aplicaciones de este modo te traerá paz. amor.example. 22 Capítulo 4. Permitiendo que contenido sea eliminado vía peticiones GET es peligroso. Esta línea conecta la url ‘/’ con la página por defecto de inicio de CakePHP. las rutas por defecto de CakePHP funcionan bien tal y como están. Usa el resto de este manual como una guía para construir mejores aplicaciones. Las reglas de enrutamiento están en /config/routes. En lugar de eso. Los desarroladores que quieren rutas diferentes para mejorar la usabilidad apreciarán la forma en la que CakePHP relaciona las URLs con las acciones de los controladores. el resultado será ‘/’. 'action' => 'index']). 'action' => 'display'. Esto debería. Dicha ruta se parece a esto: Router::connect('/'. devolver la acción index() del controlador ArticlesController.php. ya que arañas web (crawlers) podrían eliminar accidentalmente tu contenido. ’action’ => ’index’] a una función que espera una url. Si en tu código pasas el array [’controller’ => ’Articles’. así que reemplaza dicha línea por esta otra: Router::connect('/'. CakePHP tiene muchas otras cosas que ofrecer y es flexible aunque no hemos cubierto aquí estos puntos para que te sea más simple al principio. honor. ?> </table> Utilizando View\Helper\FormHelper::postLink() crearemos un enlace que utilizará JavaScript para hacer una petición POST que eliminará nuestro artículo. Para más información sobre las rutas así como técnicas avanzadas revisa routes-configuration. Por defecto CakePHP responde a las llamadas a la raíz de tu sitio (por ejemplo http://www. mostrando una vista llamada “home”. no te parece? Ten en cuenta que este tutorial es muy básico. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.org https://github.Part 3 23 .com/cakephp/docs 9 Blog Tutorial .com/cakephp/docs 10 https://github. Si necesitas ayuda. Por favor. estás listo para la vida real. ¡Bienvenido a CakePHP! Lectura sugerida para continuar desde aquí Hay varias tareas comunes que la gente que está aprendiendo CakePHP quiere aprender después: 1. Simple Authentication and Authorization Application Nota: La documentación no es compatible actualmente con el idioma español en esta página. view-elements Incluír vistas y reutilizar trozos de código 3. Por favor. míralo en la página Where to Get Help. siéntase libre de enviarnos un pull request en Github9 o utilizar el botón Improve this Doc para proponer directamente los cambios.x Ahora que ya has creado una aplicación CakePHP básica. Code Generation with Bake: Generación básica de CRUDs 4. Publicación 3.Part 3 Nota: La documentación no es compatible actualmente con el idioma español en esta página.cakephp. Simple Authentication and Authorization Application: Tutorial de autenticación y permisos Blog Tutorial .CakePHP Cookbook Documentation. siéntase libre de enviarnos un pull request en Github10 o utilizar el botón Improve this Doc para proponer directamente los cambios. hay muchos modos de encontrar la ayuda que buscas . 8 http://api. Empieza tu nuevo proyecto y lee el resto del Cookbook así como la API8 .por favor. view-layouts: Personaliza la plantilla layout de tu aplicación 2. x 24 Capítulo 4. Tutoriales y Ejemplos . Publicación 3.CakePHP Cookbook Documentation. 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 versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. Tickets Nota: La documentación no es compatible actualmente con el idioma español en esta página. Documentation Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor.CAPÍTULO 5 Contributing Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor.x Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. Publicación 3. Backwards Compatibility Guide Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github6 o utilizar el botón Improve this Doc para proponer directamente los cambios. Code Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 5 26 Capítulo 5.com/cakephp/docs https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. siéntase libre de enviarnos un pull request en Github5 o utilizar el botón Improve this Doc para proponer directamente los cambios. 4 https://github.CakePHP Cookbook Documentation. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Contributing .com/cakephp/docs 6 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Coding Standards Nota: La documentación no es compatible actualmente con el idioma español en esta página. Debes asegurarte de tener las extensiones de PDO correctas. pero no requerido. PHP 5.16 o mayor. y ya! Aunque este manual se enfoca principalmente en configurar Apache (ya que es el más utilizado). SQLite 3. Nota: Todos los drivers nativos necesitan PDO.4.CAPÍTULO 6 Instalación CakePHP se instala rápida y fácilmente. LightHTHPD o Microsoft IIS. PostgreSQL. mod_rewrite es recomendado. Requisitos Servidor HTTP. Microsoft SQL Server (2008 o mayor).10 o mayor). 27 . extensión intl. puedes configurar CakePHP para que corra con una variedad de servidores web como nginx.1. extensión mbstring. Los requisitos mínimos son un servidor web y una copia de CakePHP. Técnicamente una base de datos no es necesaria. pero imaginamos que la mayoría de aplicaciones utiliza alguna. CakePHP soporta una gran variedad de sistemas de bases de datos: MySQL (5. Por ejemplo: Apache. Para sistemas Windows.x Licencia CakePHP está licenciado bajo la Licencia MIT1 . Mantente al día con los últimos cambios de CakePHP Si quieres mantenerte al corriente de los últimos cambios en CakePHP puedes añadir las siguientes líneas al composer.json de tu aplicación: "require": { "cakephp/cakephp": "dev-master" } 1 http://www. Ya que has decargado e instalado Composer puedes generar una aplicación CakePHP ejecutando: php composer.php http://getcomposer. Ahora puedes visitar el destino donde instalaste la aplicación y ver los diferentes avisos de setup.com/composer/windows-setup/releases/ 5 https://github. puedes leer el README del instalador de Windows aquí5 . Instalando CakePHP CakePHP utiliza Composer2 .org 3 https://getcomposer.phar create-project --prefer-dist cakephp/app [app_name] O si tienes Composer definido globalmente: composer create-project --prefer-dist cakephp/app [app_name] Una vez que Composer termine de descargar el esqueleto y la librería core de CakePHP. puedes descargar el Instalador de Composer para Windows aquí4 . Publicación 3. puedes descargar composer. También eres libre para incorporar CakePHP en cualquier aplicación comercial o de código cerrado. Esto signigica que eres libre para modificar. Instalación .opensource. necesitas descargar e instalar Composer. Para más instrucciones acerca de esto. como el método de instalación oficialmente soportado.org/download/ 4 https://github.phar desde el sitio web de Composer3 . Si tienes instalado cURL.org/installer | php O.CakePHP Cookbook Documentation. deberías tener una aplicación funcional de CakePHP instalada vía Composer.com/composer/windows-setup 2 28 Capítulo 6.org/licenses/mit-license.lock se mantengan junto con el resto de tu código fuente. si no lo has hecho ya. distribuir y republicar el código fuente con la condición de que las notas de copyright queden intactas. Primero. una herramienta de manejo de dependicias para PHP 5. es tan fácil como correr esto en un terminal: curl -s https://getcomposer. Asegúrate de que los ficheros composer.3+.json y composer. Esta sección cubrirá los dos tipos principales de instalación de CakePHP: Desarrollo y Producción.CakePHP Cookbook Documentation. Un problema común es que logs. Desarrollo Este es el método más rápido para configurar CakePHP. Descripciones de Modelos. Para ello ejecuta desde el directorio src: bin/cake server Permisos 29 . o tan complejo y flexible como lo desees. y modifiques si es necesario. si los usuarios mencionados difieren. Producción: Requiere tener la habilidad de configurar el directorio raíz del Servidor Web. cuenta con URLs limpias y es bastante segura.phar update recibirás las últimas actualizaciones del branch seleccionado. Permisos CakePHP utiliza el directorio tmp para varias operaciones. En este ejemplo utilizaremos la consola de CakePHP para ejecutar el servidor web nativo de PHP para hacer que tu aplicación esté disponible en http://host:port. Cada vez que ejecutes php composer. En un sistema UNIX. los permisos tras la instalación vía Composer para mayor seguridad. El directorio logs es utilizado para para escribir ficheros de log por el motor de FileLog por defecto. Asegúrate de que los directorios logs.x Donde <branch> es el nombre del branch que quieres seguir. tmp y sus subdirectorios deben poder ser modificados tanto por el usuario del Servidor Web como por el usuario de la línea de comandos. La instalación de CakePHP a través 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 más rápida. Desarrollo: fácil de arrancar. Obviamente es recomendable que revises. puedes ejecutar los siguientes comandos desde el directorio de tu aplicación para asegurarte de que todo esté configurado correctamente: HTTPDUSER=`ps setfacl -R -m setfacl -R -d setfacl -R -m setfacl -R -d aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | h u:${HTTPDUSER}:rwx tmp -m u:${HTTPDUSER}:rwx tmp u:${HTTPDUSER}:rwx logs -m u:${HTTPDUSER}:rwx logs Configuración Configurar una aplicación de CakePHP puede ser tan simple como colocarla en el directorio raíz de tu Servidor Web. el caché de las vistas y la información de la sesión son algunos ejemplos de lo anterior. las URLs de la aplicación incluyen el nombre del directorio de la aplicación de CakePHP y es menos segura. tmp y todos sus subdirectorios tengan permisos de escritura por el usuario del Servidor Web. Publicación 3. Producción Una instalación de producción es una manera más flexible de montar una aplicación de CakePHP. 30 Capítulo 6.com.json index. Eso es todo! Tu aplicación de CakePHP está corriendo perfectamente sin tener que haber configurado el servidor web manualmente. esto colocará tu aplicación en http://localhost:8765/.travis. Advertencia: El servidor de desarrollo nunca debe ser utilizado en un ambiente de producción.yml composer. Publicación 3.x Por defecto. Después de instalar tu aplicación utilizando cualquiera de los métodos mencionados en el directorio elegido .php phpunit. Instalación .gitignore .168.13.md Si utilizas Apache debes configurar la directiva DocumentRoot del dominio a: DocumentRoot /cake_install/webroot Si tu configuración del Servidor Web es correcta debes tener tu aplicación disponible aora en http://www. sin ningún argumento.CakePHP Cookbook Documentation.com.37 -p 5673 Esto colocará tu aplicación en http://192. podrás tener un dominio entero actuando como una sola aplicación de CakePHP.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) . Este ejemplo te ayudará a instalar CakePHP donde quieras en tu sistema de ficheros y tenerlo disponible en http://www. Utilizando este método.168.example.htaccess .xml. Si tienes algún conflicto con localhost o port 8765.37:5673/. Toma en cuenta que esta instalación requiere que tengas los derechos de cambiar el directorio raíz (DocumentRoot) del servidor web Apache. puedes indicarle a la consola de CakePHP que corra el servidor de manera más específica utilizando los siguientes argumentos: bin/cake server -H 192.asumiremos que has escogido /cake_install . Se supone que esto es un servidor básico de desarrollo y nada más.dist README.example.13. x URL Rewriting Si quieres utilizar URL rewriting. encontrás el home principal de CakePHP y un mensaje que te dice el status actual de tu conexión a la base de datos. deberías dirigirte en tu navegador a http://example. Felicidades! Estás listo para Crear tu primera aplicación de CakePHP. ahora veamos a CakePHP en acción.com/ o http://localhost:8765/. entra en la sección dedicada a ello: A rodar! Muy bien. Publicación 3.CakePHP Cookbook Documentation. URL Rewriting 31 . En este punto. Dependiendo del setup que hayas utilizado. Instalación .x 32 Capítulo 6.CakePHP Cookbook Documentation. Publicación 3. com/cakephp/docs 33 . Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 7 Configuration Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Publicación 3.x 34 Capítulo 7.CakePHP Cookbook Documentation. Configuration . Dispatcher Filters Nota: La documentación no es compatible actualmente con el idioma español en esta página.CAPÍTULO 8 Routing class Cake\Routing\Router Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. 1 2 https://github. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 35 . Por favor.com/cakephp/docs https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. x 36 Capítulo 8. Publicación 3. Routing .CakePHP Cookbook Documentation. com/cakephp/docs 37 .CAPÍTULO 9 Request & Response Objects Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Request & Response Objects .CakePHP Cookbook Documentation. Publicación 3.x 38 Capítulo 9. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 39 .com/cakephp/docs https://github. Components Nota: La documentación no es compatible actualmente con el idioma español en esta página. More on Controllers The Pages Controller Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 10 Controllers class Cake\Controller\Controller Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 2 https://github. CakePHP Cookbook Documentation.com/cakephp/docs 4 40 Capítulo 10. siéntase libre de enviarnos un pull request en Github6 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. FlashComponent Nota: La documentación no es compatible actualmente con el idioma español en esta página. Controllers . Por favor. Cross Site Request Forgery Nota: La documentación no es compatible actualmente con el idioma español en esta página.x Por favor.com/cakephp/docs 5 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor.com/cakephp/docs https://github. CookieComponent Nota: La documentación no es compatible actualmente con el idioma español en esta página. 3 https://github. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Publicación 3. siéntase libre de enviarnos un pull request en Github5 o utilizar el botón Improve this Doc para proponer directamente los cambios. Authentication Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 6 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Security Nota: La documentación no es compatible actualmente con el idioma español en esta página. Publicación 3.com/cakephp/docs 9 https://github.CakePHP Cookbook Documentation.x Por favor. siéntase libre de enviarnos un pull request en Github10 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github7 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. siéntase libre de enviarnos un pull request en Github9 o utilizar el botón Improve this Doc para proponer directamente los cambios. Pagination Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. Request Handling Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 8 More on Controllers 41 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github8 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs https://github. 7 https://github. Por favor.com/cakephp/docs 10 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Controllers .x 42 Capítulo 10. Publicación 3.CakePHP Cookbook Documentation. Themes Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 2 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. More About Views View Cells Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 11 Views class Cake\View\View Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor.com/cakephp/docs 43 . Por favor. Views . JSON and XML views Nota: La documentación no es compatible actualmente con el idioma español en esta página. array $config =[]) 3 https://github. Publicación 3. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios.CakePHP Cookbook Documentation. FlashHelper class Cake\View\Helper\FlashHelper(View $view. Helpers Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 4 44 Capítulo 11. Por favor. Por favor.x Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github6 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 5 https://github. siéntase libre de enviarnos un pull request en Github5 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 6 https://github. FormHelper class Cake\View\Helper\FormHelper(View $view. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs https://github. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. x Nota: La documentación no es compatible actualmente con el idioma español en esta página. Publicación 3. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. NumberHelper class Cake\View\Helper\NumberHelper(View $view.com/cakephp/docs 8 More About Views 45 . siéntase libre de enviarnos un pull request en Github10 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github7 o utilizar el botón Improve this Doc para proponer directamente los cambios.CakePHP Cookbook Documentation. PaginatorHelper class Cake\View\Helper\PaginatorHelper(View $view.com/cakephp/docs https://github. Por favor. siéntase libre de enviarnos un pull request en Github8 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. Por favor. Por favor. siéntase libre de enviarnos un pull request en Github9 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 9 https://github. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página. 7 https://github. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 10 https://github. HtmlHelper class Cake\View\Helper\HtmlHelper(View $view. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. Por favor.com/cakephp/docs https://github.CakePHP Cookbook Documentation.x RSS class Cake\View\Helper\RssHelper(View $view. TextHelper class Cake\View\Helper\TextHelper(View $view. Publicación 3. siéntase libre de enviarnos un pull request en Github12 o utilizar el botón Improve this Doc para proponer directamente los cambios. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 12 46 Capítulo 11. Por favor. Views . SessionHelper class Cake\View\Helper\SessionHelper(View $view. TimeHelper class Cake\View\Helper\TimeHelper(View $view. array $config =[]) 11 https://github.com/cakephp/docs 13 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github13 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github11 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página. UrlHelper class Cake\View\UrlHelper\UrlHelper(View $view. siéntase libre de enviarnos un pull request en Github14 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. siéntase libre de enviarnos un pull request en Github15 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Publicación 3. 14 15 https://github. Por favor. array $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs https://github.com/cakephp/docs More About Views 47 .x Nota: La documentación no es compatible actualmente con el idioma español en esta página.CakePHP Cookbook Documentation. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Publicación 3.CakePHP Cookbook Documentation.x 48 Capítulo 11. Views . com/cakephp/docs 49 . Por favor.CAPÍTULO 12 Models Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 2 https://github. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs https://github. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. Query Builder class Cake\ORM\Query Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. More Information Database Basics Nota: La documentación no es compatible actualmente con el idioma español en esta página. com/cakephp/docs 5 https://github. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github5 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Retrieving Data & Results Sets class Cake\ORM\Table Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. 3 https://github. siéntase libre de enviarnos un pull request en Github6 o utilizar el botón Improve this Doc para proponer directamente los cambios. Models .com/cakephp/docs 4 50 Capítulo 12. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Publicación 3. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Entities class Cake\ORM\Entity Nota: La documentación no es compatible actualmente con el idioma español en esta página.CakePHP Cookbook Documentation. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 6 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.x Por favor. Por favor.com/cakephp/docs https://github. Table Objects class Cake\ORM\Table Nota: La documentación no es compatible actualmente con el idioma español en esta página. CakePHP Cookbook Documentation. Associations . $options =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página. Saving Data class Cake\ORM\Table Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github8 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github10 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs https://github. Deleting Data class Cake\ORM\Table Cake\ORM\Table::delete(Entity $entity.com/cakephp/docs 10 https://github.x Validating Data Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 8 More Information 51 . Por favor. siéntase libre de enviarnos un pull request en Github9 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 7 https://github. siéntase libre de enviarnos un pull request en Github7 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 9 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. Por favor. Por favor. Publicación 3.Linking Tables Together Nota: La documentación no es compatible actualmente con el idioma español en esta página. CakePHP Cookbook Documentation, Publicación 3.x Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Behaviors Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github11 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Core Behaviors CounterCache Behavior Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github12 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Timestamp Behavior class Cake\Model\Behavior\TimestampBehavior Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github13 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 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 Capítulo 12. Models CakePHP Cookbook Documentation, Publicación 3.x Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github14 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. TreeBehavior class Cake\Model\Behavior\TreeBehavior Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github15 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Schema System Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github16 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. ORM Cache Shell Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github17 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 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 CakePHP Cookbook Documentation, Publicación 3.x 54 Capítulo 12. Models Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 55 . Por favor. 1 https://github.CAPÍTULO 13 Authentication Nota: La documentación no es compatible actualmente con el idioma español en esta página. x 56 Capítulo 13.CakePHP Cookbook Documentation. Publicación 3. Authentication . com/cakephp/docs https://github.com/cakephp/docs 2 57 . Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. Extending Bake Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 https://github. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 14 Bake Console Code Generation with Bake Nota: La documentación no es compatible actualmente con el idioma español en esta página. Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 3 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Publicación 3. Bake Console .x 58 Capítulo 14.CakePHP Cookbook Documentation. com/cakephp/docs 59 . 1 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 15 Caching Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. CakePHP Cookbook Documentation. Publicación 3.x 60 Capítulo 15. Caching . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Interactive Console (REPL) Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs https://github. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 3 https://github. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. 1 https://github.com/cakephp/docs 2 61 . More Topics Shell Helpers Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 16 Console & Shells Nota: La documentación no es compatible actualmente con el idioma español en esta página. I18N Shell Nota: La documentación no es compatible actualmente con el idioma español en esta página.CakePHP Cookbook Documentation. Completion Shell Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 6 https://github. Console & Shells . Running Shells as Cron Jobs Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github6 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Por favor. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Plugin Shell Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 7 https://github.com/cakephp/docs 5 62 Capítulo 16. Publicación 3. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.x Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github7 o utilizar el botón Improve this Doc para proponer directamente los cambios. siéntase libre de enviarnos un pull request en Github5 o utilizar el botón Improve this Doc para proponer directamente los cambios. 4 https://github. Por favor. com/cakephp/docs https://github.x Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Publicación 3.com/cakephp/docs More Topics 63 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 8 9 https://github. siéntase libre de enviarnos un pull request en Github8 o utilizar el botón Improve this Doc para proponer directamente los cambios. Upgrade Shell Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github9 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Routes Shell Nota: La documentación no es compatible actualmente con el idioma español en esta página.CakePHP Cookbook Documentation. Por favor. Publicación 3.x 64 Capítulo 16. Console & Shells .CakePHP Cookbook Documentation. 1 https://github.com/cakephp/docs 65 . siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 17 Debugging Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. x 66 Capítulo 17. Publicación 3.CakePHP Cookbook Documentation. Debugging . 1 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.Deployment Nota: La documentación no es compatible actualmente con el idioma español en esta página.CAPÍTULO 18 ES . Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 67 . Publicación 3. ES .Deployment .x 68 Capítulo 18.CakePHP Cookbook Documentation. com/cakephp/docs 69 . Por favor. 1 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 19 Email Nota: La documentación no es compatible actualmente con el idioma español en esta página. Publicación 3.x 70 Capítulo 19. Email .CakePHP Cookbook Documentation. CAPÍTULO 20 Error & Exception Handling Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github.com/cakephp/docs 71 CakePHP Cookbook Documentation, Publicación 3.x 72 Capítulo 20. Error & Exception Handling CAPÍTULO 21 Events System Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github.com/cakephp/docs 73 x 74 Capítulo 21. Events System .CakePHP Cookbook Documentation. Publicación 3. 1 https://github. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 75 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 22 Internationalization & Localization Nota: La documentación no es compatible actualmente con el idioma español en esta página. x 76 Capítulo 22.CakePHP Cookbook Documentation. Publicación 3. Internationalization & Localization . 1 https://github.com/cakephp/docs 77 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 23 Logging Nota: La documentación no es compatible actualmente con el idioma español en esta página. x 78 Capítulo 23. Logging .CakePHP Cookbook Documentation. Publicación 3. CAPÍTULO 24 Modelless Forms class Cake\Form\Form Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 79 . 1 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. x 80 Capítulo 24. Modelless Forms . Publicación 3.CakePHP Cookbook Documentation. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 81 . 1 https://github. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 25 Pagination Nota: La documentación no es compatible actualmente con el idioma español en esta página. x 82 Capítulo 25. Pagination . Publicación 3.CakePHP Cookbook Documentation. com/cakephp/docs 83 . siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github. Por favor.CAPÍTULO 26 Plugins Nota: La documentación no es compatible actualmente con el idioma español en esta página. Plugins . Publicación 3.CakePHP Cookbook Documentation.x 84 Capítulo 26. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 85 .CAPÍTULO 27 REST Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. 1 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. CakePHP Cookbook Documentation. Publicación 3.x 86 Capítulo 27. REST . siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Por favor. Security class Cake\Utility\Security Nota: La documentación no es compatible actualmente con el idioma español en esta página.CAPÍTULO 28 Security Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor.com/cakephp/docs https://github. 1 https://github.com/cakephp/docs 3 https://github. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 2 87 . Cross Site Request Forgery Nota: La documentación no es compatible actualmente con el idioma español en esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. com/cakephp/docs Capítulo 28. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Security . 4 88 https://github.x Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios.CakePHP Cookbook Documentation. Publicación 3. Security Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. Por favor. 1 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 29 Sessions Nota: La documentación no es compatible actualmente con el idioma español en esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 89 . Publicación 3. Sessions .CakePHP Cookbook Documentation.x 90 Capítulo 29. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 30 Testing Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 91 . 1 https://github. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. x 92 Capítulo 30. Publicación 3. Testing .CakePHP Cookbook Documentation. com/cakephp/docs 93 . 1 https://github. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 31 Validation Nota: La documentación no es compatible actualmente con el idioma español en esta página. x 94 Capítulo 31. Validation . Publicación 3.CakePHP Cookbook Documentation. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github. Por favor.com/cakephp/docs 95 .CAPÍTULO 32 App Class Nota: La documentación no es compatible actualmente con el idioma español en esta página. Publicación 3.CakePHP Cookbook Documentation. App Class .x 96 Capítulo 32. CAPÍTULO 33 Collections Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor.com/cakephp/docs 97 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. CakePHP Cookbook Documentation.x 98 Capítulo 33. Publicación 3. Collections . siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 34 Folder & File Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 99 . 1 https://github. Por favor. x 100 Capítulo 34. Folder & File .CakePHP Cookbook Documentation. Publicación 3. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 35 Hash Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. 1 https://github.com/cakephp/docs 101 . Hash . Publicación 3.x 102 Capítulo 35.CakePHP Cookbook Documentation. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. 1 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Por favor.CAPÍTULO 36 Http Client class Cake\Network\Http\Client(mixed $config =[]) Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 103 . Publicación 3.x 104 Capítulo 36. Http Client .CakePHP Cookbook Documentation. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 37 Inflector class Cake\Utility\Inflector Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor.com/cakephp/docs 105 . siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. 1 https://github. x 106 Capítulo 37.CakePHP Cookbook Documentation. Publicación 3. Inflector . 1 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 38 Number class Cake\I18n\Number Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 107 . Publicación 3. Number .CakePHP Cookbook Documentation.x 108 Capítulo 38. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 39 Registry Objects Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 109 . 1 https://github. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. CakePHP Cookbook Documentation. Registry Objects .x 110 Capítulo 39. Publicación 3. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github.com/cakephp/docs 111 . siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.CAPÍTULO 40 Text class Cake\Utility\Text Nota: La documentación no es compatible actualmente con el idioma español en esta página. CakePHP Cookbook Documentation.x 112 Capítulo 40. Publicación 3. Text . Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.com/cakephp/docs 113 .CAPÍTULO 41 Time class Cake\Utility\Time Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Publicación 3.x 114 Capítulo 41.CakePHP Cookbook Documentation. Time . 1 https://github. Por favor. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 115 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página.CAPÍTULO 42 Xml class Cake\Utility\Xml Nota: La documentación no es compatible actualmente con el idioma español en esta página. CakePHP Cookbook Documentation. Xml . Publicación 3.x 116 Capítulo 42. CAPÍTULO 43 Constants & Functions Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github.com/cakephp/docs 117 CakePHP Cookbook Documentation, Publicación 3.x 118 Capítulo 43. Constants & Functions CAPÍTULO 44 Debug Kit Nota: La documentación no es compatible actualmente con el idioma español en esta página. Por favor, siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github.com/cakephp/docs 119 Debug Kit .x 120 Capítulo 44.CakePHP Cookbook Documentation. Publicación 3. CAPÍTULO 45 Migrations Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 121 . Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. 1 https://github. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. x 122 Capítulo 45.CakePHP Cookbook Documentation. Publicación 3. Migrations . 3. siéntase libre de enviarnos un pull request en Github1 o utilizar el botón Improve this Doc para proponer directamente los cambios. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github2 o utilizar el botón Improve this Doc para proponer directamente los cambios. Appendices contain information regarding the new features introduced in each version and the migration path between versions.com/cakephp/docs https://github. New ORM Upgrade Guide Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 123 . Por favor.CAPÍTULO 46 Appendices Nota: La documentación no es compatible actualmente con el idioma español en esta página. 1 2 https://github.0 Migration Guide Nota: La documentación no es compatible actualmente con el idioma español en esta página.0 Migration Guide 3. Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. com/cakephp/docs 4 124 Capítulo 46.CakePHP Cookbook Documentation. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. siéntase libre de enviarnos un pull request en Github4 o utilizar el botón Improve this Doc para proponer directamente los cambios. Appendices . siéntase libre de enviarnos un pull request en Github5 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Glossary Nota: La documentación no es compatible actualmente con el idioma español en esta página.1 Migration Guide Nota: La documentación no es compatible actualmente con el idioma español en esta página.x Por favor. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. General Information CakePHP Development Process Nota: La documentación no es compatible actualmente con el idioma español en esta página.com/cakephp/docs 6 https://github. siéntase libre de enviarnos un pull request en Github3 o utilizar el botón Improve this Doc para proponer directamente los cambios.com/cakephp/docs 5 https://github. Usted puede hacer referencia a la versión en Inglés en el menú de selección superior para obtener información sobre el tema de esta página. Publicación 3. 3 https://github. 3.com/cakephp/docs https://github. siéntase libre de enviarnos un pull request en Github6 o utilizar el botón Improve this Doc para proponer directamente los cambios. Por favor. Por favor.1 Migration Guide 3. CAPÍTULO 47 Indices and Tables genindex modindex 125 . x 126 Capítulo 47. Indices and Tables . Publicación 3.CakePHP Cookbook Documentation. PHP Namespace Index c Cake\Collection. 50 Cake\Routing. 53 Cake\Form. 47 127 . 107 Cake\Model\Behavior. 43 Cake\View\Helper. 35 Cake\Utility. 95 Cake\Console. 39 Cake\Database. 103 Cake\ORM. 49 Cake\Database\Schema. 53 Cake\Network\Http. 61 Cake\Controller. 46 Cake\View\UrlHelper. 115 Cake\Validation. 79 Cake\I18n. 91 Cake\View. x 128 PHP Namespace Index . Publicación 3.CakePHP Cookbook Documentation. 35 Cake\Utility (namespace). 103 Cake\ORM (namespace). 105. 115 Cake\Validation (namespace). 53 Cake\Form (namespace). 47 Client (clase en Cake\Network\Http). 52. 61 Cake\Controller (namespace). 107 NumberHelper (clase en Cake\View\Helper). 53 Cake\Network\Http (namespace). 45 P PaginatorHelper (clase en Cake\View\Helper). 39 Inflector (clase en Cake\Utility). 49 Cake\Database\Schema (namespace). 50. 87. 95 Cake\Console (namespace). 45 129 . 87 SessionHelper (clase en Cake\View\Helper). 52 TranslateBehavior (clase en Cake\Model\Behavior). 113 TimeHelper (clase en Cake\View\Helper). 46 TimestampBehavior (clase en Cake\Model\Behavior). 79 FormHelper (clase en Cake\View\Helper). 49 R Router (clase en Cake\Routing). 46 T Table (clase en Cake\ORM). 46 S Security (clase en Cake\Utility). 45 Q Query (clase en Cake\ORM). 35 RssHelper (clase en Cake\View\Helper). 51 E Entity (clase en Cake\ORM). 44 H N Number (clase en Cake\I18n). 44 Form (clase en Cake\Form). 105 D delete() (Cake\ORM\Table method). 44–46 Cake\View\UrlHelper (namespace). 52 TreeBehavior (clase en Cake\Model\Behavior). 46 Time (clase en Cake\Utility). 91 Cake\View (namespace). 113.Índice C I Cake\Collection (namespace). 107 Cake\Model\Behavior (namespace). 49–51 Cake\Routing (namespace). 53 HtmlHelper (clase en Cake\View\Helper). 111. 43 Cake\View\Helper (namespace). 103 Controller (clase en Cake\Controller). 111 TextHelper (clase en Cake\View\Helper). 51 Text (clase en Cake\Utility). 79 Cake\I18n (namespace). 50 F FlashHelper (clase en Cake\View\Helper). 39 Cake\Database (namespace). CakePHP Cookbook Documentation. 47 V View (clase en Cake\View).x U UrlHelper (clase en Cake\View\UrlHelper). 43 X Xml (clase en Cake\Utility). Publicación 3. 115 130 Índice .
Copyright © 2024 DOKUMEN.SITE Inc.