9.laravel

20
Laravel

Transcript of 9.laravel

Page 1: 9.laravel

Laravel

Page 2: 9.laravel

¿Qué es Laravel?➔ Es un framework de código abierto para el desarrollo de

aplicaciones web en PHP5 que posee una sintaxis simple y elegante.

Características:➔ Inspirado en Ruby and Rails y Symfony.➔ Diseñado para desarrollar bajo el patrón MVC.➔ Posee un sistema de mapeo de datos relacional

llamado Eloquent ORM.➔ Utiliza un sistema de procesamiento de plantillas

llamado Blade, el cual hace uso de la cache para darle mayor velocidad.

Page 3: 9.laravel

Estructura/app – Contiene de la aplicación./public – Es la única carpeta a la que los usuarios de la aplicación pueden acceder. /vendor – En esta carpeta se alojan las librerías./app/lang – Archivos PHP con textos de diferentes lenguajes./app/config – Configuración de la aplicación./app/controller – Clases de los controladores que sirven para interactuar con los modelos, las vistas y manejar la lógica de la aplicación./app/model – Los modelos son clases que representan los datos de la aplicación y las reglas para manipularlos. /app/views – Son plantillas HTML5 que usan los controladores para mostrar la información.

Page 4: 9.laravel

Configurar Apache➔ Es necesario activar el Laravel y desactivar el sitio por defecto.Los comandos en Linux son:➔ sudo su (clave 1)➔ a2dissite 000-default.conf➔ a2ensite laravel.conf➔ /etc/init.d/apache2 restartFinalmente, ingresar a http://localhostAparece el mensaje de bienvenida.

Page 5: 9.laravel

Configurar Base de DatosAhora que sabemos como esta estructurado el framework vamos a crear y configurar nuestra base datos. Abrimos el archivo /app/config/database.php y editamos los campos de la conexión MySQL.'connections' => array( 'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'laravel',// Nombre de la base de datos 'username' => 'root', // Usuario de la base de datos 'password' => '', // Clave del usuario 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '',

Page 6: 9.laravel

Ejemplo:Tabla Usuarios

-- Estructura de tabla para la tabla `usuarios`CREATE TABLE `usuarios` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) NOT NULL, `apellido` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`)) ;insert into usuarios values('','Juan','Arias','','');insert into usuarios values('','Ana','Lopez','','');

Page 7: 9.laravel

ModeloPara crear nuestro modelo de usuario debemos crear un archivo llamado Usuario.php en la carpeta /app/models:

<?php class Usuario extends Eloquent { //Todos los modelos deben extender la clase Eloquent protected $table = 'usuarios';}?>

➔ Laravel utiliza Eloquent ORM, que proporciona una manera elegante de interactuar con la base de datos.

➔ Laravel asume que todas las tablas tienen 3 campos ‘id’ (clave primaria), ‘created_at’, ‘updated_at’.

Page 8: 9.laravel

VistaLa primera vista que vamos a crear será lista.blade.php en /app/views/usuarios/. Dentro de la carpeta: creamos el archivo lista.blade.php:

<h1> Usuarios </h1><ul> @foreach($usuarios as $usuario) <li> {{ $usuario->nombre.' '.$usuario->apellido }} </li> @endforeach</ul>

Page 9: 9.laravel

ControladorPara unir el modelo y la vista creamos el tercer componente de MVC, el controlador. Para esto en la carpeta de /app/controllers creamos UsuariosController.php.<?phpclass UsuariosController extends BaseController { /* Mustra la lista con todos los usuarios*/ public function mostrarUsuarios() { $usuarios = Usuario::all(); // Busca todos los registros de la tabla y los devuelva en un Array return View::make('usuarios.lista', array('usuarios' => $usuarios));// El método make View indica cual vista vamos a mostrar al usuario } }?>

Page 10: 9.laravel

Ruta➔ Por último debemos crear una ruta.➔ Es la manera que el framework nos brinda para poder

llegar hasta la acción y el controlador que queramos. ➔ Para crear la ruta abrimos el archivo /app/routes.php y

agregamos al final la siguiente línea de código.

Route::get('usuarios', array('uses' => 'UsuariosController@mostrarUsuarios'));

Page 11: 9.laravel

Esquema.

Page 12: 9.laravel

¿Qué es Eloquent ORM?➔ Es una técnica de programación que permite acceder a los

registros de la base datos como si fueran objetos de PHP y no tener que ejecutar código SQL.

➔ Esto es posible porque cada tabla de la base datos es manejada por una clase en nuestro proyecto (modelos).

➔ Permite crear las relaciones como propiedades de los objetos y así por relacionarlos de una manera más sencilla.

➔ Permite cambiar el motor de base de datos en cualquier momento y nuestro código continuará funcionando.

<?phpClass Carro Extends Eloquent { protected $table = 'carros'; protected $fillable = array('modelo', 'placa', 'ano'); }?>

Page 13: 9.laravel

Crear un Registro.➔ Tenemos dos maneras. ➔ Una de ellas es haciendo uso de la función create(), la cual

recibe como parámetro un arreglo. ➔ Este método es común usarlo cuando estamos recibiendo la

información desde un formulario.$input = array( 'modelo' =>'Honda Civic', 'placa' => 'HFU 88J', 'ano' => 2010 ); Carro::create($input); // Equivalente a INSERT INTO `carros`(`id`, `modelo`, `placa`, `ano`, `created_at`, `updated_at`).....

Page 14: 9.laravel

Crear un Registro➔ La segunda manera es crear un objeto Carro con la

sentencia new, llenar las propiedades del objeto y luego guardarlo con el método save().

$carro = new Carro;$carro->modelo = 'Honda Civic';$carro->placa = 'HFU 88J';$carro->ano = 2010;$carro->save(); // Equivalente a// INSERT INTO `carros`(`id`, `modelo`, `placa`, `ano`, `created_at`, `updated_at`)......

Page 15: 9.laravel

Buscar Registros➔ Cuando necesitemos traer todos los registros podemos

hacer uso de la función all(). ➔ Devuelve un arreglo con todos las columnas de todas las

filas que contenga la tabla que maneja el modelo.

$carros = Carro::all( ); foreach( $carros as $carro){ echo $carro->modelo;}

// Equivalente a// SELECT * FROM `carros` WHERE 1

Page 16: 9.laravel

Buscar 1 Registro.Al igual que la función all(), podemos pasar un arreglo como parámetro con los campos que queramos obtener.

<?php$id = 1; $carro = Carro::find( $id, array('placa') );echo $carro->placa;

//Equivalente a//SELECT placa FROM `carros` WHERE id = 1

Page 17: 9.laravel

Modificar RegistroCuando necesitemos modificar un registro debemos primero buscar con la función find(), modificar las propiedades con los nuevos valores y por últimos llamar al método save().

<?php$id = 1;$carro = Carro::find( $id );$carro->placa = 'MDY 00J';$carro->save();

//Equivalente a// SELECT * FROM `carros` WHERE id = 1// UPDATE `carros` SET `placa`='MDY 00J', updated_at`=NOW() // WHERE id = 1;

Page 18: 9.laravel

Borrar Registro Delete➔ Para borrar también tenemos dos maneras. ➔ La primera es utilizando la función delete() con el objeto que

queremos borrar, de esta manera borramos un solo objeto.<?php$id = 1;$carro = Carro::find( $id );$carro->delete();

//Equivalente a// SELECT * FROM `carros` WHERE id = 1// DELETE FROM `carros` WHERE id = 1

Page 19: 9.laravel

Borrar Registro Destroy➔ La segunda forma es haciendo uso de la función destroy, esta

recibe como parámetros un arreglo con los id de los objetos que se deseen borrar de las base de datos.

➔ Con esta función si es posible borrar varios registros a la vez.

$arreglo = array(2, 3, 4, 7); Carro::destroy($arreglo);

// Equivalente a// DELETE FROM `carros` WHERE id = 2// DELETE FROM `carros` WHERE id = 3// DELETE FROM `carros` WHERE id = 4// DELETE FROM `carros` WHERE id = 7

Page 20: 9.laravel

Idiomas en Aplicaciones➔ Los textos van en la carpeta app/lang y dentro de esta

carpeta debe haber una carpeta por cada idioma. /app /lang /en textos.php mensajes.php /es textos.php mensajes.php /fr textos.php mensajes.php

<?phpreturn array("bienvenido" => "Bienvenido", "iniciar" => "Iniciar Sesión","cancelar" => "Cancelar",);