Germán Peraferrer: Cormo Framework

Post on 17-May-2015

402 views 5 download

description

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

Transcript of Germán Peraferrer: Cormo Framework

cormo Framework - Beta 1.0

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.

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)

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

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.

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

mapa de integración …

PDO

Memcached

MySQL MSSQL DB2 Oracle PostgreSQL SQLITE SYBASE Informix ODBC

Web Services(NuSOAP)

Diversas Tecnologías y Aplicaciones

lithium

como se utiliza ?

descargar configurar / modelar generar utilizar

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

config.php schema.php

cormo Generator.phpvalidSchema.php

descargar e instalar …

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

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

configuración …

Configuración de la aplicación

configuración …

Constantes para el Framework

configuración …

Configuración adicional de la aplicación

modelado …

Definición del Modelo de Negocio

modelado …

Definición de un Data Source

modelado …

Definición de un Data Source

modelado …

Definición de un Objeto / Tabla

modelado …

Definición de un Objeto / Tabla

validar el esquema modelado …

Validar el Esquema Modelado

Validar Esquema

validar el esquema modelado …

Validar el Esquema Modelado

generador …

Generar archivos Class, WSDL y SQL

Generador

generador …

Generar archivos Class, WSDL y SQL

comenzar a utilizar el modelo …

Solamente debemos mover los Class y WSDL generados

estructura de directorios …

Class que usaremos en nuestros proyectos

WSDL que usaremos en nuestros proyectos

Class para realizar consultas masivas

vamos al grano, codifiquemos …

Creemos un ejemplo simple

vamos al grano, codifiquemos …

Creemos un ejemplo simple

vamos al grano, codifiquemos …

Creemos un ejemplo simple

vamos al grano, codifiquemos …

Creemos un ejemplo simple

vamos al grano, codifiquemos …

Creemos un ejemplo simple

vamos al grano, codifiquemos …

Creemos un ejemplo simple

vamos al grano, codifiquemos …

Creemos un ejemplo simple

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

vamos al grano, codifiquemos …

Consultar los Objetos persistidos de la Class Geek

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:1

Suponemos que un Geek puede tener solo un Gadget

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

creando relaciones 1:n

Ahora Geek puede tener muchos Gadgets

múltiples Data Source …

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

múltiples Data Source …

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

múltiples Data Source …

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

múltiples Data Source …

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

múltiples Data Source …

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

múltiples Data Source …

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

múltiples Data Source …

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

múltiples Data Source …

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

agregar o modificar funcionalidad …

agregar o modificar funcionalidad …

agregar o modificar funcionalidad …

agregar o modificar funcionalidad …

agregar o modificar funcionalidad …

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

Web Services, integración …

Web Services, integración …

Web Services, integración …

Web Services, integración …

Web Services, integración …

Web Services, integración …

Web Services, integración …

Web Services, integración …

MySQL

MSSQL

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

integración con Adobe Flex …

muchas gracias a todos …

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

http://twitter.com/cormo_framework

Proyecto:

Twitter: