Laravel Parte 2
Laravel Parte 2
Laravel Parte 2
Laravel, así como cualquier framework PHP, propone una estructura de carpetas, con la que
organizar el código de los sitios o aplicaciones web. Como ya somos desarrolladores aplicados ;)
deberíamos saber que cuando más separemos el código por responsabilidades, más facilidad de
mantenimiento tendrán nuestras aplicaciones. Por lo tanto, en el desarrollo del framework se
cuidan mucho estos detalles, para que aquellos desarrolladores que lo utilicen sean capaces
también de organizarse de una manera correcta.
NOTA: antes de laravel 5 el framework cambiaba las carpetas y sus archivos, se dieron cuenta que
esto era traumático cada vez que salir una nueva versión. Por eso después de la versión 5 solo
actualiza algunas cosas específicas, las carpetas no pierden su orden.
Los archivos que tenemos sueltos en la carpeta raíz de Laravel son los siguientes (o al menos los
más importantes que debes ir conociendo).
.env
Es la definición de las variables de entorno. Podemos tener varios entornos donde vamos a
mantener la ejecución de la aplicación con varias variables que tengan valores diferentes. Temas
como si estamos trabajando con el debug activado, datos de conexión con la base de datos,
servidores de envío de correo, caché, etc.
composer.json
Que contiene información para Composer.
Además en la raíz hay una serie de archivos que tienen que ver con Git, el readme, o del lado
frontend el package.json o incluso un gulpfile.js que no vendría muy al caso comentar aquí porque
no son cosas específicas de Laravel.
Carpeta vendor:
Esta carpeta contiene una cantidad de librerías externas, creadas por diversos desarrolladores que
son dependencias de Laravel. La carpeta vendor no la debemos tocar para nada, porque la
gestiona Composer, que es nuestro gestor de dependencias.
Carpeta storage
En Laravel 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.
Dentro de views tienes las vistas que crearás tú para el desarrollo de tu aplicación. En la
instalación básica encontrarás una serie de subcarpetas con diversos tipos de vistas que durante el
desarrollo podrias crear, vistas de emails, errores, de autenticación. Nosotros podremos crear
nuevas subcarpetas para organizar nuestras vistas.
Carpeta Public
Es el denominado "document root" del servidor web. Es el único subdirectorio que estará
accesible desde fuera mediante el servidor web. Dentro encontrarás ya varios archivos:
.htaccess
En el caso de Apache, este es el archivo que genera las URL amigables a buscadores.
favicon.ico
Es el icono de nuestra aplicación, que usará el navegador para el título de la página o al agregar la
página a favoritos.
index.php
Este es un archivo muy importante, que hace de embudo por el cual pasan todas las solicitudes a
archivos dentro del dominio donde se está usando Laravel. Estaría bien que abrieras ese index.php
para observar lo que tiene dentro. Para el que conozca el patrón "controlador frontal" o "front
controller" cabe decir que este index.php forma parte de él.
robots.txt
Que es algo que indica las cosas que puede y no puede hacer a la araña de Google y la de otros
motores de búsqueda.
En la carpeta public podrás crear todas las subcarpetas que necesites en tu sitio web para
contener archivos con código Javascript, CSS, imágenes, etc.
Carpeta database
Contiene las alimentaciones y migraciones de la base de datos que veremos más adelante.
Carpeta bootstrap
Permite el sistema de arranque de Laravel, es otra carpeta que en principio no necesitamos tocar.
Carpeta config
Esta carpeta contiene toda una serie de archivos de configuración. La configuración de los
componentes del framework se hace por separado, por lo que encontraremos muchos archivos
PHP con configuraciones específicas de varios elementos que seguramente reconoceremos
fácilmente.
La configuración principal está en app.php y luego hay archivos aparte para configurar la base de
datos, las sesiones, vistas, caché, mail, etc.
Carpeta app
Es la última que nos queda y es la más importante. 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.
Hay estarán todas las vistas que mostraremos en el programa, vamos al archivo
welcome.blade.php
Tratemos de editar alguna línea ejemplo title
Pero todo esto es posible porque laravel llama este archivo desde otro que se llama
ROUTES/web.php
Route::get('/', function () {
return view('welcome');
});
Route::get('/', function () {
Cuando se llame a la dirección raíz
return view('welcome');
retornara una vista llamada “welcome” la cual es la que editamos anteriormente.
NOTA: Blade, el sistema de plantillas de Laravel, el cual nos provee de muchas características que
deberíamos tener en un lenguaje de plantillas, como por ejemplo la capacidad de manejar los
datos de forma automática.
home.blade.php
about.blade.php
contact.blade.php
service.blade.php
Luego de creadas se le crea un título html a cada una para identificarlas
<h1>HOME</h1>
Después de crear las vistas tenemos que crear las rutas que carguen las vistas
nos vamos a
ROUTES/web.php
Cambiamos la dirección de la ruta, remplazamos welcome por home y creamos las otras tres
Route::get('/', function () {
return view('home');
});
Route::get('about', function () {
return view('about');
});
Route::get('service', function () {
return view('service');
});
Route::get('contact', function () {
return view('contact');
});
IMPORTANTE
Es fundamental guardar los cambios en las vistas, se reinicia el servidor “algunas veces” y nos
debe mostrar la palabra home en la página (está configurado al cargar el raíz retorne la vista
home)
RESOURCES/VIEWS/home.blade.php
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="about">About</a></li>
<li><a href="service">Service</a></li>
<li><a href="contact">Contact</a></li>
</ul>
</nav>
lo ideal es que esté disponible en todas las paginas pero no se debe repetir código para eso
utilizamos el poder de .blade
Primero creamos una vista nueva que es la que va a tener la navegación (MENU) llamada
layout.blade.php y le pegamos la navegación echa en home. Será una vista padre
Dentro de layout.blade.php , después del código de navegación (MENU) se utiliza una directiva de
Blade llamada @yield('content')
Con este código le estamos diciendo que layout será padre y que todo lo que se coloque acá
puede ser utilizado donde queramos
<h1>home</h1>
Este último paso lo realizamos para las otras páginas y listo tendremos las páginas con navegación
con la funcionalidad de .blade
La próxima guía será para realizar el mismo ejercicio, pero con una platilla, se tendrá una de
prueba.