¿Por qué usar un (zend) framework?

Estas preguntas me la han hecho muchas veces, así que es buen momento para compartirlas en el blog :-)
  • ¿Para qué sirve un framework?
  • ¿Por qué Zend Framework?
  • ¿Cuales son las ventajas de no hacer todo yo?
  • etc
La idea de los frameworks es que son "cajas de herramientas" que puedes aprovechar en tus desarrollos... la filosofía del desarrollo profesional debería ser "¿cómo harías para construir una casa con las manos y sin martillos? imposible, no terminaría nunca, debo usar herramientas..."

Por ejemplo, no tienes que crearte tu propia clase de persistencia para recuperar o guardar datos, lo cual incluye además de lo básico, muchas funcionalidades que te ahorran tiempo y hasta te dan mayor seguridad por controles internos que ya incorporan de fábrica.

Si le sumamos que el esquema de trabajo es MVC, ya te da una forma de organizar tus sistemas, donde colocar cada cosa, etc, que te permite estandarizar y ahorrar mucho tiempo.

Un ejemplo bastante común: tú quieres validar un email que recibes de un formulario, en vez de tener que implementar toda esa parte (y hacerlo bien) puedes hacer uso de clases existentes como Zend_Validate_EmailAddress()

$email = $this->getRequest()->getPost(' email', 'none@example.com');
$validator = new Zend_Validate_EmailAddress();

if (
$validator->isValid($email)) {
// email seems valid
} else {
// email seems invalid; Outputting the reasons
}


Listo, sigues adelante y programas el resto de lo importante de tu sistema, ya que lo que te importa es terminar el trabajo, entregar el sistema y cobrar al cliente.

De alguna forma, muy resumida, te "profesionaliza".

No sé si quedó claro el ejemplo ;-)

PD: se podría decir que lo importante no es si usas Zend Framework (más allá que yo lo use), creo que deberías por lo menos conocer alguno y estudiarlo en profundidad para sacarle provecho en el reuso de componentes y experiencia de la empresa o grupo que lo desarrolló. Siempre existirán ventajas, más si tu eres un equipo reducido de desarrolladores y el framework fue hecho por un equipo más grande y especializado en su diseño y desarrollo, no lo hicieron en su tiempo libre.

"Apóyate en hombros de gigantes"

13 comentarios:

shakka dijo...

Desde que aprendi a usar un framework(Code Igniter) me ha simplificado el trabajo enormemente, tomando en cuenta que cuando comence a programar con PHP, no sabia de la existencia de estos, e ignoraba lo que eran patrones de diseño.

..ahora estoy usando Zend con fines didacticos, pero considero que puedo aprender algo mas de este framework.

Willy dijo...

"R e p i t o"

Aquí le presentó un caso donde se tuvo que desarrollar (se encuentran estado Alfa) un framework con características (según los autores) excepcionales, con el cual están desarrollando un CMS de código abierto llamado Modx Revolution y el framework se llama xPDO.
Mi opinión no cuenta porque estoy aprendiendo, y por eso me interesa mucho la opinión de ustedes y creo que les puede aportar algo a este debate.
Aquí les dejo el link de las características de xPDO y navegando por la misma página encontrará características de Modx Revolution sólo disponible en inglés.
http://svn.modxcms.com/docs/display/XPDO10/Home
¿Agradezco cualquier consejo?

GeL/T0 dijo...

Enrique, no seré yo el que te contradiga con el uso de frameworks (ya sean propios, de otros o sobretodo ZF), que yo soy el primero que estoy aprendiendo ZF, desarrollando mis propias librerías y aprendiendo todo lo raro de PHP a la vez, jeje.

Pero si te voy ha hacer buscar un ejemplo algo más complicado... Que ya te digo que es mucho más fácil hacer algo del estilo

if (filter_var($value, FILTER_VALIDATE_EMAIL) )
{
}else{
}

Ale, busca algo más complicado, que se que puedes xD

Un saludo!

Josepzin dijo...

GeL/T0, no conocía esa forma de validar un email, ¡que simple!

GeL/T0 dijo...

Simple y potente!

Desde que leí (y descubrí) por aquí las SPL, no veas la de cosas que me ha dado por investigar... Y es que PHP5 ha introducido muuuuuuchas cosas ;-)

Enrique Place dijo...

Que tal estimados "todos", respondo a todos los comentarios ;-)

@shakka

No te olvides de los cursos que impartimos con Andrés sobre Zend Framework ;-)

@Guillerf10

Es imposible conocer y probar todos los frameworks (además, surje uno nuevo cada semana), así que en lo personal opté por Zend y trato de invertir el tiempo en él y no en buscar o comparar con otro (actualmente es la herramienta que me sirve, si mañana no me sirviera, cambiaría por otra).

@GeL/T0

Estimado, como siempre bienvenidas todas las críticas ;-)

En primera instancia, la idea del artículo es abordar "conceptos", ver las "razones generales", en sí no era un artículo detallando alguna funcionalidad en profundidad. Estoy de acuerdo que el ejemplo es sencillo, tal vez podría haberlo complicado un poco más, pero le presté más atención al sentido general y no tanto la forma.

De todas formas, si revisas la documentación o el código fuente del validador de Zend verás que es mucho más completo que usar solo la constante que haces referencia. No olvides que Zend como empresa es también desarrolladora de PHP como lenguaje y ellos no harían un validador si se puede hacer directamente con una función del lenguaje. ;-)

Igual tomo apunte a tus comentarios y prometo hacer un artículo "más técnico" del tema ;-)

@José Zanni

Revisa la documentación de los validadores y verás todo lo que hay para aprovechar (o directamente el código fuente dentro de la librería Zend).

Zend_Validate

Saludos a todos y gracias por los aportes! ;-)

Enrique Place dijo...

Luego de confirmar el comentario me olvidé unos detalles

Error: surje -> surge

Anexo: con respecto al validador de email, me faltó decir que en sí la esencia técnica es la aplicación de validadores y una serie de validadores pre-existentes para todo tipo de necesidades, no solo por el tema del email (tomé el primero que me pareció más claro y fácil de interpretar).

Nuevamente, prometo igual tratar el tema técnico con más profundidad ;-)

Unknown dijo...

Hola Enrique, yo estuve aprendiendo ZF, despues lo dejé y en estos dias empece a verlo otra vez, hace un tiempo lei un articulo, en el decía que para sitios pequeños y medianos es mejor seguir utilizando PHP de manera tradicional y dejar ZF para sitios de gran porte, no se si compartis esa idea, y de ser asi cual seria la linea divisoria entre un sitio hecho de forma tradicional y otro hecho en ZF.

GeL/T0 dijo...

@fernandozunni,

Bueno fernando, intentaré contestarte yo.

Elegir la opción a seguir es simple, lo difícil a día de hoy es conocer bien ZF, entre otras cosas porque crece a pasos agigantados. Pero una vez que lo conoces, lo que te recomiendo es que lo uses siempre para todo.

Puede ser ZF como CackePHP o tus propias librerías - incluso Drupal -, pero vamos, lo suyo es acostumbrarte a usar una forma de trabajo y seguirla siempre que puedas.

La razón de no usarlo para sitios pequeños tiene varios fallos para cada razonamiento:

1º - Consume demasiados recursos (memoria, ancho de banda...): Bueno, si el site no es muy grande, tampoco necesitará esos recursos. Y si llegase a necesitarlos ZF puede ayudarte a cachear y agilizar. Un código simplón no.

2º - Muchas clases para tan poco código: Bueno, es tu forma de trabajar, después de 5 proyectos te prometo que no verás tantas clases sino la forma normal de hacer las cosas.

3º - Poco uso de los recursos de ZF: ZF ocupa 40 megas aprox. Creo que cualquier Hosting tiene mucho más espacio y ten en cuenta que clase que no necesitas clase que no usas. Así que no te preocupe usar solo un 10% de sus recursos.

Y sobretodo tiene un beneficio. Imagínate que el día de mañana esa persona que hoy te ha pedido algo simplón quiere una intranet que contacte con google y le haga la cena a microsoft sin dejar de lado todo lo que ya hay. Bueno, pues si usas unas buenas librerías podrás, si te limitaste a hacer un código simplón... Ale a rehacerlo todo!!! :-s

Buena chapa he soltado :-p

dafevi dijo...

Zend Framework, si pero para utilizarlo como lo que es, un framwork para trabajar con PHP.
Cuado el framework se mete en la vista (zendx_jquery, Zend_Form) ahi ya pasa a ser otra cosa.
Soy de los tantos que estuvo dias tratando de hacer un formulario presentable y decente con zend_form (y al final desisti por supuesto).
Hacer un formulario sin indeseables espacios es toda una odisea.
Yo lo utilizo, pero la vista la sigo haciendo como siempre.

Mr. Investigador Senior dijo...

Yo estoy tratando de aprender a manjar Zend Framework con el Ide de Zend "Zend Studio", aun me falta mucho pero siempre leo tu blog para estar al dia en la informacion, proximamente tratare de inscribirme en tus cursos, si me podrias recomendar alguna documentacion de zend para comenzar en español te lo agradeceria saludos :)



____________
http://www.interfono.pe

BWFOREVER dijo...

quisiera saber para alguien que esta aprendiendo a programar en php... es beneficioso usar el framework desde el principio? o usar la forma tradicional para tener claro los conceptos?

Enrique Place dijo...

Cómo estás? ;-)

Justamente, como dices, dependen el contexto, si estás aprendiendo, puedes hacerlo de las dos formas, encararndo un proyecto de cero (pero con fundamentos, base teórica, prueba y error es una pérdida de tiempo), ó, iniciar con un framework de "bajo nivel" como Zend que te permite usar objetos y aprender cómo trabajar con ellos con una estructura que te apoya y te acompaña.

Si es de "muy alto nivel", te esconderá demasiada información y tal vez no te sirva.

Nuevamente, luego fuera de aprender, lo ideal es sí tener un framework, el que sea, para ser más productivos que trabajando de cero.

Saludos! ;-)

Entradas populares