You are on page 1of 34

TECNOLOGIA WEB - LARAVEL 5

Ing. Pohl Caceres Paul Elbin


DESARROLLO DE SISTEMAS INFORMATICOS ORIENTADOS A LA WEB CON TECNOLOGIAS DE
LIBRE DISTRIBUCION
El Software Libre es desarrollado por una comunidad de desarrolladores que
trabajan juntos desde diferentes partes del mundo para lograr un objetivo comn. El
software es desarrollado y actualizado por la misma comunidad incluyendo
manuales y tutoriales. Actualmente hay un aumento exponencial en trminos de
desarrollo y uso de este tipo de software por empresas y organizaciones a nivel
global.
Del mismo modo, desarrollo de aplicaciones web con tecnologas libres se refiere a
la implementacin de estas aplicaciones con el uso de software open
source. Algunos ejemplos son:

Java
PHP
JavaScript
MySQL
Sistemas de Gestin de Contenidos (Drupal, Joomla, WordPress, Typo3)
Software de comercio electrnico (Magento, Pinnacle Cart)
DE QU MANERA EL SOFTWARE LIBRE BENEFICIA A UN NEGOCIO?

El software libre tiene muchas ventajas sobre el software propietario, debido


principalmente a sus costos:

La mayora de ellos son gratuitos o de precios muy nominales y por lo tanto


llegar a usarlos resulta muy econmico y proporciona un enorme retorno de
inversin, tanto a corto y largo plazo.

Son de igual o mejor calidad en comparacin con sus homlogos propietarios.

Hay una gran comunidad de desarrolladores en todo el mundo y un sin nmero


de foros que ofrecen tutoriales y ayuda, de tal que los diseadores y
desarrolladores nunca se atascan con cualquier aspecto tcnico del software.

Hay una enorme variedad, flexibilidad y muchas opciones de personalizacin


disponibles para las empresas que pueden elegir de acuerdo a sus necesidades
LIBERTADES DEL SOFTWARE LIBRE

La libertad de usar el programa, con cualquier propsito


(libertad 0).

La libertad de estudiar cmo funciona el programa, y


adaptarlo a tus necesidades (libertad 1). El acceso al
cdigo fuente es una condicin previa para esto.

La libertad de distribuir copias, con lo que puedes ayudar a


tu vecino (libertad 2)

La libertad de mejorar el programa y hacer pblicas las


mejoras a los dems, de modo que toda la comunidad se
beneficie. (libertad 3). El acceso al cdigo fuente es un
requisito previo para esto.
SOFTWARE LIBRE (FREE SOFTWARE) Y SOFTWARE DE CDIGO
ABIERTO
La Licencia Pblica General de GNU (General Public License) o simplemente
sus siglas del ingls GNU GPL) es la licencia ms ampliamente usada en el
mundo del software y garantiza a los usuarios finales (personas, organizaciones,
compaas) la libertad de usar, estudiar, compartir (copiar) y modificar el software.
FRAMEWORK
Estructura software compuesta de componentes
personalizables e intercambiables para el desarrollo de
una aplicacin.

Se considera como una aplicacin genrica incompleta y


configurable a la que podemos aadirle las ltimas
piezas para construir una aplicacin concreta.

Los objetivos principales que persigue un framework


son: acelerar el proceso de desarrollo, reutilizar cdigo
ya existente y promover buenas prcticas de desarrollo
como el uso de patrones.
El patrn MVC MODELO VISTA CONTROLADOR
Uno de los patrones de diseo ms utilizados hoy en da es el patrn MVC. La
mayora de los frameworks web se apoyan en l desde JSF, ASP NET,
LARAVEL. El patrn MVC se basa en la divisin de responsabilidades

El Modelo se encarga de la mayor parte de la lgica de negocio y comunicacin


con las bases de datos. La Vista que se encarga de mostrar la informacin del
modelo y por ltimo el Controlador que comunica la informacin entre ambas
partes.
LARAVEL
Framework creado para trabajar con PHP creado en el ao 2011 por Taylor Otwell.
Framework de desarrollo con una curva de aprendizaje muy rpida.
Facilita las tareas comunes, como la autenticacin, enrutamiento, sesiones y cach.
Proporciona potentes herramientas necesarias para construir aplicaciones robustas y
que puede ser utilizado tanto para proyectos a nivel empresarial como para proyectos
ms sencillos.
Ventajas:
Reduccin de costos y tiempos en el desarrollo y posterior mantenimiento.
Curva de aprendizaje relativamente baja si se compara con otros frameworks de PHP
Flexible y adaptable no slo al uso del sistema MVC tradicional.
Modular y con un amplio sistema de paquetes y drivers con el que se puede extender las
funcionalidades de forma sencilla, robusta y segura.
Sencillez a la hora de utilizar los datos mediante Eloquent, que se trata de un ORM cuya
interaccin con las bases de datos es totalmente orientada a objetos, siendo compatible
con la gran mayora de bases de datos del mercado
Facilita el manejo de las rutas de nuestra aplicacin, as como la generacin de URLs
amigables
Uso del sistema de plantillas Blade, que se caracterizan por ser ms simples y que
adems incluyen un sistema de cach que las hace ms rpidas
Una gran comunidad y mucha documentacin, sobre todo en su sitio oficial
Cuenta con una herramienta de lneas de comando llamada Artisan.
ARQUITECTURA BASICA DEL FRAMEWORK
CICLO DE VIDA DE UNA
PETICION EN LARAVEL
EMPEZANDO CON LARAVEL
Requisitos para Instalar Laravel
PHP 5.3.2. ,extensin MCrypt de PHP. Servidor web Apache y una base
de datos como MySQL. Utilizaremos la Herramienta Laragon que instalara
todo por nosotros.

Proceso de Desarrollo
Instalacin de laravel mediante la herramienta Laragon
Configuracin de la base de datos y otros ajustes
Creacin de la rutas de la aplicacin
Creacin de los modelos
Creacin de los controladores y su integracin con las rutas y las vistas
Creacin de las plantillas de la vista que componen la parte orientada al usuario.
Laragon es una suite de desarrollo para PHP que funciona sobre Windows
diseado especialmente para trabajar con Laravel. Similar a otras
herramientas como Xampp o Wampp, Laragon nos permite crear un entorno de
desarrollo con estas caractersticas:

Cmd (Consola para Windows)


Git
Node.js
npm
SSH
Putty
PHP 7 / 5.6
Extensiones de PHP
xDebug
Composer
Apache
MariaDB/MySQL
phpMyAdmin
Soporte para Laravel y Lumen
Gestion automatica de Virtualhosts. https://laragon.org/download.html
BASE DE DATOS DE EJEMPLO
Carpeta vendor
Esta carpeta contiene una cantidad de libreras externas, creadas por diversos
desarrolladores que son dependencias de Laravel.
Carpeta storage
Es el sistema de almacenamiento automtico del framework, donde se guardan
cosas como la cach, las sesiones o las vistas, logs, etc
Carpeta resources
En Laravel 5 han creado esta carpeta, englobando distintos tipos de recursos, que
antes estaban dentro de la carpeta app. En resumen, en esta carpeta se guardan
assets, archivos de idioma (lang) y vistas.
Carpeta Public
Es el denominado "document root" del servidor web.
Carpeta database
Contiene las alimentaciones y migraciones de la base de datos.
Carpeta bootstrap
Permite el sistema de arranque de Laravel.
Carpeta config
Esta carpeta contiene toda una serie de archivos de configuracin.
Carpeta app
Tiene a su vez muchas carpetas adicionales para diversas cosas. Encuentras
carpetas para comandos, para comandos de consola, control de eventos, control
de excepciones, proveedores y servicios, etc.
La carpeta Http que cuelga de App contiene a su vez diversas carpetas
importantes, como es el caso de aquella donde guardamos los controladores,
middleware.

https://richos.gitbooks.io/laravel5/content/capitulos/chapter4.html
ENRUTAMIENTO
Las rutas definen los extremos finales de una aplicacin web, en otras
palabras el destino final de una peticin.

En Laravel, las rutas para una aplicacin web se encuentran en la carpeta routes en
el archivo web.php. Este es el archivo que se edita cada vez que desee agregar o
eliminar una ruta para su aplicacin.
ESTRUCTURA DE UNA RUTA BASICA
Mtodos HTTP soportados por Laravel
Mtodo Propsito Ejemplo
GET Recupera datos Muestra una pgina HTML
o contenido JSON
POST Enva datos Envia informacion a un
formulario
PUT Actualiza un recurso Actualiza un blog posteado
o un comentario
PATCH Modifica parte de un Actualiza un parrafo de un
recurso blog existente o el detalle
de un usuario
DELETE Elimina un recurso Elimina un blog posteado,
una imagen o comentario

Enrutamiento que muestra un


inicio de session

Enrutamiento para el envo del


formulario de inicio de sesin
EJEMPLOS Mtodos get, post, put y delete
para crear un API Rest con Laravel 5.
// Ruta que apunta al HolaController y a la accin index
Route::get('/', HolaController@index'); Route::post(abc/xyz', function()
{
// Ruta que apunta al controlador HomeController y a la accin index return maestria.com.pe';
Route::get('home', 'HomeController@index'); });

Route::put(abc/xyz', function()
Parmetros en las rutas {
return maestria.com.pe';
// Pasar parmetro });
Route::get('pelicula/{id}', function($id)
{
Route::delete(abc/xyz', function()
return 'Pelicula '.$id;
});
{
return maestria.com.pe';
});

Redirects
Las redirecciones son convenientes cuando se desea redirigir a otra ruta en la aplicacin:
Auth filter esta implementado una redireccin:

Route::filter('auth', function() {
// Redirige a la pagina login si no ha sido logueado
if (Auth::guest())
return Redirect::guest('login');
});
Laravel incorpora un tipo especial de controlador, llamado controlador de recurso (resource controller),
que facilita la construccin de controladores tipo RESTFUL.
Artisan php artisan make:controller <nombre-controlador> para crear el controlador y aadir la ruta al archivo
de rutas web.php usando Route::resource.

Por ejemplo, para crear un controlador para la gestin de cursos en la aplicacin, en primer lugar
ejecutaramos el siguiente comando:

php artisan make:controller CursoController


Esto creara el controlador CursoController (incluyendo todos los mtodos necesarios) en la carpeta
app/Http/Controllers. Lo nico que nos faltara es registrar las rutas asociadas aadiendo al archivo
routes/web.php la siguiente lnea:

Route::resource(rcurso', CursoController');
Esta lnea de ruta crea por si sola mltiples rutas para gestionar todos los tipos de peticiones RESTful.
Adems, el controlador creado mediante Artisan estar preparado con todos los mtodos necesarios para
responder a todos los tipos de peticiones. En la siguiente tabla se muestra un resumen de todas las rutas
generadas, el tipo de peticin a la que responden y la accin que realizan en el controlador:

Verbo Ruta Accin Controlador / mtodo

GET /rcurso index CursoController@index

GET /rcurso/create create CursoController@create

POST /rcurso store CursoController@store

GET /rcurso/{resource} show CursoController@show

GET /rcurso/{resource}/edit edit CursoController@edit

PUT/PATCH /rcurso/{resource} update CursoController@update

DELETE /rcurso/{resource} destroy CursoController@destroy


CREACION DE UN PROYECTO

La siguiente instruccin crea un nuevo proyecto via composer:


composer create-project --prefer-dist laravel/laravel appcolegio
laravel new appcolegio

Composer instalara un proyecto laravel con todas sus libreras y dependencias en una carpeta con el
mismo nombre del proyecto

A continuacin haremos las configuraciones iniciales:


Conexin a la base de datos: Abrimos el archivo .env y configuramos el
acceso a nuestra base de datos

SISTEMA DE AUTENTICACION DE LARAVEL


Se cuenta con sistema de autenticacin por defecto para ello primero haremos
los sgtes pasos:
Generar la tabla users a partir de una migracin:
php artisan migrate
Luego para generar las rutas y controladores del sistema de autenticacin:
php artisan make:auth
Ya generado el sistema de autenticacin podemos hacer las modificaciones correspondientes:
CRUD DE MANTENIMIENTO DE CURSOS

1. Crear el modelo
php artisan make:model Curso
2. Crear la clase Curso:

$guarded permite especificar qu campos no queremos que se asignen al


modelo. Es decir, se asignan todos excepto los especificados en este array.

$fillable te permite especificar qu campos s quieres que se guarden en la


base de datos. Es decir, se asignan nicamente los especificados en este
array.

RUTA
Agregar la siguiente ruta en web.php
Route::resource('rcurso','CursoController');
VISTAS
Laravel proporciona una conveniente separacin entre los datos de la aplicacin y
la forma en que se muestran los datos en el navegador. Laravel enfoca la capa de
presentacin mediante plantillas a travs de un potente motor de plantillas llamado
"Blade.

Definicin
Las vistas son la
representacin visual
de una aplicacin web y
permiten al usuario
interactuar con esta.
PLANTILLAS EN LARAVEL MOTOR DE PLANTILLAS BLADE
Laravel puede almacenar plantillas que se compilan en HTML fuera de la lgica de la
aplicacin y que son alimentadas con los datos recuperados de esta. Se puede crear
elementos comunes a ms de una pgina de la aplicacin, como son los
encabezados, pie de pgina, barra lateral etc como plantillas separadas que se
podran reutilizar en cualquier pgina donde se necesite.
SEPARANDO LAS PLANTILLAS EN CARPETAS
Route::get('login', function() {
//Muestra el archivo login.blade.php de la carpeta resources/views/auth
return view('auth.login');
});

Route::get('register', function() {
// Muestra el archivo login.blade.php de la carpeta resources/views/auth
return view('auth.register');
});
COMPARACION PHP Y BLADE

PHP (.php) Blade (.blade.php)


Salida de datos en PHP Salida de datos en Blade
<?php echo(date('Y')); ?> {{ date('Y') }}
Bucle PHP Bucle Blade
<?php foreach($users as $user){ ?> @foreach($users as $user)
<p> <p>
<?php echo($user.name); ?><br> {{ $user.name }}<br>
<?php echo($user.address); ?> {{ $user.address }}
</p> </p>
<?php } ?> @endforeach
Condicionales en PHP Condicionales en Blade
<?php if($category == 'blog') { ?> @if($category == 'blog')
... ...
<?php } else { ?> @else
... ...
<?php } ?> @endif
LAYOUTS BLADE (DISEOS BLADE)
Son vistas con HTML/CSS/JS que son comunes a varias paginas

KEYBOARDS Y FUNCIONES PRINCIPALES DE LOS LAYOUTS


Blade keyword Ubicacin Descripcin
@yield() En el layout Inserta una seccion con contenido
que tiene un nombre especificado
en el argumento.
@extends() En la vista Aplica en una plantilla BLADE
especificado en el argumento
como una extension del layout
actual
@section() En la vista Define el contenido que sera
insertado en el layout de la
plantilla se esta usando
actualmente. El nombre de la
seccion es especificado como
argumento en @section().

@stop
@include() En la vista o en layout Inserta otra plantilla Blade
especificado en el argumento
CONTROLLERS
Lgica de la aplicacin que tiene un conjunto de acciones ejecutables que la
aplicacin utiliza para validar entradas, recuperar o almacenar datos
Creando y usando un controlador bsico
class CursoController extends Controller
{
// Mtodo inicial de las rutas resource, usualmente lo usamos para mostrar una vista como pgina principal que
// puede contener un catalogo o resumen de la informacin del modelo al cual pertenece o bien no mostrar informacin y
// solo tener la funcin de pgina de inicio.
public function index() { }

// Mtodo lo podemos usar para direccionar el sistema a la vista donde se van a recolectar los datos(de un formulario)
// para despus almacenarlos en un registro nuevo, usualmente redirige al index.
public function create(){ }

//Aqui es donde se actualiza un registro en especifico que proviene del mtodo create y normalmente redirige al index.
public function store(Request $request) { }

//Aqui podemos hacer unna consulta de un elemento de la base de datos o de todos los elementos o registros por medio del
// modelo para realizar una descripcin.
public function show($id) { }

//Este mtodo es similar al de create porque lo podemos usar para mostrar una vista que recolecta los datos pero a
// diferencia de create es con el fin de actualizar un registro.
public function edit($id) { }

//Al igual que el store, solo que en vez de provenir de create proviene de edit y en vez de crear un nuevo registro,
//busca un existente y lo modifica, tambien suele redirigir al index.
public function update(Request $request, $id) { }

//En este mtodo usualmente se destruye o elimina un registro y la peticin puede provenir de donde sea siempre y
//cuando sea llamado con el mtodo DELETE, despus puede redirigir al index o a otro sitio dependiendo si logro eliminar o no.
public function destroy($c) { }
}
Glosario

{{ csrf_field() }}
crea un campo con un valor nico que se enva con cada peticin post dentro de Laravel para validar la
autenticidad de dicha peticin, es una medida de seguridad para evitar ataques externos.

Paginas
https://www.dunebook.com/creating-a-simple-crud-application-in-laravel/6/
https://www.sitepoint.com/crud-create-read-update-delete-laravel-app/
https://scotch.io/tutorials/simple-laravel-crud-with-resource-controllers
https://manuais.iessanclemente.net/index.php/LARAVEL_Framework_-_Tutorial_01_-
_Creaci%C3%B3n_de_API_RESTful
http://www.expertphp.in/article/laravel-52-crud-create-read-update-delete-example-
from-scratch
https://www.gitbook.com/book/richos/laravel-5/details
https://www.tutorialspoint.com/laravel/laravel_routing.htm

You might also like