Germán Peraferrer: Cormo Framework

97
cormo Framework - Beta 1.0

description

Charla de Germán Peraferrer titulada "Cormo Framework" en las Primeras Charlas del Grupo PHP Argentina

Transcript of Germán Peraferrer: Cormo Framework

Page 1: Germán Peraferrer: Cormo Framework

cormo Framework - Beta 1.0

Page 2: Germán Peraferrer: Cormo Framework

que es ?

Es un ORM Framework

Un Framework, debido a que mediante un conjunto de conceptos, prácticas y criterios nos permite enfocar un tipo de problemática particular, en nuestro caso, como persistir un Modelo de manera transparente.

Un ORM, porque como su definición nos dice, mediante esta técnica de programación, nos ayuda a trabajar con Modelos de Datos Relacionales y programación Orientada a Objetos de manera intuitiva y transparente.

Su principal objetivo es ayudarnos a solucionar el problema de la persistencia de Modelos de Datos, gracias a esto logramos focalizarnos en la problemática a resolver y no en como y con que persistir los datos generados por el Modelo OOP. Ahorrando un 35% de nuestro tiempo de desarrollo.

Otro objetivo no menos importante es ofrecer conectividad con diversas tecnologías.

Page 3: Germán Peraferrer: Cormo Framework

que es ?

Es un ORM y algo más, desarrollado en PHP

Compatible con versiones de PHP 4.5 y superiores

Toma fundamentos de Hibernate

Influenciado por Doctrine y Propel

Implementa SPL (Standard PHP Library)

Implementa Web Services mediante NuSOAP (próximo a migrar)

Su core de persistencia es PDO (PHP Data Objects)

Implementa Memcached para mejorar la performance (en test)

Page 4: Germán Peraferrer: Cormo Framework

que nos puede ofrecer ?

Olvidarnos de cómo persistir los Objetos en una Base de Datos

Independizarnos de la infraestructura de la Base de Datos

Trabajar con Objetos de diversas DB’s y relacionarlos entre sí

Genera el Código de los Class y Web Services a partir de un Modelo definido

Código 100% OOP

Extender o alterar funcionalidad es intuitivo y sencillo

Orientado para integrar con patrones MVC (Model View Controller)

Comunicar el Core con diversas tecnologías y aplicaciones a través de Web Services

Page 5: Germán Peraferrer: Cormo Framework

que NO esperar ?

Model

ControllerView

Class generados a partir del

Modelo definido

Class personalizados y Web Services generados a partir del Modelo definido

NO es parte del alcance de CORMO, se

deja a herramientas especificas y mas

potentes.

Page 6: Germán Peraferrer: Cormo Framework

sus objetivos …

Evitar tareas tediosas y repetitivas con la definición de los Class y todas las sentencias SQL para realizar la persistencia de los datos

Abstraernos de la Infraestructura de implementación, de los métodos de persistencia y relación de los Objetos

Otorgar Flexibilidad al Modelo de Negocio permitiendo realizar cambios significativos de manera, Ordenada, Controlada y Veloz

Integrar el Modelo de Negocio con cualquier tecnología y aplicación de manera transparente, sencilla y automática, permitiendo una centralización del core

Orientarnos a enfocar nuestro esfuerzo en la Problemática de Negocio y brindar soluciones mas robustas

Page 7: Germán Peraferrer: Cormo Framework

mapa de integración …

PDO

Memcached

MySQL MSSQL DB2 Oracle PostgreSQL SQLITE SYBASE Informix ODBC

Web Services(NuSOAP)

Diversas Tecnologías y Aplicaciones

lithium

Page 8: Germán Peraferrer: Cormo Framework

como se utiliza ?

descargar configurar / modelar generar utilizar

http://code.google.com/p/cormoframework

config.php schema.php

cormo Generator.phpvalidSchema.php

Page 9: Germán Peraferrer: Cormo Framework

descargar e instalar …

Descargamos y luego descomprimimos el archivo en el directorio del proyecto a crear.

Page 10: Germán Peraferrer: Cormo Framework

estructura de directorio …

Directorio del ProyectoClass del Controlador y Web Services

Web ServicesClass Proxy para Web Services externos

Núcleo del FrameworkNúcleo del Generador de Class y WSDLRepositorio de los Class generados

Carga los Class bajo demandaConfiguración del Framework y AplicaciónGenerador de Class, WSDL y SQL

Esquema de Modelado para el ORMValidar el Esquema Modelado

Page 11: Germán Peraferrer: Cormo Framework

configuración …

Configuración de la aplicación

Page 12: Germán Peraferrer: Cormo Framework

configuración …

Constantes para el Framework

Page 13: Germán Peraferrer: Cormo Framework

configuración …

Configuración adicional de la aplicación

Page 14: Germán Peraferrer: Cormo Framework

modelado …

Definición del Modelo de Negocio

Page 15: Germán Peraferrer: Cormo Framework

modelado …

Definición de un Data Source

Page 16: Germán Peraferrer: Cormo Framework

modelado …

Definición de un Data Source

Page 17: Germán Peraferrer: Cormo Framework

modelado …

Definición de un Objeto / Tabla

Page 18: Germán Peraferrer: Cormo Framework

modelado …

Definición de un Objeto / Tabla

Page 19: Germán Peraferrer: Cormo Framework

validar el esquema modelado …

Validar el Esquema Modelado

Validar Esquema

Page 20: Germán Peraferrer: Cormo Framework

validar el esquema modelado …

Validar el Esquema Modelado

Page 21: Germán Peraferrer: Cormo Framework

generador …

Generar archivos Class, WSDL y SQL

Generador

Page 22: Germán Peraferrer: Cormo Framework

generador …

Generar archivos Class, WSDL y SQL

Page 23: Germán Peraferrer: Cormo Framework

comenzar a utilizar el modelo …

Solamente debemos mover los Class y WSDL generados

Page 24: Germán Peraferrer: Cormo Framework

estructura de directorios …

Class que usaremos en nuestros proyectos

WSDL que usaremos en nuestros proyectos

Class para realizar consultas masivas

Page 25: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Creemos un ejemplo simple

Page 26: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Creemos un ejemplo simple

Page 27: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Creemos un ejemplo simple

Page 28: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Creemos un ejemplo simple

Page 29: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Creemos un ejemplo simple

Page 30: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Creemos un ejemplo simple

Page 31: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Creemos un ejemplo simple

Page 32: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

Page 33: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

Page 34: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

Page 35: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

Page 36: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

Page 37: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

Page 38: Germán Peraferrer: Cormo Framework

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

Page 39: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 40: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 41: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 42: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 43: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 44: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 45: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 46: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 47: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 48: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 49: Germán Peraferrer: Cormo Framework

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

Page 50: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 51: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 52: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 53: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 54: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 55: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 56: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 57: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 58: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 59: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 60: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 61: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 62: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 63: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 64: Germán Peraferrer: Cormo Framework

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

Page 65: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 66: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 67: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 68: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 69: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 70: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 71: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 72: Germán Peraferrer: Cormo Framework

múltiples Data Source …

Ahora Geek puede tener muchos Gadgets, pero en Data Source diferentes

Page 73: Germán Peraferrer: Cormo Framework

agregar o modificar funcionalidad …

Page 74: Germán Peraferrer: Cormo Framework

agregar o modificar funcionalidad …

Page 75: Germán Peraferrer: Cormo Framework

agregar o modificar funcionalidad …

Page 76: Germán Peraferrer: Cormo Framework

agregar o modificar funcionalidad …

Page 77: Germán Peraferrer: Cormo Framework

agregar o modificar funcionalidad …

Page 78: Germán Peraferrer: Cormo Framework

Web Services, integración …

Class definidas en schema.php

Class por Objeto de schema.php para consultas masivas

Web Services por Objeto en schema.php

Page 79: Germán Peraferrer: Cormo Framework

Web Services, integración …

Page 80: Germán Peraferrer: Cormo Framework

Web Services, integración …

Page 81: Germán Peraferrer: Cormo Framework

Web Services, integración …

Page 82: Germán Peraferrer: Cormo Framework

Web Services, integración …

Page 83: Germán Peraferrer: Cormo Framework

Web Services, integración …

Page 84: Germán Peraferrer: Cormo Framework

Web Services, integración …

Page 85: Germán Peraferrer: Cormo Framework

Web Services, integración …

Page 86: Germán Peraferrer: Cormo Framework

Web Services, integración …

MySQL

MSSQL

Page 87: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 88: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 89: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 90: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 91: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 92: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 93: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 94: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 95: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 96: Germán Peraferrer: Cormo Framework

integración con Adobe Flex …

Page 97: Germán Peraferrer: Cormo Framework

muchas gracias a todos …

http://code.google.com/p/cormoframework

http://twitter.com/cormo_framework

Proyecto:

Twitter: