Está en la página 1de 26

LARAVEL

(Framework)

Formación Practica S5 – Php


Laravel
Desarrollo De Aplicaciones
WEB III
LARAVEL
Framework PHP
Objetivo

• Desarrollar Aplicaciones web con la


arquitectura MVC
• Migrar Base de datos con laravel Modelo
Vista
Controlador
Laravel (Patrón MVC)

4
Empezando Laravel

¿Qué es Composer?
• Es un manejador de dependencias, no un gestor de
paquetes.
• Composer es capaz de instalar las librerías que
requiere tu proyecto con las versiones que necesiten.

¿Y si mis librerías dependen de otras?

• También es capaz de resolver eso y descargar todo lo


necesario para que funcione y así quitarnos del dolor
de cabeza de hacer todo eso de forma manual.
ESTRUCTURA DE CARPETA
Estructura de carpeta
Estructura de carpeta
Arrastramos nuestro proyecto al editor de código (Sublime
Text, notepad++, visual studio code)

Carpeta donde se alojan los modelos y controladores de


nuestro proyecto

Carpeta donde se aloja archivos de plantilla, css, js, img

Carpeta donde se alojan las vistas

Carpeta donde se alojan las rutas.


Recordemos
El Trabajo de controlador no es mostrar
código html.
Controlador CursoController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CursoController extends Controller


{
// va ha administrar 3 rutas distintas
public function index(){
return "Hola Bienvenidos a la Pagina Principal";
// es decir que este mensaje se esta agregando en el controlador con su respectivo método (index)
}
public function create(){
return "En esta pagina creamos nuevos cursos";
}

public function show($curso){


return "Bienvenidos al Curso de $curso";
}
}
Routes
Nota: tomar en cuenta que para la versión 7
de laravel se utiliza otro método para realizar
Web.php
mantenimiento, (investigar)
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController; //Referencia al controlador
use App\Http\Controllers\CursoController;

Route::get('/', HomeController::class);

Route::get('cursos', [CursoController::class, 'index’]); //para administrar esta


ruta, hemos definido que se encargara será el método index
Route::get('cursos/create', [CursoController::class, 'create’]); //para administrar
esta ruta, hemos definido que se encargara será el método create
Route::get('cursos/{curso}', [CursoController::class, 'show’]); //para administrar
esta ruta, hemos definido que se encargara será el método show

//Esto es una estructura de ruta mucho mas limpia


Grupos de Rutas Laravel 9
Grupos de Rutas
Web.php

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController; //Realizamos una referencia al controlador
use App\Http\Controllers\CursoController;

Route::get('/', HomeController::class);

//Grupo de Rutas Vamos analizar estas 3 rutas. Hemos tenido que especificar 3 veces cada una de
las rutas que va ha utilizar el controlador llamado CursoController, pero se
Route::controller(CursoController::class)->group(function(){ diferencia a cada una de estas rutas es que será administrado por el método
Route::get('cursos', 'index'); index, create, show.
Route::get('cursos/create','create');
En vez de definir que en cada una de las rutas que vamos hacer uso de
Route::get('cursos/{curso}','show'); CursoController, vamos a crear un grupo de rutas, y definir todas las rutas que
incluyamos dentro de este grupo van hacer uso del controlador CursoController
});
Recordando lo que hemos estudiado hasta ahora..
Vamos ha trabajar con nuestro controlador primero
(HomeController) para que nos retorne una vista Home.Controller.php
Cada vez que el usuario hace una petición por la url
<?php
lo que hace es devolver una cadena de texto namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
Web.php //Agregaremos un método llamado Invoke
public function __invoke(){
<?php /* return view('welcome');*/
return “Bienvenido a la pagina principal”;
use Illuminate\Support\Facades\Route; }
use App\Http\Controllers\HomeController; //Referencia al }
controlador
use App\Http\Controllers\CursoController;
<?php
CursoController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
Route::get('/', HomeController::class);
class CursoController extends Controller
{
Route::get('cursos', [CursoController::class, 'index’]);
// va ha administrar 3 rutas distintas
//para administrar esta ruta, hemos definido que se encargara
public function index(){
será el método index
return "Hola Bienvenidos a la Pagina Principal";
Route::get('cursos/create', [CursoController::class,
// es decir que este mensaje se esta agregando en el controlador
'create’]); //para administrar esta ruta, hemos definido que con su respectivo método (index)
se encargara será el método create }
Route::get('cursos/{curso}', [CursoController::class, public function create(){
'show’]); //para administrar esta ruta, hemos definido que se return "En esta pagina creamos nuevos cursos";
encargara será el método show }
public function show($curso){
//Esto es una estructura de ruta mucho mas limpia return "Bienvenidos al Curso de $curso";
}
}
Ahora vamos a trabajar con las vistas en Laravel..
Vistas (View)
<!DOCTYPE html>
<html lang="en"> Home.php
<head>
<meta charset="UTF-8">
Resources <meta http-equiv="X-UA-Compatible" content="IE=edge">
Views <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
Home.php Vamos a crear un archivo llamado <!--favicon-->
Home.php dentro de vista (Views)
<!--estilos-->
</head>
<body>

<!--header-->
Creamos una carpeta llamada ”Cursos” y agregamos 3
archivos dentro de esa carpeta <!--nav-->

Cursos <h1> Bienvenidos a la Pagina Principal</h1>


Index.php
<!--footer-->
Create.php
Show.php <!--script-->
</body>
</html>
Ahora vamos a cambiar y pedirle que nos retone una
vista

<?php
Home.Controller.php
namespace App\Http\Controllers;
CursoController.php
<?php
use Illuminate\Http\Request;
namespace App\Http\Controllers;
class HomeController extends Controller
use Illuminate\Http\Request;
{
class CursoController extends Controller
//Agregaremos un método llamado Invoke
{
public function __invoke(){
// va ha administrar 3 rutas distintas
return view('home');
public function index(){
}
return “";
}
// es decir que este mensaje se esta agregando en el controlador
con su respectivo método (index)
}
public function create(){
return "";
}
public function show($curso){
return "";
}
} Pasamos el contenido del mensaje de cada unos
de los métodos en las vistas
<!DOCTYPE html>
index.php
<!DOCTYPE html> show.php
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial- <meta name="viewport" content="width=device-width, initial-
scale=1.0"> scale=1.0">
<title>Document</title> <title>Document</title>
</head> </head>
<body> <body>
<h1> Bienvenidos a la Pagina Principal del CURSO LARAVEL </h1> <h1> Bienvenidos al Curso de $curso <?php echo $curso;?></h1>
</body> </body>
</html> </html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
create.php <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>En esta pagina creamos nuevos cursos</h1>
</body>
</html>
CursoController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CursoController extends Controller
{
public function index(){
return view('cursos.index');
}
public function create(){ Voy ha solicitar que me devuelva las respectivas vista del archivo
return view('cursos.create'); index, create, show
}
public function show($curso){
return view('cursos.show',['curso'=>$curso]);
}
}
Vamos a crear una nueva carpeta dentro de view, llamado layouts, y
dentro de la carpeta vamos a crear un archivo llamado
plantilla.blade.php

home.blade.php
Establecemos una plantilla para todas
<!DOCTYPE html>
<html lang="en">
las vistas @extends('layouts.plantilla')
<head>
@section('title', 'home')
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> @section('content')
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@yield(‘title’)</title> <h1>Bienvenido a la pagina Principal<h1>
<!--favicon-->
<!--estilos--> @endsection( )
</head>
<body> Establecemos en las vistas la siguiente línea de
<!--header--> código y lo dejamos así como visualizamos
<!--nav--> Nota: Cambiamos el nombre del archivo home por
Index.blade.php home.blade.php
@yield(‘content’) @section('title', 'Cursos')
<!--footer--> <h1>Bienvenido a la pagina Principal de cursos</h1> También vamos a cambiar el nombre de los archivos
<!--script--> create.blade.php index por index.blade.php
</body> @section('title', ‘Cursos create’)
</html> <h1>En esta pagina podemos crear cursos</h1> Create por create.blade.php
show.blade.php show.blade.php
@section('title', 'Curso' . $curso)
<h1>Bienvenido al curso {{$curso}} </h1>
Motor de plantilla Blade

¿Qué es Blade?
• Blade es el sistema de plantillas de Laravel, el cual nos
permite generar HTML dinámico con una sintaxis mucho
más limpia que si usáramos PHP plano.

• Blade es básicamente un sub-lenguaje muy sencillo, que


antes de ser usado por nuestra aplicación, es compilado a
PHP plano.

• Para usar Blade, simplemente se crea sus plantillas en el


directorio views/ con la extensión .blade.php en vez de
.php.
Enrutamiento Básico MVC.

1.) Desde la vista cuando ingresamos a una url directamente


desde el navegador lo hacemos mediante una petición http
de tipo GET o desde un formulario una petición POST.

2.) Esta solicitud se envía al archivo routes.php ubicado


dentro de app/Http/routes.php, en caso de no existir nos
dará un error, si la ruta existe:

3.) Nos llevará a un controlador en el cuál se encuentra la


lógica , el controlador interaccionará con un modelo
(opcionalmente) para recuperar información de una base de
datos.

4.) Esta información llega al controlador y desde el


controlador invocamos una vista, finalmente la vista se carga
y se muestra en el navegador.
IMPLEMENTANDO BASE DE DATOS EN LARAVEL
Creamos conexión de base de datos con Laravel

Creamos una base de datos (---)

Vamos a pedirle a laravel que se conecte a esta base


de datos
Hacemos uso del archivo database.php

config
database.php

'default' => env('DB_CONNECTION', 'mysql'),

Vamos asignar esas credenciales


(Problemas de Seguridad)
Datos sensibles
Cuando subimos nuestro repositorio

Por seguridad definimos nuestras credenciales en el


archivo env.

github.com/coders-free

También podría gustarte