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.
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.
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.
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' => '',
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','','');
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’.
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>
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
} }
?>
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'));
Esquema.
¿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');
}
?>
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`).....
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`)......
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
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
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;
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
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
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",
);

9.laravel

  • 1.
  • 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 – Contienede 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 ➔ Esnecesario 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 deDatos 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 -- Estructurade 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 nuestromodelo 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 vistaque 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 elmodelo 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 últimodebemos 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'));
  • 11.
  • 12.
    ¿Qué es EloquentORM? ➔ 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 ➔ Cuandonecesitemos 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. Aligual 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 necesitemosmodificar 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", );