Skip to main content

Tutorial 3 Cursos de laravel4 – Estructura del proyecto

INFO

Tutorial #3 del curso de laravel4, en este tutorial veremos la estructura del proyecto de los archivos y carpetas más importantes de laravel echaremos un vistaso a estos, en especial a las carpetas donde trabajaremos de ahora en adelante en nuestro proyecto.

ESTRUCTURA

Estructura del proyecto

Comencemos echando un vistazo a la estructura del directorio raíz.
• app/
• bootstrap/
• vendor/
• public/
• .gitattributes
• .gitignore
• artisan
• composer.json
• composer.lock
• phpunit.xml
• server.php

¿Por qué no vamos sobre cada uno de los elementos? ¡Me parece una gran idea!
app
Lo primero que tenemos es el directorio app. App es usado para ofrecer un hogar por defecto a todo el
código personal de tu proyecto. Eso incluye clases que puedan ofrecer funcionalidad a la aplicación,
archivos de configuración y más. La carpeta app es bastante importante por lo que en vez de hacer
un pobre resumen en un único párrafo, la cubriremos en detalle al final de esta sección. Por ahora,
únicamente es donde están los archivos de nuestro proyecto.
bootstrap
• autoload.php
• paths.php
• start.php
El directorio bootstrap contiene unos pocos archivos que están relacionados con los procedimientos
de inicialización del framework. El archivo autoload.php contiene la mayoría de esos procedimientos
y solo debería ser editado por usuarios experimentados de Laravel.
El archivo paths.php contiene una matriz de las rutas comunes del sistema que son usadas por el
framework. Si por algún motivo decides alterar la estructura de directorios del framework, tendrás
que alterar los contenidos de este archivo para reflejar tus cambios.
El archivo start.php contiene más procedimientos de inicialización para el framework. No quiero
ahondar en esos detalles ahora mismo ya que puede causar confusión innecesaria. En vez de
eso, probablemente deberías apuntar que se pueden establecer los entornos (environments) del
framework aquí. Si no sabes para lo que se usan los entornos, no te preocupes. ¡Lo cubriremos más
adelante!
Dicho sencillamente, los contenidos del directorio bootstrap solo deberían ser editados por usuarios
experimentados de Laravel que necesiten alterar la forma del sistema de archivos del framework. Si
eres nuevo con Laravel ignóralo por ahora, ¡pero no lo borres! Laravel necesita este directorio para
funcionar.
vendor
El directorio vendor contiene todos los paquetes de Composer que son utilizados por tu aplicación.
Por supuesto, esto incluye el paquete del framework de Laravel. Para más información sobre este
directorio, por favor echa un ojo al capítulo sobre Composer.
public
• packages/
• .htaccess
• favicon.ico
• index.php
• robots.txt
El directorio public debería ser la única entrada web de una aplicación Laravel. Normalmente es
donde se encuentran tus archivos CSS, JavaScript e imágenes. Echemos un vistazo más atentamente
a sus contenidos.
El archivo packages será usado para contener cualquier fichero que necesite ser instalado por
paquetes de terceras partes. Se mantienen en un directorio separado para que no creen conflictos
con los ficheros de nuestra propia aplicación.
Laravel 4 viene con un archivo .htaccess para servidores Apache. Contiene algunas directivas de
configuración estándar que tendrán sentido para la mayoría de los usuarios del framework. Si usas
un servidor web alternativo puedes ignorar o borrar este archivo.
Por defecto, los navegadores web intentarán buscar en la raíz de un sitio para encontrar un archivo
favicon.ico. Este es el archivo que controla la pequeña imagen de 16 x 16px que se muestra en las
pestañas de tu navegador. El problema es que cuando el archivo no existe, al servidor web le gusta
quejarse sobre ello. Esto causa entradas en el log innecesarias. Para contrarrestar este problema,
Laravel da un archivo favicon.icon en blanco, que puede ser reemplazado más tarde si se desea.
El archivo index.php es el controlador frontal del framework de Laravel. Es el primer archivo
que el servidor web ejecuta cuando llega una petición del navegador. Es el archivo que lanzará la
inicialización del framework y comenzará a pasar la pelota. No borres este archivo, ¡no sería buena
idea!
Laravel ha incluido el archivo robots.txt que permite todos los hosts por defecto. Esto es por tu
bien, puedes modificar este archivo como creas necesario.
.gitattributes
Laravel ofrece algunos ajustes por defecto para control de versiones con Git. Git es el sistema de
control de versiones más popular. Si no pretendes usar tu proyecto con Git, puedes borrar este
archivo.
.gitignore
El archivo .gitignore contiene algunos ajustes para informar a Git de qué carpetas no debería
controlar. Ten en cuenta que éste incluye tanto el directorio vendor como el directorio storage. El
directorio vendor ha sido incluído para evitar que se controlen paquetes de terceras partes.
El archivo composer.lock también está incluido aunque puede que quieras borrar esta entrada para
instalar las mismas versiones de dependencias de tu entorno de desarrollo. Descubrirás más sobre
esto en el capítulo sobre Composer.
artisan
El archivo artisan es un ejecutable que es usado para ejecutar la interfaz de línea de comandos
Artisan para Laravel. Artisan contiene un buen número de comandos útiles para ofrecer atajos
o funcionalidad adicional al framework. Cubriremos estos comandos en detalles en un capítulo
posterior.

composer.json y composer.lock
Tanto composer.json como composer.lock, contienen información sobre los paquetes de Composer
usados por este proyecto.
phpunit.xml
El archivo phpunit.xml ofrece configuración por defecto para las pruebas unitarias de PHPUnit.
Gestionará la carga de dependencias de Composer y ejecutará cualquier prueba ubicada en la
carpeta app/tests. Revelaremos información sobre las pruebas en Laravel en un capítulo posterior,
¡permanece atento!
server.php
@todo: Esto necesita más investigación
El directorio de la aplicación
Aquí es donde tu aplicación toma forma. Es el directorio en el cual pasarás la mayor parte de tu
tiempo. Por este motivo, ¿por qué no os conocéis mejor?
• commands/
• config/
• controllers/
• database/
• lang/
• models/
• start/
• storage/
• tests/
• views/
• filters.php
• routes.php
commands
Este directorio contiene cualquier comando personalizado de Artisan que pueda necesitar tu
aplicación. Como verás, Artisan no solo ofrece funcionalidad por defecto para ayudarte a construir
tu proyecto, si no que también te ofrece la oportunidad de crear tus propios comandos para hacer
cosas.
config
La configuración tanto para el framework como para tu aplicación se mantiene en este directorio.
La configuración de Laravel existe como un conjunto de archivos PHP que contienen matrices
Empezando 51
clave-valor. Este directorio también contiene sub-directorios que permiten distintas configuraciones
cargadas en diferentes entornos.
controllers
Como el nombre sugiere, este directorio contendrá tus controladores. Los controladores pueden ser
usados para facilitar lógica a la aplicación, y hacer de pegamento entre las partes separadas de tu
aplicación. Este directorio ha sido añadido al archivo composer.json por defecto para la auto carga
de clases.
database
Si escoges una base de datos como método para guardar cosas a largo plazo, este directorio sera
usado para contener los archivos que crearán el esquema de tu base de datos, y los métodos para
completarla con datos de ejemplo. La base de datos por defecto en SQLite también está ubicada en
este directorio.
lang
El directorio lang contiene archivos PHP con matrices de cadenas que pueden ser usados para dar
soporte de traducción a tu aplicación. Se pueden crear sub carpetas por región para que tengas
distintos ficheros para múltiples idiomas.
models
Este directorio contendrá tus modelos. ¿Sorprendido? Los modelos son usados para representar el
modelo de negocio o facilitar interacción con el almacenamiento. ¿Confundido? No te preocupes,
cubriremos los modelos con más detalle en un capítulo posterior. Debes saber que hay un modelo
User para ofrecerte autenticación en la aplicación por defecto. Al igual que el directorio controllers,
este ha sido añadido a la sección de carga automática del archivo composer.json por defecto.
start
Mientras que el directorio bootstrap contiene los procedimientos de arranque que pertenecen al
framework, el directorio start contiene procedimientos de arranque que pertenecen a tu aplicación.
Como siempre, se ofrecen algunos por defecto.
storage
Cuando Laravel necesita escribir algo en el disco, lo hace en el directorio storage. Por este motivo
tu servidor web debe poder escribir en esta ubicación.
tests
El directorio tests contiene todas las pruebas unitarias y de aceptación para tu aplicación. La
configuración por defecto de PHPUnit que ha sido incluida por Laravel buscará pruebas en este
directorio por defecto.
views
El directorio views es usado para contener las plantillas visuales de tu aplicación. Se facilita una
vista hello por defecto para tu conveniencia.
filters.php
El archivo filters.php es usado para contener cualquier filtro de rutas de tu aplicación. Descubrirás
más sobre los filtros en un capítulo futuro.
routes.php
El archivo routes contiene todas las rutas de tu aplicación. ¿No sabes lo que son las rutas? Bueno,
no malgastemos más tiempo. ¡Hacia el próximo capítulo!
Enrutado

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *