¡Últimos días para inscribirse al curso Zend Framework de Abril 2010!
Por zsamer en Abril 2, 2010
Última semana para hacer el pago del curso Introducción a ZendFramework (6ta edición) que está iniciando el próximo lunes 12/Abril. Tiene un costo único de USD 60 y una duración de 2 meses, última fecha para pagar viernes 9/Abril!.
Importante: el lunes temprano haremos una evaluación de los pagos confirmados de los alumnos, si existieran muchos atrasos, la fecha de inicio se postergará una semana más hasta el lunes 19 de Abril (les avisaremos oportunamente por email a todos los alumnos).
Si no eres un alumno registrado, debes hacerlo en registracion.surforce.com, luego de habilitado tu usuario podrás hacer la compra del curso a través de usuarios.surforce.com, usando mecanismos como Paypal, Western Union o transferencia bancaria (este último solo para Argentina).
Los esperamos, ¡No pierdas tú lugar!
¡Iniciamos curso Zend Framework Febrero 2010!
Por zsamer en Enero 24, 2010
‘Cursos Abiertos’ <> ‘Cursos Intensivos’
Les comento que los ‘cursos abiertos’ se van armando de forma libre a medida que los alumnos se van registrando. Si sobre la fecha de inicio del curso no se llegó al cupo mínimo de 10 alumnos, se postergará una semana el inicio del curso. En caso de superar el máximo de 20 alumnos, se abrirá un único segundo grupo a la semana siguiente. El próximo período de cursos se abrirán recién a partir de Marzo 2010 (fecha a confirmar).
Todos los cursos tienen una duración promedio de 2 meses, pero existe la posibilidad de armar grupos INTENSIVOS y REDUCIDOS de 1 mes de duración (a un costo mayor).
¡Promoción!
Es de público conocimiento que hace 3 años que los precios de los cursos se han mantenido invariables, por lo que este año aumentarán los ‘cursos abiertos’ de USD 50 a USD 60. Pero, a modo de promoción, quienes se inscriban durante esta semana (plazo hasta el domingo 24/1), lo podrán hacer a precio congelado! (luego no se aceptarán reclamos ;-)).
¡No pierdas tú lugar! Accede a usuarios.surforce.com e ingresa a la sección COMPRAR.
Toda la información sobre los cursos en surforce.com
Saludos!
Doctrine 2: Enterprise Persistence Layer for PHP 5.3
Por zsamer en Noviembre 24, 2009
Quería compartir con ustedes una presentación muy buena sobre Doctrine 2 y las grandes ventajas que tiene respecto a sus otras versiones como la 1.2, resumiendo:
- Es mucho más rápido, 30% menos en uso de memoria
- 100% desacoplado
- Las clases de entidades no necesitan heredan de ninguna otra clase como en la 1.2 que obliga la herencia de Doctrine_Record, entidades mucho más desacopladas y reutilizables.
- NO nos impone otros métodos, propiedades, y otras basura en nuestro modelo de objetos de dominio o clases de entidades (En java se les conocen como POJO, DTO o Entity), ídem lo anterior, mucho más limpias y reutilizables
- Desarrollado completamente en PHP5.3, el futuro de PHP y desarrollo de aplicaciones empresariales
- Uso de namespace
- Toma lo mejor de los ORM de Java, está basado en Hibernate y EntityManager y JPA (Java Persistence API )
- Mucho más elegante, con estándares y buenas prácticas OOP e implementación de patrones de diseños
- y muchas otras
Les dejo la presentación de Jonathan Wage (miembro del equipo de desarrollo de Doctrine 2), muy recomendado, lo que si está en ingles
Doctrine 2 ORM en Zend Framewok: parte II
Por zsamer en Noviembre 23, 2009
Continuando con nuestro articulo anterior Doctrine 2 ORM en Zend Framewok: parte I, en esta oportunidad quiero compartir unos tips de como integrar ORM Doctrine 2 con Zend Framework, para ello va ser necesario haber leido también el articulo sobre Bootstrapping con Zend Application, que será nuestra base para la integración.
Lo primero que tenemos que hacer es descargar Doctrine 2 (actualmente 2.0.0-ALPHA3), descomprimir en la carpeta "library" del proyecto Zend y luego agregar en application.ini las siguientes lineas:
-
autoloaderNamespaces.doctrine = "Doctrine"
-
autoloaderNamespaces.proxies = "Proxies"
Con esto agregamos las librerías de Doctrine 2 en el Include Path de PHP.
Lo segundo que tenemos que hacer es crear un método _init en la clase Boostrap, a éste método le llamaremos _initDoctrine, obviamente
-
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
-
{
-
protected function _initDoctrine() {
-
$config = new Configuration();
-
$cache = new ApcCache();
-
$config->setMetadataCacheImpl($cache);
-
$config->setQueryCacheImpl($cache);
-
-
$config->setProxyDir(APPLICATION_PATH . "/../library" . DIRECTORY_SEPARATOR.'Proxies');
-
$config->setProxyNamespace('Proxies');
-
-
-
$this->bootstrap('db');
-
$connPDO['pdo'] = $this->getResource('db')->getConnection();
-
-
$conn = DriverManager::getConnection($connPDO, $config);
-
$em = EntityManager::create($conn, $config);
-
-
Zend_Registry::set('em', $em);
-
return $em;
-
}
-
}
Podemos observar que hace uso de namespace incluido en la versión 5.3 de PHP, también observamos que se hace uso de la conexión a la base de datos de Zend Db ($this->bootstrap('db')), configurado en "application.ini", obtenemos el objeto PDO de conexión y se lo entregamos al DriverManager de Doctrine 2
todo muy elegante ¿no?, finalmente lo guardamos en el Zend_Registry.
Lee el resto de este artículo »
Doctrine 2 ORM en Zend Framewok: parte I
Por zsamer en Noviembre 23, 2009
Como muchos sabemos Zend Framework ha estado desarrollando su propio ORM Zend Entity (definición de ORM), sin embargo el proyecto de ORM nativo de Zend ha quedado parado y descontinuado, el propio autor, Benjamin Eberlei (@beberlei (Twitter)), comenta las causas en el siguiente post.
Lamentable noticia, sin embargo ésta viene acompañada de una excelente noticia: a partir de ahora, Benjamin Eberlei dedicará todos sus esfuerzos a mejorar el ORM Doctrine 2 y su integración con el Zend Framework, sin duda alguna, Doctrine 2 es y lo será por lejos el mejor ORM de PHP desde su versión 5.3 (Doctrine 2 requiere PHP 5.3 o superior).
Las razones que dieron lugar a esta decisión son las siguientes:
- Le consume demasiado tiempo y ha llegado a una situación de bloqueo
- Zend_Entity sólo tiene un desarrollador y por eso no tiene ni la mitad de características de Doctrine 2
- La fecha prevista de finalización de Zend_Entity era de hasta seis meses, algo que no encaja muy bien con la planificación de las nuevas versiones de Zend Framework
Matthew Weier O’Phinney, máximo responsable de Zend Framework, está de acuerdo con la decisión y comenta al respecto:
"creemos que ayudar a mejorar un proyecto existente Doctrine y trabajar en su integración con Zend Framework será mejor para toda la comunidad de PHP".
Lee el resto de este artículo »
E-commerce con Zend Framework: Clase Colección de Items
Por zsamer en Abril 1, 2009
En el 3er capitulo "Clase Cart" de la serie "E-commerce con Zend Framework" hablamos en detalle sobre las clases que representa el Carro de compras (Shopping Cart). Hablamos de la clase abstracta CartAbstract que determina que comportamiento tiene que implementar las clases que la extiendan y de su clase hija StandardCart (concreta) que implementa el comportamiento y operaciones de un carro de compras.
Ahora es el turno de hablar sobre la clase Collection e Item, la primera representa una colección de Item y la segunda es el Item que representa el producto en el carro de compras. Si aún estas interesado en como implementar un carro de compras en Zend Framework entonces sigue leyendo. Lee el resto de este artículo »
Crear un CRUD o ABM con Zend Framework
Por zsamer en Noviembre 24, 2008
En este artículo veremos como agregar/eliminar/modificar datos de una base de datos utilizando Zend_Db_Table.
En informática CRUD es el acrónimo de Crear, Obtener, Actualizar y Borrar (Create, Read, Update y Delete en inglés). Es usado para referirse a las funciones básicas en bases de datos o la capa de persistencia en un sistema de software. En algunos lugares, se utilizan las siglas ABM para lo mismo (Alta Baja Modificación), obviando la operación de Obtener. A veces se nombra ABML siendo la ultima letra (L) de listar, listado o lectura, etc.
Crear una Tabla
Vamos a utilizar MySQL, así que las sentencias SQL para crear la tabla son:
Lee el resto de este artículo »
Implementar ORM en Zend Framework Db Table
Por zsamer en Agosto 29, 2008
Como todos ya sabemos, Zend Framework no tiene una implementacion de ORM propiamentetal, si cubre algunos aspectos pero no todos.
Dada esta carencia en Zend Framework y mi inquietud por este tipo de técnica o patrón, he querido dedicar tiempo y desarrollar uno implementado con Zend_Db_Table Relationships, sin alterar ni tocar ninguna de sus funcionalidades ya existentes. En otras palabras es un proyecto que tiene como finalidad dar mayor funcionalidad de ORM a Zend_Db_Table Relationships.
Me ha tocado trabajar en proyectos JEE que he utilizando Hibernate como ORM, a mi gusto uno de los mejores ORM en Java y también he trabajado con Propel en PHP5, y he tomado funcionalidades de ambos para incorporarlas en este proyecto. Lee el resto de este artículo »
Load Model Action Helper
Por zsamer en Agosto 13, 2008
Hoy veremos una implementación de un Action Helper que permite cargar modelos en nuestros controladores u otra parte de nuestro sistema, la ventaja es que nos evita tener que hacer includes/require de éstos cada vez que los necesitemos y además nos da la posibilidad de guardar los modelos en un contenedor como singleton, si estas de acuerdo entonces sigue leyendo.
Este Helper nació de la idea de evitar el tener que hacer los típicos require y la necesidad de hacerlos singletons ya que en una petición usaba el mismo modelo en diversas partes del sistema, no solo en el controlador y tenia que estar creando las instancias a diestra y siniestra del modelo en cada lugar, lo que en realidad no tenia mucho sentido, un ejemplo típico es el modelo de usuario, post, etc, que no sólo se utiliza en el controlador/acción actual sino también en algún bloque de nuestro sitio (últimos post o usuarios online) mediante el helper view action o login, chequeos etc.
Vamos al grano, veamos como se utiliza:
Lee el resto de este artículo »
ORM con Zend Framework
Por zsamer en Junio 28, 2008
En el post anterior había prometido escribir un articulo sobre implementar ORM con Zend Framework.
El mapeo objeto-relacional es una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje de programación orientado a objetos y el utilizado en una base de datos relacional. En la práctica esto crea una base de datos orientada a objetos virtual, por sobre la base de datos relacional. Si estas interesado en como implementar esta técnica con Zend_Db_Table Relationships entonces continua leyendo.
Lee el resto de este artículo »
