introduccion al akelos php framework
DESCRIPTION
Presentación del Akelos PHP Framework en la primera PHP Conference celebrada en Barcelona el 23 de Febrero de 2008.TRANSCRIPT
Introducción al Akelos PHP Framework
Bermi Ferrer
…en esta presentación
• Introducción
• Componentes disponibles
• Anatomía de una aplicación Akelos
• Ronda de preguntas
Modelo Vista Controlador
Controlador
Controlador
• Actúa ante peticiones de usuarios para crear, mostrar, actualizar o borrar un objeto (Ej. Post)
Controlador
• Actúa ante peticiones de usuarios para crear, mostrar, actualizar o borrar un objeto (Ej. Post)
• Responde renderizando una vista (parseando una plantilla) o redirigiendo a otra acción.
Modelo
Modelo
• Implementa las normas del negocio mediante clases como Usuario, Comentario, Proyecto
Modelo
• Implementa las normas del negocio mediante clases como Usuario, Comentario, Proyecto
• Mantiene los datos y la lógica unidos: Un proyecto tiene un título y sabe si está activo.
Modelo
• Implementa las normas del negocio mediante clases como Usuario, Comentario, Proyecto
• Mantiene los datos y la lógica unidos: Un proyecto tiene un título y sabe si está activo.
• Representa las relaciones del modelo. Un Post tiene muchos Comentarios y pertenece a un Autor
app/models/post.php
Vista
Vista
• Representación de los modelos en HTML
Vista
• Representación de los modelos en HTML
• Lógica avanzada dentro de helpers
Vista
• Representación de los modelos en HTML
• Lógica avanzada dentro de helpers
• Sintags como lenguaje de plantillas o PHP seguro.
Flujo de peticiones
Navegador
/posts/show/3
1) Petición
2) Dirige hacia
Router
Dispatcher
3) Crea
Action Controller
5b) Redirige
Active RecordActive RecordActive Record4) CRUD
/index.php?controler=posts& action=show&id=3
Action View
6) Respuesta
5a) Render
1. Configuración2. Instanciar controlador.
AkActionController
AkActionController
• Acciones agrupadas en el controladorLas acciones son métodos y no objetos, métodos auxiliares (helpers) compartidos.
AkActionController
• Acciones agrupadas en el controladorLas acciones son métodos y no objetos, métodos auxiliares (helpers) compartidos.
• ProcesoAsignaciones y HTTP Status headers.
AkActionController
• Acciones agrupadas en el controladorLas acciones son métodos y no objetos, métodos auxiliares (helpers) compartidos.
• ProcesoAsignaciones y HTTP Status headers.
• RedirecciónUrl, ruta, accion, controlador
AkActionController
• Acciones agrupadas en el controladorLas acciones son métodos y no objetos, métodos auxiliares (helpers) compartidos.
• ProcesoAsignaciones y HTTP Status headers.
• RedirecciónUrl, ruta, acción, controlador
• FiltrosCadena de proceso, separación de responsabilidades.- Antes: Autentificación, Caché, Auditorías- Después: Compresión de la salida
AkActiveRecord
AkActiveRecord
• Mapeado (DRY)Create, Read, Update, Destroy.
AkActiveRecord
• Mapeado (DRY)Create, Read, Update, Destroy.
• AsociacionesCardinalidad, Conveniencia, Cache.
AkActiveRecord
• Mapeado (DRY)Create, Read, Update, Destroy.
• AsociacionesCardinalidad, Conveniencia, Cache.
• ValidacionesBasadas en atributos, save/create/update.
AkActiveRecord
• Mapeado (DRY)Create, Read, Update, Destroy.
• AsociacionesCardinalidad, Conveniencia, Cache.
• ValidacionesBasadas en atributos, save/create/update.
• CallbacksObserver, ciclo de vida completo.
AkActiveRecord
• Mapeado (DRY)Create, Read, Update, Destroy.
• AsociacionesCardinalidad, Conveniencia, Cache.
• ValidacionesBasadas en atributos, save/create/update.
• CallbacksObserver, ciclo de vida completo.
• ComportamientosVersioned, NestedSet,Tree, List.
AkActionView
AkActionView
• PHP limitadoPHP directamente en las vistas
AkActionView
• PHP limitadoPHP directamente en las vistas
• Template LanguagesSintags, Smarty …
Sintags
Sintags
PHP
Sintags
PHP
Sintags
PHP
Sintags
PHP
Sintags
PHP
Sintags
PHP
AkActionView
• PHP limitadoPHP directamente en las vistas
• Template LanguagesSintags, Smarty …
• AsignacionesVariables de instancias compartidas
AkActionView
• PHP limitadoPHP directamente en las vistas
• Template LanguagesSintags, Smarty …
• AsignacionesVariables de instancias compartidas
• Helpers• Render de modelos fáciles
• Formularios: campos texto, selects…
• Textile, Markdown, UTF-8, Sanitize
• AJAX
Filosofía Akelos
Filosofía Akelos
• Convenciones antes que configuracionesConfiguración mínima, mucha reflexión y valores predeterminados de calidad.
Filosofía Akelos
• Convenciones antes que configuracionesConfiguración mínima, mucha reflexión y valores predeterminados de calidad.
• Conformidad con los regalosEl cableado mágico se basa en estructuras comunes.
Filosofía Akelos
• Convenciones antes que configuracionesConfiguración mínima, mucha reflexión y valores predeterminados de calidad.
• Conformidad con los regalosEl cableado mágico se basa en estructuras comunes.
• Invitación a las buenas prácticasEsqueleto de tests unitarios y de integración generados automáticamente.
¿Diferencias con Rails?
¿Diferencias con Rails?
• PHP vs. Ruby
¿Diferencias con Rails?
• PHP vs. Ruby
• Drag & Drop vs. Deployment
¿Diferencias con Rails?
• PHP vs. Ruby
• Drag & Drop vs. Deployment
• i18n integrada vs. Plugin
¿Diferencias con Rails?
• PHP vs. Ruby
• Drag & Drop vs. Deployment
• i18n integrada vs. Plugin
• Demasiadas alternativas vs. Rey en solitario
¿Direfencias con otros frameworks en PHP?
http://fon.gs/php_on_rails
Realizado porTomasz Piotrowski & Mateusz Wozniak
Nicolaus Copernicus University - Poland
Más información
• http://akelos.org
• http://akelos.org/screencasts
• http://akelos.org/docs
• irc.freenode.net #akelos
• http://trac.editam.com (port del Radiant CMS a Akelos)
¿Preguntas?
Gracias
Presentación disponible en la web del grupo de usuarios de PHP de Barcelona.
http://phpbarcelona.org
SmallSquid