La Ravel

Duilio Palacios Introducción a Laravel Laravel es uno de los frameworks más fáciles de aprender para PHP, yo diría que

Views 113 Downloads 7 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • ajyl
Citation preview

Duilio Palacios

Introducción a Laravel Laravel es uno de los frameworks más fáciles de aprender para PHP, yo diría que tan fácil como Codeigniter. Sin embargo en Laravel, fácil no quiere decir simple. Este potente framework combina los features más modernos de PHP para brindarnos una interfaz elegante y hasta divertida de usar: ¿Quieren una ruta? Código: // En app/routes.php: Route::get(‘welcome’, function() { return “Bienvenidos a Laravel”; });

¿Ahora quieren usar vistas con HTML? Código:



Hacer vistas en Laravel es muy sencillo

@yield(‘content’)

Cuando usemos nuestra vista "welcome", Laravel cargará automáticamente la vista layout por nosotros, y reemplazará en la plantilla layout la línea @yield('content') por todo el HTML que hayamos escrito en la plantilla welcome entre @section('content') y stop, quedando el resultado así: Código:

Hacer vistas en Laravel es muy sencillo



Bienvenidos a Laravel

De esta forma tendremos 1 solo layout que usaremos en todas nuestras vistas, evitando repetir el código. Ahora usar nuestras vistas es tan fácil como esto: Código: Route::get(‘welcome’, function() { return View::make(‘welcome’); });

Y así en adelante ¿Quieren hacer una redirección? Código: return Redirect::to(‘goodbye’)

¿Generar una URL? Código: URL::to(‘welcome’)

¿Qué tal si quisiéramos pasar parámetros dinámicos a nuestra vista? Tan fácil como esto:

Código: View::make(‘welcome’)->with(‘name’, ‘Duilio’);

Nuestra vista welcome.blade.php quedaría de la siguiente manera: Código: Bienvenido, {{ name }}

O así (si prefieren usar PHP directamente): Código: Bienvenido,

Características de la versión 4 de Laravel Lo más interesante de la versión 4 de Laravel es que detrás de toda esta interfaz tan fácil de usar se esconde una arquitectura bastante sólida (SOLID). Por ejemplo, los métodos estáticos que vimos hace poco no son más que una fachada (Facade). Por debajo se hace el llamado al contenedor de Laravel, el cual maneja todas las dependencias entre las clases del framework y de nuestra aplicación. Tanto si entendiste o no el último párrafo, tanto si eres un entusiasta que busca hacer sitios web de forma rápida y simple, o eres un experto que busca crear una robusta aplicación, fácil de mantener y probar: Laravel es el framework para ti. La idea de este set de tutoriales es enseñarlos a usar Laravel desde lo más básico (rutas, vistas, formularios, bases de datos) hasta lo más avanzado (inyección de dependencias, pruebas unitarias) ¿Te interesa? Déjanos un comentario y en pocos días te notificaremos sobre la segunda entrega: Instalación y primeros pasos.

Cómo instalar Laravel y Composer En el capítulo anterior, les mostré un poco sobre la fácil sintáxis de Laravel. También les mencioné brevemente que detrás de esta interfaz que nos permite casi

hablarle al framework: “redireccioname a”, “haz una vista… con este parámetro/valor”, debajo de todo eso se esconde una arquitectura SÓLIDA de desarrollo, haciendo a Laravel un framework de PHP ideal tanto para principiantes como para expertos. Mi intención era despertar la curiosidad en la herramienta, si estás acá, quizás tuve éxito. Ahora es momento de ver cómo instalar Laravel y Composer. Requisitos para Instalar Laravel Laravel es un framework para PHP, obviamente tiene como requisito tener instalado... PHP, en este caso, la versión de PHP 5.3.2. Además necesitaremos laextensión MCrypt de PHP. También necesitan un servidor web como Apache y una base de datos como MySQL. Hay cientos de artículos sobre cómo conseguir todo esto, también hay herramientas como XAMPP que instalan todo esto por tí.

Más adelante necesitarán el módulo Rewrite (mod_rewrite) de Apache. Si han trabajado antes con otros frameworks sabrán de qué les hablo, sino, por ahora les comento que es un módulo que hace posible URLs amigables como las de Cristalab: Código:

cristalab.com/tutoriales/introduccion-a-laravel-c111339l/

En vez de: Código: cristalab.com/tutoriales.php?id=c111339I.

Estas son útiles para los motores de búsqueda y también para los usuarios. En otro tutorial hablaremos de esto. También necesitarán un conocimiento básico de PHP, es un “plus” si saben de programación orientada a objetos o si ya han usado otros frameworks. Igual trataré de explicar todo detalladamente y además tenemos la sección de comentarios donde pueden hacer preguntas, con suerte además de mí, otros usuarios también quieran ayudar a aclarar dudas. Cómo instalar Laravel y Composer Si tienen experiencia con PHP sabrán que éste es un lenguaje interpretado, básicamente una library para PHP (un framework por ej.) no es más que una serie de archivos .php dentro de carpetas dentro de sub-carpetas, y para instalarlo por lo general no hace falta más que descargar archivos de un repositorio GIT o de una página, descomprimirlos en algún lado y listo. Para instalar Laravel 4, hace falta un paso extra. Pero no nos preocupemos, en realidad es una ventaja que nos pondrá no sólo a Laravel sino a miles de paquetes a nuestra disposición, me refiero a Composer. Composer Composer es un excelente manejador de paquetes y dependencias entre paquetes para PHP.

¿Qué son dependencias y paquetes? Imagina que tienes un pequeño proyecto como ir de viaje de una ciudad a otra y para hacerlo necesitas un medio de transporte, en este caso, digamos, un automóvil. Si fueras un programa de software el automóvil sería un paquete, y tu viaje sería la aplicación que "depende" de él. Entonces, en este caso, Composer viene siendo como el personaje Tank de la película Matrix, tú le dices “Composer, necesito un auto para mi viaje” y Composer se encarga de buscar el paquete auto e instalarlo para ti. Luego “auto” le dirá a Composer que necesita también un paquete motor, otro paquete sistema de frenos, y así sucesivamente. Composer

irá

buscando

e

instalando

cada

paquete

y

las

dependencias de cada subpaquete, recursivamente, hasta armar el auto, todo lo cual será transparente para ti. Cómo instalar Composer Aquí tienen las instrucciones de la página oficial, básicamente hay dos formas: Instalar Composer en Linux:

Ejecuten desde su consola el siguiente comando: Código: curl -sS https://getcomposer.org/installer | php

O si no tienen CURL instalado: Código: php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Si todo sale bien ya podrán usar Composer con el siguiente comando: Código: php composer.phar

Instalar Composer globalmente.Es mejor instalar y tener disponible Composer en todo todo el sistema, para ello hay que renombrar el archivo a “composer” (sin extensión) y moverlo a /usr/local/bin. Si no tienes el directorio /usr/local/bin puedes ejecutar echo $PATH en la consola para obtener las carpetas adecuadas. Instalar Composer en Windows: Descarga el instalador desde aquí o desde la página oficial (para desconfiados), ejecútalo y presiona: siguiente, siguiente, finalizar.

También les hará falta una consola de GIT, yo uso ésta. Mismo proceso: descarguen, ejecuten, siguiente, siguiente, finalizar.

Instalar Laravel Una vez instalado composer, usando la consola/terminal (si estamos en Windows usaremos la consola de GIT que recien instalamos), vamos a nuestra carpeta de

proyectos,

por

ejemplo:

cd

/var/www

o

/home/usuario/proyectos_web/

o

/c/xampp/httpdocs/ y allí tipeamos: Código: composer create-project laravel/laravel pruebalaravel

Para usuarios de Linux que no instalaron Composer globalmente: (El comando sería php composer.phar y necesitarían obviamente tener el archivo composer.phar en la misma carpeta desde donde ejecutan el comando) Tiempo de ir por un café. Mientras nos tomamos un descanso, Composer se encargará de descargar el proyecto base de Laravel, el framework y todas sus dependencias. Si son curiosos verán cómo la consola va descargando decenas de paquetes que serán usados por Laravel más adelante.

Algunos de estos paquetes pertenecen al framework Symfony. ¿Symfony? Sí, antes cuando elegíamos un framework como Codeigniter, Symfony o Cake, elegíamos una herramienta y descartábamos las otras. Si nos gustaba lo fácil que era Codeigniter pero también nos gustaba el ORM de symfony 1.4 teníamos que decidirnos por uno o por otro, o elegir Codeigniter y buscar en foro tras foro cómo integrar el ORM usado por symfony nativamente (Doctrine 1.2 en este caso) en Codeigniter, cruzar los

dedos y esperar que todo saliera bien. O supongamos que queríamos crear un nuevo CMS para PHP, pero aún así estábamos totalmente satisfechos con la forma en cómo symfony maneja las rutas. No había forma fácil de usar sólo las rutas de symfony, porque era un framework "acoplado" y teníamos que elegir usar todo o nada. Con la salida de proyectos como Symfony 2 y Composer, esto cambió radicalmente. De hecho la versión Symfony 2 fue liberada como un conjunto de componentes que pueden ser usados por separado, de manera que proyectos como Drupal 8 integran ciertos componentes de Symfony, y así lo hace Laravel.

Todo lo cual lleva el desarrollo de PHP a otro nivel, donde nosotros, los programadores podemos aprovechar el trabajo de otros y fácilmente poner parte de nuestro trabajo al alcance de otros, en vez de seguir reinventando la rueda una y otra vez. Pero volviendo a la instalación de Laravel... Una vez que se complete la descarga de los paquetes, verificamos nuestro directorio, el cual debe lucir similar a éste:

..con todas las carpetas instaladas por Composer. Y, como personas impacientes que somos, también iremos corriendo al navegador, y tipearemos, en mi caso: Código:

http://localhost/laravelpruebas/public

Directorio público: (Es importante acceder a la carpeta /public que es la puerta de nuestro proyecto para la web, más adelante veremos esto en detalle) Y si todo ha salido bien:

Si leíste “you have arrived” en tu navegador, estás listo para la tercera parte, sino tienes varios días, los comentarios de abajo y Google para investigar qué salió mal y prepararte para la siguiente entrega, donde explicaré lo que contienen las carpetas y archivos instalados por Composer, entre otros temas. Stay tuned

Configurar Base de Datos y crear tablas con Laravel En los tutoriales anteriores, vimos una introdución al framework Laravel y aprendimos cómo instalar Laravel y Composer. De ahora en adelante comenzaremos untutorial teórico - práctico de Laravel. Crear un módulo de Usuarios con Laravel Si bien no es el módulo más emocionante del mundo, lo considero práctico dado que hace falta en la mayoría de las aplicaciones. Para comenzar, necesitamos configurar nuestra base de datos y crear la tabla de usuarios.

Cómo configurar la base de datos en Laravel Lo haremos en cuatro sencillos pasos: 1 - Abrimos el archivo database.php localizado en: Código: app/config/database.php

2 - En la línea 29, encontraremos lo siguiente: Código: 'default' => 'mysql'

Si estamos trabajando con MySQL, como es mi caso, dejaremos la línea intacta, sino editaremos el valor entre comillas a sqlite, pgsql, etc. según sea el caso. Entre las bases de datos soportadas por defecto en Laravel encontramos: MySQL, SQL Lite, PostgreSQL y SQL Server. 3 - Usamos PHPMyAdmin o cualquier otra herramienta de nuestra preferencia para crear la base de datos, en mi caso, con PHPMyAdmin y MySQL crearé una DB llamada “pruebalaravel”: Código: CREATE DATABASE `pruebalaravel` ;

4 - Una vez creada la DB debemos indicarle a Laravel el nombre de nuestra base de datos y un usuario con acceso a ella, para MySQL tenemos en el mismo archivo database.php lo siguiente (línea 55): Código: 'mysql' => array(

'driver'

=> 'mysql',

'host'

=> 'localhost',

'database' => 'pruebalaravel', 'username' => 'root', 'password' => 'CLAVE_ULTRA_SECRETA', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix'

=> '',

),

Allí cambiamos ‘database’ por el nombre de nuestra base de datos: Código: 'database' => 'pruebalaravel',

Y más abajo el usuario que hayan configurado cuando instalaron MySQL, comúnmente ‘root’, luego, en la línea siguiente, el password que dependiendo de su instalación pudiese estar en blanco o ser una clave ultra secreta. Una vez configurada la DB, veamos: Cómo crear las tablas en la base de datos con Laravel Para ello usaremos migraciones. Las migraciones permiten configurar y modificar la estructura de una base de datos. Creando una especie de “control de versiones” de base de datos que puede ser usada por una o más personas dentro del equipo de desarrollo.

Por ejemplo: 1. Inicialmente crearemos una tabla llamada “users”. 2. En unas semanas necesitaremos otra tabla llamada “tasks”. 3. Luego agregaremos un campo adicional llamado “role” en la tabla “users” para dividir los administradores de los usuarios normales.

Cada uno de estos pasos implicará crear una migración diferente con la que el framework sabrá cómo modificar la base de datos, tanto hacia el nuevo esquema (del paso 1 al paso 2) como al esquema anterior (por ejemplo: de vuelta al paso 2 desde el paso 3). Ahora veamos: Cómo instalar el sistema de migraciones en Laravel Abrimos nuestra consola o terminal (recuerden usar la consola instalada por GIT si usan Windows) y tipeamos lo siguiente: Código: php artisan migrate:install

Artisan es la interface de comandos de consola que trae Laravel Si configuramos bien la base de datos deberíamos recibir el siguiente mensaje: Código : Migration table created successfully

(Sino recibes este mensaje, vuelve al punto anterior sobre configurar la base de datos y revisa que todo esté bien) ¿Tabla de migración creada con éxito? Sí, si vuelves a tu herramienta de base de datos (ej. PHPMyAdmin) verás la siguiente tabla:

Esta es una sencilla tabla que usa Laravel para conocer el estado de la migración en tu servidor, por ahora está vacía. Siguiente paso: Crear nuestra primera migración con Artisan y Laravel Para ello ejecutamos el siguiente comando: Código: php artisan migrate:make create_user_table

Si todo salió bien, recibiremos un mensaje similar a éste: Código: Created Migration: 2013_09_03_211545_create_user_table Generating optimized class loader

El primer mensaje (migración creada…) nos indica que fue creado el archivo donde vamos a: Crear el esquema de nuestra tabla usando el Schema Builder Abrimos el archivo localizado en: Código: app/database/migrations/2013_09_03_211545_create_user_table.php

El nombre del archivo además de lo especificado por nosotros (create_user_table) contiene una fecha/hora que permite indicarle al framework el orden en que fueron creadas las migraciones, en mi caso 2013_09_03_21... Ok, abrimos el archivo, tenemos la siguiente estructura: Código: