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