¡Iniciamos curso Zend Framework Febrero 2010!

Por zsamer en Enero 24, 2010

Damos oficialmente el anuncio de apertura de inscripciones del curso Introducción a Zend Framework (5ta edición) que iniciará el 1ro de Febrero de 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:

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:

CODE:
  1. autoloaderNamespaces.doctrine = "Doctrine"
  2. 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 ;-)

PHP:
  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3.     protected function _initDoctrine() {
  4.         $config = new Configuration();
  5.         $cache = new ApcCache();
  6.         $config->setMetadataCacheImpl($cache);
  7.         $config->setQueryCacheImpl($cache);
  8.  
  9.         $config->setProxyDir(APPLICATION_PATH . "/../library" . DIRECTORY_SEPARATOR.'Proxies');
  10.         $config->setProxyNamespace('Proxies');
  11.        
  12.         $connPDO = array();
  13.  
  14.         $this->bootstrap('db');
  15.         $connPDO['pdo'] = $this->getResource('db')->getConnection();
  16.  
  17.         $conn = DriverManager::getConnection($connPDO, $config);
  18.         $em = EntityManager::create($conn, $config);
  19.  
  20.         Zend_Registry::set('em', $em);
  21.         return $em;
  22.     }
  23. }

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:

  1. Le consume demasiado tiempo y ha llegado a una situación de bloqueo
  2. Zend_Entity sólo tiene un desarrollador y por eso no tiene ni la mitad de características de Doctrine 2
  3. 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 »

Últimos cursos del año 2009

Por zsamer en Septiembre 24, 2009

Plazo para inscribirse hasta el Viernes 2 de Octubre.

Fecha de comienzo de cursos a distancia Lunes 5 de Octubre, Zend Framework y PHP5 OOP.

Si aún no estás registrado en SURFORCE, ingresa TUS DATOS REALES (incluyendo la foto) en http://registracion.surforce.com (los datos son privados y confidenciales, sin ellos, no voy a enviar datos de pago ni habilitar alumnos bajo seudónimos ni nombres fantasía).

Los cursos se dictarán a través de Moodle (sistema de educación a distancia) en la dirección http://formacion.surforce.com

Aún quedan algunos lugares en los cursos para llegar al tope máximo de 20 alumnos, así que quién envíe el pago inmediatamente obtiene el lugar disponible que aún no se ha pago.

PHP 5.3 el próximo 30 de Junio

Por zsamer en Junio 27, 2009

Una muy alentadora noticia de la larga espera de todos nosotros desarrolladores PHP5.

Finalmente la larga espera ya tiene un fin: los desarrolladores de PHP anunciaron en la lista de php.internals que postergaron el lanzamiento de la versión definitiva del anticipado PHP 5.3.0 hasta el Martes 30 de Junio, con sus Mirrors comenzando a actualizarse a partir de próximo Lunes.

Todavía se están agregando parches de último momento, como los que corrigen problemas con el driver nativo de MySQL, las funciones de fecha y la inicialización en sistemas Sparc. Todoas las demás correcciones de errores no-críticos se postergarán hasta la siguiente versión 5.3.1, todavía sin fecha de lanzamiento.

PHP 5.3.0 incluye importantísimas novedades, como por ejemplo: Namespaces (espacios de nombre), funciones anónimas (lambda y closures), driver nativo de MySQL, soporte mejorado para Windows, archivos Phar (similares a los JAR de Java) y hasta el polémico operador goto.

Fuente: VivaPHP

¡Semana próxima: Segundo Semestre de Cursos a Distancia!

Por zsamer en Junio 6, 2009

A partir del lunes próximo iniciamos el armado de grupos y cobro de las reservas para los cursos del segundo semestre del año:

Tentativamente la fecha de inicio es el primer lunes de Julio 2009, con los grupos que se hayan armando a partir de los usuarios que realizaron su pago. El cupo mínimo de alumnos será de 20 por grupo y se irá iniciando un grupo por semana, en caso de no llegar a los cupos mínimos, se posterga una semana.

El costo sigue siendo el mismo, un único pago de USD 50 por persona durante dos meses, y la forma de pago oficial es a través de Paypal y la alternativa a través de Western Union (solo si estás en Argentina podemos hacer una transferencia bancaria).

AVISO IMPORTANTE: para este nuevo período se abrirán menos grupos que en el primer período, principalmente por un tema de sobrecarga de trabajo que tuvimos en el primer semestre de este año, y que quiero evitar que nos atrasemos con algún grupo o que los docentes terminemos extremadamente cansados :-(

Si estás interesado, no pierdas un lugar a partir del próximo lunes, donde habilitaré el pago de los cursos y empezaré a armar los grupos que inician por semana.

Si aún no estás registrado en SURFORCE, ingresa TUS DATOS REALES (incluyendo la foto) en http://registracion.surforce.com (los datos son privados y confidenciales, sin ellos, no voy a enviar datos de pago ni habilitar alumnos bajo seudónimos ni nombres fantasía).

Los cursos se dictarán a través de Moodle (sistema de educación a distancia) en la dirección http://formacion.surforce.com

Saludos!

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 »

E-commerce con Zend Framework: Clase Cart

Por zsamer en Febrero 23, 2009

En el capitulo anterior "E-commerce con Zend Framework: Factoría" hablamos sobre el componente/clase Factoría que nos resolvía el problema de obtener el objeto persistente Cart (carro de compras) desde una sesión, implementado con Zend_Sesion, y todo este proceso implementando el conocido patrón de diseño Factory.

Hoy vamos a mostrar las clases Core_Store_Cart_Abstract y Core_Store_Cart_Abstract_StandardCart.
Lee el resto de este artículo »

E-commerce con Zend Framework: Factoría

Por zsamer en Febrero 9, 2009

En el capitulo anterior "E-commerce con Zend Framework: Introducción" como el nombre lo dice, hicimos una introducción al desarrollo y diseño de un sistema de E-commerce con Zend Framework y describimos cada uno de sus componentes y funciones dentro de la aplicación. En esta oportunidad vamos a ver la función de la clase de factoría: CartFactory.

Antes de entrar en lleno a nuestra clase factory, veamos en que consiste el patrón de diseño que la implementa. El patrón de diseño involucrado es el llamado Factory Method.

Bueno y ¿Qué es un patrón de diseño?

En la ingeniería de software, existe algo fundamental para el diseño y buenas practicas en la programación orientada a objetos "Los patrones de diseños". Estos se definen como la mejor solución a un problema recurrente y común en el desarrollo de software en un contexto determinado y van de la mano con su representación en diagramas UML.

En el patrón de diseño Factory Method está compuesta al menos por dos clases que son fundamentales, y estas son el creador y el producto.

El patrón de diseño Factory en simples palabras es una fabrica de objetos, nos crea el objeto que deseamos tener y lo retorna para su uso, toda la implementación se concentra en una clase, comúnmente llamada Factory (clase de factoría o fabrica), en otras palabras es una clase constructora de objetos de un determinado tipo.
Lee el resto de este artículo »

Next Page →