SlideShare una empresa de Scribd logo
Joomla Entity - API semántica para Joomla!
Sobre mi
● PHP & JS
● Desarrollando para Joomla! desde 2011
● Contribuidor a Joomla
● Ex-miembro de PLT
● Freelance en parada técnica
Twitter: @phproberto
https://www.slideshare.net/secret/6qDpK1vNTQvuo2
¿Qué es Joomla Entity?
● API no intrusiva sobre Joomla!
● Solución a problemas comunes en proyectos Joomla!
● Código abierto y gratuito
● 100% unit tested
● Centrada en Developer eXperience (frontend y backend)
https://github.com/phproberto/joomla-entity
Sin Joomla Entity
Carga de un artículo:
Con Joomla Entity
Carga de un artículo:
Sin Joomla Entity
Obtener datos de una categoría de un artículo:
Sin Joomla Entity
Obtener datos de una categoría de un artículo (II):
Sin Joomla Entity
Obtener datos de una categoría de un artículo (III):
Sin Joomla Entity
Obtener datos de una categoría de un artículo (IV):
Con Joomla Entity
Obtener datos de la categoría de un artículo:
Con Joomla Entity
Obtener datos de la categoría de un artículo (II):
Ya integrado en Joomla Entity
● Artículos y categorías (com_content)
● Usuarios (com_users)
● Campos extra (com_fields)
● Tags (com_tags)
● Extensiones
● Traducciones
● ACL
Con Joomla Entity: Usuarios
Con Joomla Entity: Campos
Con Joomla Entity: Tags
Con Joomla Entity: Extensiones
Con Joomla Entity: Componentes
Con Joomla Entity: ACL
Con Joomla Entity: Traducciones
Con Joomla Entity: Validación
Con Joomla Entity: Validación II
Con Joomla Entity: Validación III
● Las reglas son reutilizables
● Puedes crear tus propias reglas
● Puedes utilizar los validadores en las tablas
● Si tu entidad implementa la interfaz `Validable` se valida
automáticamente al ejectuar `save()`
● Lo esperado es que cada entidad provea su validador
● Los traductores soportan validadores
Ventajas de Joomla Entity
● Lenguaje natural / semántico
● API frontenders <-> backenders
● Caché estática
● Carga de datos bajo demanda
○ Un mismo módulo muestra diferentes datos
○ Un módulo es una capa de presentación de datos
○ Una vista no tiene que cargar todo
Ventajas de Joomla Entity II
● Misma lógica para cargar un artículo, una categoría, etc.
● Basado en interfaces -> 100% personalizable
● Cada entidad almacena sólo su lógica
● Traits para integración rápida con cualquier extensión
¿Cómo usar Joomla Entity?
https://github.com/phproberto/joomla-entity/releases
Actualmente en versión alpha:
¿Qué esperar de la v1.0.0 final?
● Más reglas de validación
● Alguna entidad del core más
● Buscadores para list models ¿?
● Documentación
● Extensiones de ejemplo
● Vídeos de programación en tiempo real
El futuro de Joomla Entity
● Siempre gratuito y opensource
● Semantic Versioning en modo estricto
● Compatible con Joomla 4
● Soporte 100% del core de Joomla!
● Documentación html y traducida
● REST / GraphQL
..y mantener el “very good”
..y mantener en “100% unit tested”
Contribuir a Joomla Entity
● Fallos
● Documentación
○ https://github.com/phproberto/joomla-entity/tree/master/docs
● Mejoras DX
Joomla Entity - API semántica para Joomla

Más contenido relacionado

Similar a Joomla Entity - API semántica para Joomla

Seminario 2+parte wickets
Seminario 2+parte wicketsSeminario 2+parte wickets
Seminario 2+parte wickets
Jorge Mahecha
 
La magia de Flutter
La magia de FlutterLa magia de Flutter
La magia de Flutter
Chema Molins
 
Cadius que es_moo_tools_
Cadius que es_moo_tools_Cadius que es_moo_tools_
Cadius que es_moo_tools_epplestun
 
Presentacion portlets-tools
Presentacion portlets-toolsPresentacion portlets-tools
Presentacion portlets-toolsguest696b01
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets toolsDavid Calvo
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets toolsguest696b01
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
menttes
 
Introducción a Symfony
Introducción a Symfony Introducción a Symfony
Introducción a Symfony
Marcos Quesada
 
Presentacion Joomla
Presentacion JoomlaPresentacion Joomla
Presentacion Joomla
Carlos Roncero Parra
 
Sp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycleSp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycle
Mario Cortés Flores
 
Distintas Herramientas Tecnológicas en la Actualidad
Distintas Herramientas Tecnológicas en la ActualidadDistintas Herramientas Tecnológicas en la Actualidad
Distintas Herramientas Tecnológicas en la Actualidad
Gregorys Gimenez
 
De cero a multinacional con Grails y EC2
De cero a multinacional con Grails y EC2De cero a multinacional con Grails y EC2
De cero a multinacional con Grails y EC2
Eloy García-Borreguero Melero
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
Ivan Ortega
 
Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)
Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)
Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)
Pablo Aviles
 
Migración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xMigración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.x
jachavesnaranjo
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
Adrian Diaz Cervera
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
Manuel Pérez
 

Similar a Joomla Entity - API semántica para Joomla (20)

Seminario 2+parte wickets
Seminario 2+parte wicketsSeminario 2+parte wickets
Seminario 2+parte wickets
 
La magia de Flutter
La magia de FlutterLa magia de Flutter
La magia de Flutter
 
Cadius que es_moo_tools_
Cadius que es_moo_tools_Cadius que es_moo_tools_
Cadius que es_moo_tools_
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Presentacion portlets-tools
Presentacion portlets-toolsPresentacion portlets-tools
Presentacion portlets-tools
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets tools
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets tools
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Introducción a Symfony
Introducción a Symfony Introducción a Symfony
Introducción a Symfony
 
Joomla, lesly
Joomla, leslyJoomla, lesly
Joomla, lesly
 
Presentacion Joomla
Presentacion JoomlaPresentacion Joomla
Presentacion Joomla
 
Sp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycleSp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycle
 
Distintas Herramientas Tecnológicas en la Actualidad
Distintas Herramientas Tecnológicas en la ActualidadDistintas Herramientas Tecnológicas en la Actualidad
Distintas Herramientas Tecnológicas en la Actualidad
 
De cero a multinacional con Grails y EC2
De cero a multinacional con Grails y EC2De cero a multinacional con Grails y EC2
De cero a multinacional con Grails y EC2
 
Tema2
Tema2Tema2
Tema2
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)
Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)
Instale PHP y Drupal fácilmente en Windows con Web PI (parte I)
 
Migración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xMigración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.x
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
 

Más de Roberto Segura

Using twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsUsing twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensions
Roberto Segura
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensions
Roberto Segura
 
Uso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomlaUso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomla
Roberto Segura
 
JLayout for extension developers
JLayout for extension developersJLayout for extension developers
JLayout for extension developers
Roberto Segura
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutos
Roberto Segura
 
Joomla JLayout
Joomla JLayout Joomla JLayout
Joomla JLayout
Roberto Segura
 
Git for joomla! development #JAB14
Git for joomla! development #JAB14Git for joomla! development #JAB14
Git for joomla! development #JAB14
Roberto Segura
 
Joomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteJoomla! future #jd14fr keynote
Joomla! future #jd14fr keynote
Roberto Segura
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
Roberto Segura
 

Más de Roberto Segura (9)

Using twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsUsing twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensions
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensions
 
Uso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomlaUso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomla
 
JLayout for extension developers
JLayout for extension developersJLayout for extension developers
JLayout for extension developers
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutos
 
Joomla JLayout
Joomla JLayout Joomla JLayout
Joomla JLayout
 
Git for joomla! development #JAB14
Git for joomla! development #JAB14Git for joomla! development #JAB14
Git for joomla! development #JAB14
 
Joomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteJoomla! future #jd14fr keynote
Joomla! future #jd14fr keynote
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
 

Último

PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
JhenryHuisa1
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Tango-Gestion-Delta2.pdf...para aprender
Tango-Gestion-Delta2.pdf...para aprenderTango-Gestion-Delta2.pdf...para aprender
Tango-Gestion-Delta2.pdf...para aprender
AgostinaZarate
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
AlanL15
 

Último (6)

PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Tango-Gestion-Delta2.pdf...para aprender
Tango-Gestion-Delta2.pdf...para aprenderTango-Gestion-Delta2.pdf...para aprender
Tango-Gestion-Delta2.pdf...para aprender
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
 

Joomla Entity - API semántica para Joomla

  • 1. Joomla Entity - API semántica para Joomla!
  • 2. Sobre mi ● PHP & JS ● Desarrollando para Joomla! desde 2011 ● Contribuidor a Joomla ● Ex-miembro de PLT ● Freelance en parada técnica Twitter: @phproberto https://www.slideshare.net/secret/6qDpK1vNTQvuo2
  • 3. ¿Qué es Joomla Entity? ● API no intrusiva sobre Joomla! ● Solución a problemas comunes en proyectos Joomla! ● Código abierto y gratuito ● 100% unit tested ● Centrada en Developer eXperience (frontend y backend) https://github.com/phproberto/joomla-entity
  • 4. Sin Joomla Entity Carga de un artículo:
  • 5. Con Joomla Entity Carga de un artículo:
  • 6. Sin Joomla Entity Obtener datos de una categoría de un artículo:
  • 7. Sin Joomla Entity Obtener datos de una categoría de un artículo (II):
  • 8. Sin Joomla Entity Obtener datos de una categoría de un artículo (III):
  • 9. Sin Joomla Entity Obtener datos de una categoría de un artículo (IV):
  • 10. Con Joomla Entity Obtener datos de la categoría de un artículo:
  • 11. Con Joomla Entity Obtener datos de la categoría de un artículo (II):
  • 12. Ya integrado en Joomla Entity ● Artículos y categorías (com_content) ● Usuarios (com_users) ● Campos extra (com_fields) ● Tags (com_tags) ● Extensiones ● Traducciones ● ACL
  • 13. Con Joomla Entity: Usuarios
  • 16. Con Joomla Entity: Extensiones
  • 17. Con Joomla Entity: Componentes
  • 19. Con Joomla Entity: Traducciones
  • 20. Con Joomla Entity: Validación
  • 21. Con Joomla Entity: Validación II
  • 22. Con Joomla Entity: Validación III ● Las reglas son reutilizables ● Puedes crear tus propias reglas ● Puedes utilizar los validadores en las tablas ● Si tu entidad implementa la interfaz `Validable` se valida automáticamente al ejectuar `save()` ● Lo esperado es que cada entidad provea su validador ● Los traductores soportan validadores
  • 23. Ventajas de Joomla Entity ● Lenguaje natural / semántico ● API frontenders <-> backenders ● Caché estática ● Carga de datos bajo demanda ○ Un mismo módulo muestra diferentes datos ○ Un módulo es una capa de presentación de datos ○ Una vista no tiene que cargar todo
  • 24. Ventajas de Joomla Entity II ● Misma lógica para cargar un artículo, una categoría, etc. ● Basado en interfaces -> 100% personalizable ● Cada entidad almacena sólo su lógica ● Traits para integración rápida con cualquier extensión
  • 25. ¿Cómo usar Joomla Entity? https://github.com/phproberto/joomla-entity/releases Actualmente en versión alpha:
  • 26. ¿Qué esperar de la v1.0.0 final? ● Más reglas de validación ● Alguna entidad del core más ● Buscadores para list models ¿? ● Documentación ● Extensiones de ejemplo ● Vídeos de programación en tiempo real
  • 27. El futuro de Joomla Entity ● Siempre gratuito y opensource ● Semantic Versioning en modo estricto ● Compatible con Joomla 4 ● Soporte 100% del core de Joomla! ● Documentación html y traducida ● REST / GraphQL
  • 28. ..y mantener el “very good”
  • 29. ..y mantener en “100% unit tested”
  • 30. Contribuir a Joomla Entity ● Fallos ● Documentación ○ https://github.com/phproberto/joomla-entity/tree/master/docs ● Mejoras DX