Consola de CakePHP, uso y testing David Riveros
Presentación <ul><li>CakeFest Buenos Aires, Argentina </li></ul><ul><li>Experiencia con PHP desde 2003 </li></ul><ul><li>E...
Consola Cake - Instalación <ul><li>Unix: Agregar variable $PATH en .profile $PATH:/path_to_cakephp/cake/console </li></ul>...
Consola Cake – Creando Proyectos <ul><li>cake bake project xxxxxx </li></ul><ul><li>Copia contenido de carpeta </li></ul><...
Modelos, Controladores y Vistas <ul><li>Creación limpia </li></ul><ul><li>cake bake model xxxxxx (singular) </li></ul><ul>...
Cake API <ul><li>Problemas con alguna herramienta de cake? </li></ul><ul><li>cake api xxxxxxx </li></ul><ul><li>Ejemplos: ...
Cake Schema [1/2] <ul><li>cake schema generate </li></ul><ul><li>Dump de tablas de modelos a / app/config/sql/schema.php <...
Cake Schema [2/2] <ul><li>cake schema run create </li></ul><ul><li>Realiza drop de tablas del schema y las crea </li></ul>...
Cake i18n <ul><li>Soporte para internacionalización </li></ul><ul><li>Extracción de oraciones traducibles </li></ul><ul><l...
Consola <ul><li>cake console </li></ul><ul><li>Para probar funciones de modelo fuera del entorno </li></ul><ul><li>Uso: Mo...
Nuestra propia consola <ul><li>/app/vendors/shells/menu.php </li></ul><ul><li>Ocupamos $this->in y $this->out </li></ul><u...
Cake testsuite [1/2] <ul><li>cake testsuite category test_type file </li></ul><ul><li>Category: core, app, nombre plugin <...
Cake testsuite [2/2] <ul><li>Creando nuevos casos de test: </li></ul><ul><li>cake bake test </li></ul><ul><li>Podemos crea...
Unit Testing <ul><li>Si no conoces el concepto, lo verás en práctica </li></ul><ul><li>Si te es familiar, sabrás como impl...
Unit Testing <ul><li>Unit: la unidad mínima de código </li></ul><ul><li>Procedimiento automático que nos de la posibilidad...
Unit Testing <ul><li>Assertions </li></ul>
Unit Testing <ul><li>Assertions </li></ul>
Unit Testing <ul><li>Beneficios </li></ul><ul><li>Sabemos cuando un cambio rompe el comportamiento esperado </li></ul><ul>...
Unit Testing <ul><li>Limitaciones </li></ul><ul><li>Tiempo: el tiempo es oro </li></ul><ul><li>Motivación: no es para floj...
FIN <ul><li>¿Preguntas? </li></ul><ul><li>De interés: </li></ul><ul><li>Lista:  [email_address] </li></ul><ul><li>IRC: irc...
Upcoming SlideShare
Loading in …5
×

Consola Cake Php, Uso Y Testing

6,375 views

Published on

Presentación realizada en el CakePHP Conference realizada por David Riveros el Viernes 19 de Diciembre del 2008

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,375
On SlideShare
0
From Embeds
0
Number of Embeds
476
Actions
Shares
0
Downloads
95
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Consola Cake Php, Uso Y Testing

  1. 1. Consola de CakePHP, uso y testing David Riveros
  2. 2. Presentación <ul><li>CakeFest Buenos Aires, Argentina </li></ul><ul><li>Experiencia con PHP desde 2003 </li></ul><ul><li>Experiencia CakePHP Abril 2008 </li></ul><ul><li>Framework de desarrollo en OXUS </li></ul>
  3. 3. Consola Cake - Instalación <ul><li>Unix: Agregar variable $PATH en .profile $PATH:/path_to_cakephp/cake/console </li></ul><ul><li>Windows: Variables de entorno, agregar a variable PATH c:/path_to_cake/cake/console </li></ul>
  4. 4. Consola Cake – Creando Proyectos <ul><li>cake bake project xxxxxx </li></ul><ul><li>Copia contenido de carpeta </li></ul><ul><li>cakeroot/cake/console/libs/templates/skel </li></ul><ul><li>cake bake xxxxxx </li></ul><ul><li>Copia contenido y configura BD </li></ul>
  5. 5. Modelos, Controladores y Vistas <ul><li>Creación limpia </li></ul><ul><li>cake bake model xxxxxx (singular) </li></ul><ul><li>cake bake controller xxxxxx (plural) </li></ul><ul><li>cake bake view controller xxxxxx </li></ul><ul><li>Para validaciones en modelo o scaffolding en controlador, solo utilizar: </li></ul><ul><li>cake bake </li></ul>
  6. 6. Cake API <ul><li>Problemas con alguna herramienta de cake? </li></ul><ul><li>cake api xxxxxxx </li></ul><ul><li>Ejemplos: </li></ul><ul><li>cake api helper html </li></ul><ul><li>cake api behavior containable </li></ul><ul><li>cake api component RequestHandler </li></ul>
  7. 7. Cake Schema [1/2] <ul><li>cake schema generate </li></ul><ul><li>Dump de tablas de modelos a / app/config/sql/schema.php </li></ul><ul><li>Forzar toda la BD, con –f </li></ul><ul><li>cake schema run update –s 2 </li></ul><ul><li>Modifica la BD con el estado del snapshot </li></ul>
  8. 8. Cake Schema [2/2] <ul><li>cake schema run create </li></ul><ul><li>Realiza drop de tablas del schema y las crea </li></ul><ul><li>cake schema dump filename.sql </li></ul><ul><li>Dump en formato SQL </li></ul><ul><li>Sin filename el dump es en consola </li></ul>
  9. 9. Cake i18n <ul><li>Soporte para internacionalización </li></ul><ul><li>Extracción de oraciones traducibles </li></ul><ul><li>cake i18n extract </li></ul><ul><li>Archivo .pot para traducción </li></ul>
  10. 10. Consola <ul><li>cake console </li></ul><ul><li>Para probar funciones de modelo fuera del entorno </li></ul><ul><li>Uso: Modelo->funcion </li></ul><ul><li>Posts->findAll(); </li></ul><ul><li>Pruebas de Rutas </li></ul><ul><li>Routes posts/view/1 </li></ul><ul><li>Routes show </li></ul>
  11. 11. Nuestra propia consola <ul><li>/app/vendors/shells/menu.php </li></ul><ul><li>Ocupamos $this->in y $this->out </li></ul><ul><li>En vez de $this->params, ocupamos $this->args </li></ul><ul><li>Podemos hacer otras funciones adicionales a main </li></ul>
  12. 12. Cake testsuite [1/2] <ul><li>cake testsuite category test_type file </li></ul><ul><li>Category: core, app, nombre plugin </li></ul><ul><li>Test_type: case, group o all </li></ul><ul><li>File: test a correr </li></ul><ul><li>Ejemplos </li></ul><ul><li>cake testsuite app case models/my_model </li></ul><ul><li>cake testsuite app group mygroup </li></ul>
  13. 13. Cake testsuite [2/2] <ul><li>Creando nuevos casos de test: </li></ul><ul><li>cake bake test </li></ul><ul><li>Podemos crear test para modelos, controladores, helpers, behaviors, componentes </li></ul><ul><li>Creamos por consola los métodos a testear </li></ul>
  14. 14. Unit Testing <ul><li>Si no conoces el concepto, lo verás en práctica </li></ul><ul><li>Si te es familiar, sabrás como implementar en CakePHP </li></ul><ul><li>Como hacer y correr test </li></ul>
  15. 15. Unit Testing <ul><li>Unit: la unidad mínima de código </li></ul><ul><li>Procedimiento automático que nos de la posibilidad de asegurarnos que el código que escribamos funcione de la forma en que queremos que lo haga </li></ul><ul><li>Testear entre 40% y 80% del código. El 100% es imposible e innecesario. </li></ul>
  16. 16. Unit Testing <ul><li>Assertions </li></ul>
  17. 17. Unit Testing <ul><li>Assertions </li></ul>
  18. 18. Unit Testing <ul><li>Beneficios </li></ul><ul><li>Sabemos cuando un cambio rompe el comportamiento esperado </li></ul><ul><li>Arreglar bugs es mucho más fácil, y es menos probable crear código con ellos </li></ul><ul><li>Aumenta la confianza del programador </li></ul>
  19. 19. Unit Testing <ul><li>Limitaciones </li></ul><ul><li>Tiempo: el tiempo es oro </li></ul><ul><li>Motivación: no es para flojos </li></ul><ul><li>Mantenimiento: más código por mantener </li></ul><ul><li>Muestra los errores, no la ausencia de ellos </li></ul>
  20. 20. FIN <ul><li>¿Preguntas? </li></ul><ul><li>De interés: </li></ul><ul><li>Lista: [email_address] </li></ul><ul><li>IRC: irc.freenode.org #cakephp #cakephp-es </li></ul><ul><li>Contacto: david.riveros@oxus.cl </li></ul>

×