Laravel, instalación del hermano pequeño de Symfony

Y seguimos con el tema de los frameworks, ya hemos dejado a un lado la pelea entre si debemos usar un framework para el desarrollo o por el contrario tenemos que implementar todo el core de la aplicación desde cero. En el artículo anterior “¿Eres un Chuck Norris o un mariquita?” daba mi opinión sobre que es mejor y sobre cuales son las ventajas a la hora de trabajar de una manera o de otra.

Hoy quiero presentar una nueva herramienta, el framework Laravel que siempre fue considerado como el hermano pequeño de Symfony se presenta ahora como una opción muy discutible gracias a la salida de su versión 4.

Laravel, otro actor más en el escenario

Y es que las diferencias que separan un framework de otro no son para nada abismales, todos se basan en los mismos conceptos de siempre (URL Friendly, Routing, Vistas, MVC, POO…) son las maneras de trabajar de uno u otro las que te van a posicionar en un lado o en otro. La clave de todo este asunto son las ventajas que puede aportarte Laravel a la hora de desarrollar un proyecto y es que para ser sinceros, Laravel es increíblemente flexible. Al igual que Symfony u otros frameworks, Laravel incluye su ORM integrado, Eloquent ORM, que incluye un sintaxis muy fácil de utilizar. Uno de los aspectos que me ha gustado mucho y que otros frameworks no tienen, Laravel integra Migrations, que no es otra cosa mas que un gestor de versiones de tu base de datos.

 

Instalación, la primera frontera

Para tener Laravel en tu equipo es necesario que tengas instalado Composer ya que toda la creación del proyecto se va a realizar a través de este gestor de dependencias. El primer paso es que nos descarguemos el archivo composer.phar que es el fichero que se encargará de manejar todas estas dependencias. Por si alguien no lo sabe, los ficheros con extension phar no es otra que una aplicación PHP comprimida, como podrían ser los jar de Java.

$ curl -sS https://getcomposer.org/installer | /Applications/XAMPP/xamppfiles/bin/php-5.4.16
$ sudo mv composer.phat /usr/local/bin/composer

Para comprobar que la instalación de Laravel se ha realizado de manera correcta tan solo tienes que escribir en la consola lo siguiente:

$ composer

Ya tenemos el primer paso superado, ahora vamos a por el framework. Con el siguiente comando lo que se va a hacer es descargarnos una copia completa de Laravel en nuestro equipo, para ello, o vamos directamente al directorio que utiliza nuestro servidor (/var/www) y ejecutamos lo siguiente:

$ composer create-project laravel/laravel Sum0905_cafeteria --prefer-dist

Como opinión personal he de decir que no me gusta nada este método de trabajar, yo soy más de tener mi carpeta “Proyectos” en mi directorio $HOME e ir montando ahí los diferentes proyectos y después realizar el despliegue a la carpeta del servidor local utilizando Phing o Ant, tal y como explico en este artículo, aunque aquí cada uno es libre de opinar.
Tal y como he dicho, mediante este comando se te descargará una copia de Laravel en tu equipo directamente desde los repositorios de Composer con todas las dependencias actualizas y listas para ponerte ya a desarrollar. En el comando, “Sum0905_cafeteria” es el nombre del proyecto, yo a todos mis proyectos les pongo la misma nomenclartura, aunque esta claro que tu puedes poner lo que te de la gana.
Cuando acabe la instalación de todas las dependencias, ya tendrás listo Laravel para probarlo. Para esto tenemos que abrir cualquier navegador y acceder a la dirección “localhost/Sum0905_cafeteria/public”, si ves el logo de Laravel es que todo ha ido bien.

Si te aparece un error de ErrorException file_put_contents() has de darle permisos de escritura a la carpeta /app/storage con el comando sudo chmod -R 777 storage

Me gustaría iniciar una serie de tutoriales de Laravel con la creación de un proyecto desde cero pero todo depende de si os interesa o me meto en otros fregaos, todo dependerá de los comentarios y visitas.
Así que ya sabéis, si queréis que haga un minicurso de Laravel decídmelo en los comentarios o a través de los botoncicos sociales y me pongo manos a la obra.

¡Hasta que volvamos a olernos!

 

Framework vs Flat Code

¿Utilizar un framework para tus proyectos o hacer la de Juan Palomo? ¿Eres un Chuck Norris de la programación por empezar desde cero, o un mariquita por tirar de frameworks? Este post va dirigido a todos aquellos que como yo, pensaban que eran “peores” programadores por tener que recurrir a utilizar un framework para sus proyectos. Sigue leyendo y date cuenta que no, que no eres un mariquita ni “peor” desarrollador.

¿Qué es un framework?

Un framework es una herramienta que por lo general te hará la vida mucho mas fácil a la hora de empezar un proyecto nuevo pero que en ocasiones te puede dar muchísimos dolores de cabeza, sobretodo cuando estas empezando y aun no tienes ni idea de como funcionan todos sus entresijos. La definición formal de framework la he sacado del blog de Kabytes.

Un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, con base a la cual otro proyecto de software puede ser más fácilmente organizado y desarrollado.

Así pues hay frameworks para casi todos los lenguajes (existe algún framework para bash? xD) pero de todos ellos lo que pretenden aportar es una capa de abstracción que nos libere de programar ciertas tareas que se alejan de lo que es la lógica de negocio de nuestra aplicación. ¿Para que programar un método de envío de emails si con un framework ya existe? Por ejemplo…

 

Venga, convénceme

Lo sé, estoy enamorado de Symfony2 y parece que estoy haciendo una campaña de evangelización, pero al fin y al cabo, la última decisión es tuya. Lo que si que esta claro y hay que decir es que utilizar un framework no hace que ya seas un Master of the Universe del lenguaje “original”, cuando conoces el lenguaje “base”, llevas años programando con el y das el salto a un framework, ahí, si si, ahí es cuando eres un Chuck Norris. Ahora bien, ventajas de un framework (tomaremos como ejemplo Symfony2…)

  • POO, toma ya.
  • MVC, boom.
  • ORM, ultraboooom.
  • Sistema de caché.
  • Ficheros de configuración.
  • Generación del CRUD automática.
  • Muchísima documentación.
  • Sistema de enrutamiento.
  • Integración con el framework correspondiente de test unitarios y funcionales.

Y la lista podría seguir…

 

Pero, ¿programar desde cero no tiene ninguna ventaja?

Hombre, pues si, las tiene todas ya que como he dicho más arriba, te da un conocimiento del lenguaje brutal a parte de tener control sobre todo tu código (este es otro de los argumentos típicos para no utilizar un framework). Todo depende del proyecto y es que hay que pensar con lógica, los frameworks cargan una estructura de librerías que a diferencia del “Flat code” no. Ahí te estas asegurando de cargar lo único que vas a utilizar, por eso hay que tenerlo en cuenta en función del proyecto.

 

Conclusiones

En varios proyectos que estoy llevando tiro de framework sobre todo porque trabajo mucho mas rapido y por que los requerimientos lo exigen, pero mi consejo es que te empapes bien del lenguaje porque solo así sabrás solucionar mucho más rápido los errores que te van a dar los frameworks. Si queréis leer el artículo del que se basa este no dudéis en pasaros por el blog de Kabytes ya que ahí amplía mucho mas la info.

Si te ha sido útil este post no dudes en comentar y en darle a los botoncicos sociales ya que eso hará que el blog siga creciendo 😀

 

¡Hasta que volvamos a olernos!

Phing, automatizar tareas, instalación y ejemplo de despliegue en local

La primera vez que conocí un automatizador de tareas fue con Ant para Java, desde el primer momento me quede maravillado del poder de esta herramienta, desde poder crear y borrar carpetas o ficheros hasta desplegar todo un proyecto entero mediante ssh y tan solo haciendo click. La verdad es que es muy útil para olvidarte de tener que hacer ciertas tareas repetitivas.
Despues de unos años trabajando con Java y con Ant, volví al mundo de PHP. Tenía que empezar un proyecto con Symfony y obviamente queria poder tener la posibilidad de hacer todo lo que hacia con Ant, así que me puse a investigar y descubrí que existe una herramienta para automatizar tareas en PHP y aquí es donde entra Phing, que no es otra cosa que un port de Ant.
Tal y como aparece en su documentación oficial:

PHing Is Not GNU make; it’s a PHP project build system or build tool based on ​Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP “task” classes make it an easy-to-use and highly flexible build framework.

Con Phing, al igual que con Ant, se define un fichero XML en el que se especifican las diferentes tareas que queremos automatizar, como he dicho, estas tareas pueden ir desde la creación de directorios, dar permisos, despliegues de proyectos o la ejecución de test unitarios.

Sigue leyendo