2. ¿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.
3. 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.
4. 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 restart
Finalmente, ingresar a http://localhost
Aparece el mensaje de bienvenida.
5. Configurar Base de Datos
Ahora 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' => '',
6. 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','','');
7. Modelo
Para 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’.
8. Vista
La 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>
9. Controlador
Para 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.
<?php
class 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
} }
?>
10. 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'));
12. ¿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.
<?php
Class Carro Extends Eloquent {
protected $table = 'carros';
protected $fillable = array('modelo', 'placa', 'ano');
}
?>
13. 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`).....
14. 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`)......
15. 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
16. 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
17. Modificar Registro
Cuando 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;
18. 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
19. 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
20. 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
<?php
return array(
"bienvenido" => "Bienvenido",
"iniciar" => "Iniciar Sesión",
"cancelar" => "Cancelar",
);