Header Ads Widget

Ticker

6/recent/ticker-posts

Laravel File Structure

 estructura de archivo laravel

Cuando trabajamos en aplicaciones y sitios web, generalmente seguimos algún tipo de convención para organizar archivos y activos que respaldan el sitio. Es posible que esté familiarizado con el funcionamiento de Codeigniter, CakePHP o sus propias soluciones caseras. La arquitectura MVC ha sido el estándar de diseño de facto desde hace algún tiempo. Por supuesto, MVC es nuestro patrón de diseño de modelo, vista y controlador que separa los datos, la presentación y el enrutamiento para facilitar el control. En el pasado, nos enfocamos en construir modelos gordos, mientras manteníamos los controladores y las vistas muy delgados. En otras palabras, la mayor parte de nuestra lógica de procesamiento se metió en un modelo y, a veces, esto puede resultar difícil de administrar. Entonces, ¿cómo maneja Laravel esto? Bueno, todavía tenemos modelos, vistas y controladores en Laravel, pero existe un gran grado de flexibilidad en cuanto a cómo puede organizar sus proyectos. La idea es dividir la lógica intrincada en componentes y usos pequeños y enfocados php y el compositor se cargan automáticamente para manejar el resto. Echemos un vistazo a un ejemplo de cuántos desarrolladores están estructurando sus proyectos ahora.

Comience con una carpeta en el directorio de aplicaciones

Imaginemos que estamos creando una nueva aplicación web. Por donde comenzamos Podemos comenzar creando un nuevo proyecto en Laravel así: php laravel.phar new lfsy esto simplemente creará un nuevo proyecto de Laravel para nosotros. Elegimos lfs para Laravel File Structure, pero no dudes en nombrar el tuyo como quieras. Esto nos dará un punto de partida para conocer el proyecto que contiene
nuestras appbootstrappublic, y vendorcarpetas. Navegar en la appcarpeta y verá el commandsconfigcontrollersdatabaselangmodelsstartstoragetests, yviews, carpetas. Es dentro de esta carpeta de la aplicación donde podemos colocar un directorio raíz, por así decirlo, o un contenedor a nivel de dominio para todo lo relacionado con su sitio. Esta carpeta normalmente lleva el nombre de su dominio, sitio web o nombre de la aplicación. Usaré Vegibit para este ejemplo.

Complete la carpeta de su dominio

En este punto, tiene una carpeta dedicada para guardar todos sus archivos que ayudarán a impulsar su aplicación. Podemos pensar en toda la lógica que pueda necesitar para su aplicación y agrupar estas cosas en sus propias subcarpetas aquí. Lo que estamos haciendo es sentar las bases para un espacio de nombres limpio para que la carga automática sea fácil. Para este ejemplo podemos añadir carpetas como BillingExceptionsHandlersMailersRepositoriesServices, y UtilitiesEse es un buen punto de partida.

Mueva sus modelos

¡Opcional! Este paso es opcional, pero parece ser popular en este momento. Cuando creamos una nueva aplicación Laravel, se genera una carpeta de modelo para contener todos nuestros modelos Eloquent. También obtenemos un buen User.php modelo para comenzar con el sistema de autenticación Laravel . Lo que podemos hacer aquí es tomar cualquier modelo que exista en la carpeta del modelo y moverlo a la raíz de nuestra nueva carpeta de nivel de dominio. Entonces, en nuestro caso, pasaremos User.php a la carpeta Vegibit. Incluso puede eliminar la carpeta de modelos antiguos una vez que esto esté completo si lo desea.

Agregue sus interfaces e implementaciones

A Laravel le gusta hacer uso de principios de diseño SÓLIDOS. El alcance completo de eso es para otro episodio, pero basta con decir que usaremos las interfaces y sus implementaciones aquí. Siguiendo este proceso, podemos crear cualquier parte de la aplicación que necesitemos. Podemos comenzar creando algo que pueda manejar nuestra facturación. Dado que estos archivos se ocupan de la facturación, colóquelos en la Billing carpeta que acabamos de crear anteriormente.

  1. Crea tu interfaz
    La interfaz de Laravel es un contrato que especifica los métodos que se utilizarán en la implementación de esa interfaz. ¡No olvide incluir su espacio de nombres! Podemos crear una interfaz de facturación como esta:

    BillingInterface.php

  2. Cree su implementación
    La interfaz en realidad no hace nada, solo establece el contrato. Ahora tenemos que crear un código que realmente hará el trabajo por nosotros. Imaginamos que estamos usando Paypal para manejar la facturación en esta aplicación. Nuevamente, ¡no olvide incluir su espacio de nombres en la parte superior del archivo!

    PaypalBilling.php

  3. Actualizar Composer a Autoload
    Necesitamos actualizar nuestro composer.json para que estas nuevas clases se carguen automáticamente. Usaremos psr-4en este caso. Aquí está nuestra actualización composer.json

    ¡Alerta! Tenga en cuenta la convención de cómo psr-4 difiere de psr-0. Con psr-4 debemos incluir las barras invertidas dobles al final del espacio de nombres de Vegibit, además de especificar el espacio de nombres de Vegibit como parte de la carpeta de la aplicación, así"Vegibit\": "app/Vegibit" también notará que eliminamos modelos del mapa de clases. Ejecutarcomposer dumpen la línea de comando.

  4. Pruebe el nuevo código
    ¡Ahora podemos agregar un simple fragmento a nuestro archivo route.php para probar nuestro nuevo software!

    Cuando visitemos ahora http://localhost/lfs/public/billuser, podemos ver que nuestro código de facturación funciona correctamente y muestra, "Facturar al usuario con Paypal"

El Laraway

Veo lo que hiciste allí, Laraway en lugar de Takeaway. Con Laravel, en lugar de intentar forzar todo en sus modelos, puede crear su propio espacio de nombres dedicado dentro de la carpeta de su aplicación. Una vez que lo tenga en su lugar, puede crear tantas carpetas como necesite para manejar todas las cosas que su aplicación deberá hacer. Siempre que mantenga sus declaraciones de espacio de nombres y el archivo composer.json configurados correctamente, todo funcionará para usted. Muy genial de hecho!

Publicar un comentario

0 Comentarios