1. Code
  2. PHP
  3. Laravel

Introducción a Laravel

Trabajar con PHP durante los últimos 10 años más o menos me ha llevado a través de un buen paseo. Comenzando con errores novatos como no ser capaz de encontrar un punto y coma para tratar de construir mi propio framework para la construcción de sitios (no lo hagas), finalmente llegué a algo grande cuando aprendí PHP orientado a objetos.
Scroll to top
10 min read

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Trabajar con PHP durante los últimos 10 años más o menos me ha llevado a través de un buen paseo. Comenzando con errores novatos como no ser capaz de encontrar un punto y coma para tratar de construir mi propio framework para la construcción de sitios (no lo hagas), finalmente llegué a algo grande cuando aprendí PHP orientado a objetos.

Casi todos los sistemas de CMS lo utilizan, incluyendo Joomla, Drupal y WordPress, y por supuesto muchos marcos como CakePHP lo utilizan también. Llegué a Laravel a principios de 2014 y me enganché al instante. ¡No sólo usa OOP, sino que lo requiere! Tengo que admitir, este fue un reto, pero aprendí mucho gracias a él, y ha hecho que el código que escribo para otros sistemas mucho mejor!

En este artículo te mostraré cómo empezar con Laravel instalando todo lo necesario para ejecutar el sistema, mostrándote cómo usar Laravel Homestead—una gran máquina virtual—y, finalmente, cómo instalar Laravel en sí.

Puede parecer algo dificil, pero yo quería asegurarse de que todo el mundo puede instalarlo, ya sea en Windows, Linux o Mac, e incluso si tienen pocos de los requisitos previos. No te preocupes, sólo necesitas hacer la mayoría de estas cosas una vez, e incluso si tienes que hacerlo de nuevo, será mucho más simple la próxima vez.

¿Qué es Laravel?

Laravel es un framework PHP creado por Taylor Otwell como una propuesta más avanzada en el framework CodeIgniter. La primera beta fue lanzada a mediados de 2009. A partir de junio de 2015, Laravel está en la versión 5.1, que es la primera versión para recibir LTS (Long Term Support), poniendo a Laravel en la mezcla al buscar una plataforma viable para trabajo a gran escala.

Laravel está diseñado para ayudarle a trabajar de manera estandarizada, elegante y rápida. Esto se logra a través de directrices estrictas y sistemas de terceros.

Normalización

Laravel tiene una estricta estructura Modelo-Vista-Controlador (MVC) y una forma natural de trabajar con el código orientado a objetos. Estas dos características casi obligan a una cierta manera de escribir código en los desarrolladores—lo cual es una buena cosa.

En cuanto al estilo y la metodología, las aplicaciones de Laravel serán similares, por lo que otros desarrolladores pueden entrar y trabajar con una mentalidad instantáneamente familiar.

Elegancia

La elegancia de Laravel se deriva de la misma naturaleza OOP y la mentalidad MVC y la metodología de enrutamiento utilizada. Algunas características simples del motor como un todo conspiran para hacer que usted escriba el código que es visualmente agradable, organizado, y  auto-documentado como mas se es posible.

La auto-documentación es un maravilloso subproducto del código orientado a objetos bien escrito. Puede lograr frases casi legibles mediante el nombre de sus clases, funciones y variables correctamente, sumando código altamente navegable.

Más importante aún, todo esto se traduce en código predecible y comprobable que produce resultados consistentes y fáciles de prever cada vez.

Velocidad

La velocidad a la que se puede construir una aplicación es sorprendente. Si usted es nuevo en OOP, Composer y el uso del terminal, esto puede no ser evidente al principio, pero una vez que usted consigue aprender como funcionan, se sorprenderá de lo que puede lograr.

Laravel está configurado para funcionar bien con paquetes de terceros de Composer, lo que significa que agregar soporte completo para la API de Facebook, o la API de MailChimp, registradores, perfiles y otras herramientas toma algunas pulsaciones de tecla, no minutos u horas.

Instalación de Laravel

Puede instalar Laravel en la mayoría de los servidores, o crear su propio uso de una máquina virtual. Los requisitos básicos son:

  • PHP >= 5.5.9
  • Extension PHP OpenSSL 
  • Extension PHP PDO
  • Extension PHP MBString
  • Extension PHP

Estoy usando Laravel Homestead para ejecutar Laravel localmente. Homestead es una caja de Vagrant que puedes instalar forma gratuita. El enlace anterior tiene instrucciones completas de instalación si las necesita, pero describiré los pasos principales a continuación.

Además de un servidor, necesitará tener instalado Composer, que es un gestor de paquetes. Laravel lo usa para descargar cualquier código de terceros que necesite.

Aunque git no es estrictamente necesario, hará su vida mucho más fácil. Git es un sistema de control de versiones, y mucha gente lo usa para sus proyectos, alojándolos en GitHub. Para poder utilizar git eficazmente, necesitará el comando git, que instalaremos a continuación.

1. Instalar Composer

Composer se puede instalar localmente o globalmente. Prefiero la opción global porque hace mi vida mucho más fácil, así que eso es lo que te mostraré aquí. Para obtener información más detallada e instrucciones para diferentes sistemas operativos y configuraciones, eche un vistazo a la Guía de introducción.

Los usuarios de Linux y OSX deben primero asegurarse de que el directorio /usr existe y, si no, crearlo. A continuación, ejecute el siguiente comando:

1
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Los usuarios de Windows pueden utilizar el instalador desde la Guía de introducción. Si desea poder ejecutar el comando composer desde cualquier lugar, debe colocarlo en su PATH.

Para colocar una carpeta en su PATH, siga estas instrucciones de WindowsITPro.

2. Instalar Git

Por suerte, git es super-simple de instalar, así que echa un vistazo a la guía de introducción para obtener instrucciones detalladas.

En Linux, es muy probable que pueda instalarlo con el siguiente comando simple.

1
sudo yum install git-all

En OSX, la forma más fácil de obtener soporte git es instalar las herramientas de línea de comandos de Xcode, o ir a la página de descarga de Git y tomar la última versión.

Para Windows, dirígete a la página de descarga de Git y ejecute el instalador más reciente.

3. Instale VirtualBox y Vagrant

Lo primero que necesitará es VirtualBox y Vagrant. Ambos son archivos sencillos, instalables, por lo que sólo tienes que agarrarlos, instalarlos y ya está.

4. Descargue

Contiene el sistema operativo y otro software que necesitará para ejecutar un servidor local y Laravel. Puede descargarla con un solo comando en su terminal.

1
vagrant box add laravel/homestead

Puede tomar un tiempo para la caja de descarga, así que no dude en tomar un café en este momento.

5. Instale la Homestead CLI

Para instalar la interfaz de línea de comandos de Homestead, necesitará clonar un repositorio git. Dado que ahora tenemos git instalado, podemos usar un solo comando. Ejecute lo siguiente en una carpeta donde desee conservar todos sus proyectos de Laravel.

1
git clone https://github.com/laravel/homestead.git Homestead

Trabajo en OSX y tengo una carpeta dentro de mi carpeta de usuario principal del usuario nombrada "websites". Dentro de esa carpeta tengo una carpeta "wordpress", que contiene proyectos de WordPress que se ejecutan desde una Vagrant diferente. Ejecuté el comando anterior desde dentro de la carpeta "websites". Esto creó una carpeta "Homestead" allí, y todos mis proyectos Laravel serán colocados dentro.

Si desea estar con lo ultimo de lo ultimo de PHP, puede instalar la versión de PHP 7 de Homestead en su lugar. Utilice el siguiente comando:

1
git clone -b php-7 https://github.com/laravel/homestead.git Homestead

Para iniciar Homestead, ejecute bash init.sh desde dentro de la carpeta Homestead, que creará los archivos apropiados en el directorio ~ / .homestead dentro de su directorio home.

6. Configure Homestead

Lo primero que tendremos que hacer es crear una clave SSH y agregar la ruta al archivo Homestead.yaml. Para crear una clave SSH en Linux u OSX, utilice el siguiente comando:

1
ssh-keygen -t rsa -C "yourname@homestead"

En Windows, la manera más fácil de crear esto es usar la herramienta Git Bash. Esto es similar al terminal o la línea de comandos, pero tiene algunos añadidos impresionantes. Cambiela haciendo clic con el botón derecho del ratón en el escritorio y haciendo clic en Git Bash.

El siguiente paso es modificar el archivo ~/.homestead/Homestead.yaml. Ahora en realidad no hay mucho que tengamos que hacer porque ya debería estar configurado casi perfectamente. Si lo abre, debería ver por qué:

  • El proveedor ya está configurado en virtualbox, que es lo que estamos usando.
  • La opción autorizar se establece en ~/.ssh/id_rsa.pub, que debería estar donde se guardó la clave SSH. Eche un vistazo a los mensajes recibidos cuando generó su clave SSH, y debería ver la ruta allí.
  • El IP se establece en 192.168.10.10. Puede cambiarlo si lo desea, pero estaremos trabajando con esta.

De hecho, todo lo que haremos es modificar la sección de sitios y establecer la carpeta compartida. Funcionaría muy bien como viene por defecto, pero estaremos ejecutando una serie de proyectos, por lo que es mejor si ya saben cómo crearlos. Vamos a crear dos sitios de prueba, un blog y una webshop, que queremos llegar a través de http://blog.dev y http: //store.local respectivamente.

Asegúrese de que su definición de sitios en el archivo se ve así:

1
sites:
2
    - map: store.local
3
      to: /home/vagrant/Code/store/public
4
    - map: blog.dev
5
      to: /home/vagrant/Code/blog/public

El último paso aquí es agregar los dominios al archivo de hosts en su computadora. En Linux y OS X, este archivo se encuentra en /etc/hosts, y en Windows está en C:\Windows\System32\drivers\etc\hosts. Necesita agregar dos líneas a este archivo:

1
192.168.10.10  store.local
2
192.168.19.10  blog.dev

Por último, para establecer las carpetas compartidas entre la máquina virtual y su máquina local, consulte la sección de carpetas. Lo he configurado así:

1
folders:
2
    - map: ~/websites/Homestead/Code
3
      to: /home/vagrant/Code

7. Ejecutando Vagrant

¡Esto será bastante corto! Ve a la carpeta Homestead y ejecuta vagrant up. La primera vez que haces esto puede tomar un tiempo, pero los lanzamientos posteriores serán extremadamente rápidos. La primera vez de un sistema operativo es esencialmente instalado y configurado, y la próxima vez que sólo tiene que ser encendido.

Si has hecho todo correctamente, deberías poder visitar http: //store.local y recibir el mensaje "No input file specified". Esto está bien, sólo significa que nuestra carpeta está vacía. Si usted entra en su ~/websites/Homestead/Code carpeta de código y crear la store/public y un index.php en ella con algún contenido, se ejecutara bien. ¡En esta etapa usted puede comenzar a construir su sitio web allí!

Fundamentos de Homestead

Todo lo que acaba de hacer necesita ser hecho sólo una vez, excepto para escribir vagrant up para iniciar el servidor. No se preocupe si la creación de una instancia Homestead no está en su sangre todavía, porque por ahora sólo necesita saber cómo usarla.

Cada vez que detenga su servidor utilizando la parada vagrant halt o apague su computadora, necesitará usar el comando vagrant up para iniciar el servidor. Hay algunas cosas que usted querrá/necesita hacer, así que vamos a ver algunas de las tareas del día a día.

Para algunas configuraciones más avanzadas necesitará SSH en la máquina virtual. Puede hacerlo navegando al directorio Homestead en su terminal y escribiendo vagrant ssh. Esto le llevará a la máquina y puede configurar las cosas ahi si es necesario.

Puede conectarse a bases de datos utilizando el nombre de usuario homestead y la contraseña secret. Si está en la terminal, puede usar el comando mysql -u homestead -p y proporcionar su contraseña para obtener acceso a la línea de comandos.

Si utiliza una aplicación como Sequel Pro, debe utilizar 127.0.0.1 como host, su nombre de usuario y contraseña y 33060 como el puerto.

Instalación de Laravel

Nuestra primera tarea es descargar el instalador de Laravel. Emita el siguiente comando en el terminal:

1
composer global require "laravel/installer"

Ahora debería ser capaz de escribir laravel en la línea de comandos para acceder a un montón de grandes opciones para trabajar con Laravel. Si no parece funcionar, necesitará colocar el directorio ~/.composer/vendor/bin en su PATH. Para ello, tendrá que abrir su archivo ~/.bashrs o ~/.bash_profile— el cual depende de su configuración. Una vez allí, añada la siguiente línea al archivo:

1
echo 'export PATH="$PATH:~/.composer/vendor/bin"' >> ~/.bashrc

Para ver si funcionó, escriba source ~/.bashrc, o cierre y vuelva a abrir la ventana de terminal y trate de escribir laravel de nuevo. Si es usuario de Windows, deberá seguir las instrucciones aquí.

¿Recuerda la carpeta de store que creamos y que contiene el código de nuestra próxima tienda? Volví, borré esa carpeta y usé el terminal para navegar a la carpeta principal ~/websites/Homestead/Code. Mientras que allí escribi laravel new store y apenas ejecute eso, un proyecto de Laravel fue creado para mí. Visitar http://store.local Ahora veo esto:

Laravel InstalledLaravel InstalledLaravel Installed

Los próximos pasos

En los próximos artículos sobre Laravel, te mostraré cómo empezar a construir algo como principiante. Laravel se basa fuertemente entorno a PHP orientado a objetos, por lo que le recomiendo echar un vistazo a la excelente OOP para principiantes artículo de Jason Lengstorf. Te explicaré todo lo que pueda, pero si te familiarizas primero con los conceptos de ese artículo, todo saldrá mejor.