Tupale

El mejor Framework PHP para comenzar

Si, ya lo se, se que llevo mucho tiempo sin escribir pero dentro de poco ese tiempo sera recompensado a ustedes los usuarios ya que durante los pasados meses no estuve simplemente olvidado de la comunidad Tupale, sino que me encontraba trabajando en un proyecto que a muchos les gustara, pero de eso hablare en entradas próximas.

Hoy quiero abordar un tema que me tiene un poco excitado,  estresado y mayormente confundido, se trata de los frameworks, es algo con lo que hasta ahora estoy empezando a trabajar y debo decir que es un gran paso en la vida de todo desarrollador, primero porque el cambio de paradigma frente a la programación estructurada y segundo porque la capacidad de trabajar en proyectos y equipos mas grandes se potencializa.

Para comenzar y para los que no entiendan un Framework o marco de trabajo es un grupo de librerías y funciones y procesos preestablecidos que trabajan bajo unas convenciones especiales para ayudar en el desarrollo, es decir es un montón de código que solo se puede programar de una forma y te da resultados en aplicaciones, una de las cosas importantes es esto de las convenciones ya que es algo a los nuevos programadores les debe parecer extraño, las convenciones son reglas que crea el framework con respecto al nombre de los ficheros, carpetas, clases, métodos, variables, funciones, etc, esto con el fin de que el framework tenga un entendimiento mas semántico de lo que estas haciendo y te pueda ayudar a facilitar el trabajo, y ademas, al manejar estas convenciones haces que tu mecánica de desarrollo sea estándar lo que permite que otra persona pueda entender tu código y viceversa para trabajar en equipo mas fácilmente.

Los framworks también se caracterizan por utilizar MVC que significa  (Modelo, Vista y Controlador) esto no es mas que separar tu aplicación en esos tres departamentos para mantener mayor organización y eficiencia. En este caso el Modelo hace referencia al tratado de bases de datos, nuestras tablas y filas, el modelo se encarga de todo lo que tenga que ver con mysql o la base de datos que escojas. La vista es el diseño la parte que mostrara algo al cliente o que enviara algo al navegador. Y por ultimo el controlador es el que se encarga de la lógica del negocio, de que hace la aplicación de este modo el controlador puede acceder a los modelos y a las vistas para traer datos de la base de datos e imprimirlos en pantalla respectivamente.

Es importante que antes de empezar a trabajar frameworks estudies algo de programación orientada a objetos POO y así no cometes los errores que yo si cometí.

Ahora que ya hemos dado una introducción sobre la naturaleza de los Frameworks le voy a dar mi opinión sobre cual seria el mejor para comenzar y las razones de porque hacerlo. Para esto simplemente voy a comparar 3 populares y muy utilizados Frameworks de PHP.

Symfony

Para comenzar vamos con Symfony, es uno de los mas populares y probablemente de los mas robustos, realice algunas instalaciones y revise algunas cosas para ver en general como se comportaba y si definitivamente es muy robusto pero trabajar con el requiere una dedicación absoluta a estudiarlo y aprenderlo, su curva de aprendizaje es larga y lenta, uno de los mayores “inconvenientes”  es que para utilizarlo deberás manejar un par de cosas que no eran muy comunes en la programación estructurada, para comenzar tendrás que aprender a usar symfony y php por linea de comando, es raro pero hay que hacerlo, aunque se pueden descargar los vendors para no usar tanto la linea de comando es caso obligatorio usarla, y esto no es fácil para todo el mundo. Tambien tendras que aprender a utilizar el lenguaje YAML ya que algunas cosas se hacen con el, y ademas utilizar el ORM Doctrine que viene por default en Symfony. Como puedes ver para comenzar con Symfony que muchos consideran uno de los mejores Frameworks de PHP debes estudiar muchísimo para estar a la altura.
http://www.symfony-project.org/

CodeIgniter

Ahora hablemos de Codeigniter, este es el framework que muchos recomiendan para comenzar a trabajar con frameworks de php por su facilidad su sencillez y su potencia, aunque también tiene algunos “problemas” sus convenciones no son tan radicales, esto quiere decir que por un lado sera mas fácil programar ya que eres mas libre de usar tus propias convenciones, pero por otra parte tendremos problemas para entender el código de otros, lo mismo que usando programación estructurada. Este también lo probé e hice algunas pruebas y me pareció interesante por los helpers que incluye y como dije es el mas fácil de aprender a usar. De hecho http://tupale.net esta hecho en Codeigniter.
http://codeigniter.com/

CakePHP

Y por ultimo quiero hablarles de CakePHP, lo mejor para el final, es el framework en el que estoy trabajando actualmente y me resulta muy interesante, es muy muy robusto al igual que Synfony pero requiere menos tecnicismos para trabajarlos, el uso de la linea de comando es opcional al igual que el manejo de ORMs o lenguaje YAML, los helpers que incluye son muy buenos y las convenciones muy exigentes en la medida que te hace un manejo muy bueno de MVC con lo cual te acostumbras a muchas buenas costumbres de desarrollo. Sin duda es el que recomiendo tanto a novatos como a expertos.
http://cakephp.org/

4 comments for “El mejor Framework PHP para comenzar

  1. 25 enero, 2013 at 6:44 PM

    La verdad empece a usar Symfony pero realmente es muy extenso llevo casi mas de 1 mes y realmente es muy extenso, por lo cual me decidí trabajar ahora con CodeIgniter a ver que tal

    Excelente Blog

    Saludos….

    • 26 enero, 2013 at 1:07 PM

      Gracias por tu comentario, yo he tenido varios problemas implementando Symfony y por eso decidi usar Cake-PHP…

  2. Meickol
    16 febrero, 2013 at 2:08 AM

    y que pasa con Zend Framework 2 ? http://framework.zend.com/

    • 16 febrero, 2013 at 4:42 PM

      Tienes razón y también me falto mencionar Yii Framework que también es muy bueno, quizás lo hice mas pensando en la popularidad de los frameworks.

Deja un comentario

A %d blogueros les gusta esto: