:::: MENÚ ::::

Quiero empezar a usar un Framwork ¿Por cuál empiezo?

frameworks

Si tienes la duda del título es porque ya sabes lo que es un #framework, pero para los despistados y que tengan curiosidad…

¿Qué es un #framework y para que sirven?

Si cogemos la palabra #framework y la desglosamos tenemos frame, que significa estructura, y work, que significa trabajo, o sea, una estructura de trabajo. En otras palabras una base con la que empezar a desarrollar nuestra página sin tener que preocuparnos en programar toda la parte esencial, como por ejemplo la conexión a la base de datos, el tratamiento de los formularios, la seguridad, o algunas funciones de ayuda para agilizar el desarrollo.

Los #frameworks actuales (menos #Symfony) trabajan con el #modelo #MVC, que es equivalente por sus iniciales a #Modelos, #Vista y #Controlador. De forma desglosada, el #Controlador “controla” absolutamente todo lo que pasa en la página y que es lo que tocaría hacer en cada momento. El #Modelo nos sirve para procesar los datos, por ejemplo, guardarlos en una base de datos o recuperarlos de un archivo txt. La #Vista como su nombre indica, es lo que vamos a ver, puede ser una página HTML u otro formato/archivo.

Para que te hagas una idea de para qué sirven estos tres elementos, vamos a poner un ejemplo.

Supongamos que tenemos un inicio de sesión en donde un visitante pone su usuario y contraseña y acede a su perfil en donde muestra su información (nombre, apellidos, dirección postal, etc.). Esto extrapolado al #framework significaría que tendríamos un #Controlador que gestionaría en todo momento el proceso de iniciar sesión, desde que el usuario llega a la página hasta que obtiene su perfil. El #Modelo será el encargado de ir a buscar el usuario y su información a la base de datos y pasársela al #Controlador para que él siga procesando la página y actuando en consecuencia a dichos datos. Dependiendo del caso, si el usuario existe o no, el #Controlador dirá que #vista (diseño/plantilla) será mejor cargar, o sea, si el perfil o de nuevo el formulario de inicio de sesión con un alerta de que el usuario no existe (por ejemplo).

¿Qué #Framework me recomiendas?

En realidad el #framework que eliges para hacer tu página web es indiferente. Para que no me coman los lobos, te explico. Hay algunos que ya vienen con ciertas funcionalidades de “fabrica” y otros en los que no, o que están más preparados para una mayor carga de proceso o información. Por ejemplo en un #framework recién salido del horno no tendrá la misma calidad que uno que ya lleva varios años funcionando y con una comunidad detrás. Depende del tipo de proyecto que vayas a hacer, será mejor elegir uno u otro.

Muy bonito, pero ¿¡Dime cuál!?

Si es el primer #framework con el que vas a jugar te recomiendo que uses #CodeIgniter ¿Porqué? Por que su curva de aprendizaje es realmente ínfima y enseguida vas a estar programando para él, además, te servirá de punto de partida para conocer correctamente el sistema de #MVC y es bastante benevolente con los errores que puedas hacer en tu primera página con un #framework.

Si ya tienes unas nociones medias de como usar un #framework, en ese caso, te recomiendo #Laravel. Su curva de aprendizaje es algo más elevada que #CodeIgniter pero, desde mi punto de vista, tiene más potencial que él, aunque se pueden realizar los mismos proyectos sin problemas.

Por último, si estás muy, muy preparado, te recomiendo #Symfony. Su curva de aprendizaje es realmente alta y complicada, no usa el sistema #MVC sino uno de peticiones y basado en #bundle (algo así como mini paquetes de código). El público en general lo aclama y grandes proyectos están hecho en él, por ejemplo Yahoo! Respuestas, pero como te comentaba, trabaja de forma muy distinta al resto de #frameworks y es realmente complejo entender su funcionamiento.

En pocas palabras:

Yo te recomiendo que empieces por #CodeIgniter, su aprendizaje es muy sencillo, aunque si también te apetece, puedes empezar a jugar con #Laravel desde un principio, aunque éste es un poquito más complejo. Finalmente si quieres sentirte el amo del universo y ser un pro de los #frameworks, empieza por #Symfony, pero te aconsejo que tengas unas nociones avanzadas de como funciona un #framework y #PHP, sino, acabarás abandonándolo por su complejidad a favor de los otros dos.

También ten presente que no es lo mismo hacer una página de frases para Facebook que una red social, aunque técnicamente puedes hacer estos dos proyectos con cualquiera de los tres, es recomendable mirar cual se ajusta más a tu nivel de conocimientos y cual te facilita más la vida a la hora de elaborarlos.

Share on Facebook0Tweet about this on TwitterShare on Google+1Share on LinkedIn1Share on Tumblr0Pin on Pinterest0Email this to someone

  • Guest

    Me parece muy atrevido decir que Symfony no usa el patrón MVC.

    • Ciertamente como sabrás, Symfony trabaja originalmente de forma bastante diferente al resto de frameworks y es más bien un sistema Requests/Responses, lógicamente tiene sus sistema de modelos y vistas, pero su funcionamiento, desde que recibe la petición hasta que muestra el resultado (view) es difiere del resto.

      • Pot

        Symfony es un framework HTTP por así decirlo, pero en cuanto usas la Standard Edition con Doctrine u otro ORM, estas haciendo uso 100 % del patrón MVC, estas conviertiendo una petición en una respuesta, sacando datos de un Modelo, ejecutando la lógica en un Controlador y pintando la respuesta en una Vista. Symfony tiene esa ventaja, es el framework más desacoplado y flexible que existe.

        Estoy de acuerdo con que la curva de aprendizaje es más compleja, también es un framework más maduro y completo.