Tutorial 3 Cursos de laravel4 – Estructura del proyecto 24 diciembre, 201324 diciembre, 2013 ArielMax Cursos de PHP 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 Comparte esto:TweetMás Relacionado