Post on 04-Jul-2015
description
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