Header Ads Widget

Ticker

6/recent/ticker-posts

Carga automática para la organización del código

 compositor autoload


La carga automática nos ayuda a organizar nuestro código de forma limpia. Esto facilita la comprensión de cómo encajan todas las piezas. De hecho, iría tan lejos como para decir que la organización del código es la mitad de la batalla. Con la introducción de Composer a la comunidad PHP, ahora tenemos una forma de manejar la organización del código como nunca antes. Como sabemos, Composer es The Dependency Manager para PHP. Además de la gestión de dependencias, Composer también nos proporciona una carga automática eficiente. Exploraremos la carga automática en este tutorial ahora.


En nuestro tutorial de inyección de dependencia para principiantes , creamos un conjunto de clases para ayudarnos a ganar el campeonato mundial de FIFA Soccer. Teníamos un país, algunos jugadores, un equipo y muchos métodos y propiedades de apoyo para lograr nuestro objetivo. De hecho, construimos nuestra pequeña aplicación en un estilo procedimental de arriba hacia abajo. Es decir, teníamos un gran archivo PHP que se parecía a esto.

  • Clase 1
  • Clase 2
  • Clase 3
  • Código cliente / Implementación de clases.

Esto es perfecto para aplicaciones de estilo de aprendizaje y tutorial. Podemos ver muy rápidamente todo lo que está sucediendo en un simple archivo PHP. Sin embargo, si desea crear una aplicación más grande, este enfoque comenzará a fallar con bastante rapidez. Tal vez tenga diez o quince clases para tener en cuenta y muchas líneas de código en su cliente para implementar. Un archivo PHP no lo va a cortar en este caso. La convención es en realidad crear una clase por archivo PHP. A partir de ahí, su cliente puede incluir las clases necesarias o cargarlas automáticamente para su uso. Intentemos dividir nuestra aplicación anterior en una organización adecuada con carga automática.


El /rootdirectorio

Podemos comenzar con el directorio raíz. En este directorio, tendremos nuestro código de cliente en el index.phparchivo, además de un sourcedirectorio que contiene nuestras clases. Dentro del sourcedirectorio se encuentran los siguientes tres archivos.

/root/source/Country.php

/root/source/Player.php

/root/source/Team.php

/root/index.php

En nuestro directorio raíz también tenemos nuestro código de cliente que se ve así.

Cuando intentamos ejecutar nuestro programa, ¡las cosas no se ven bien!

Error fatal: la clase 'Equipo' no se encuentra en C: \ wamp \ www \ root \ index.php en la línea 3

include los archivos de clase necesarios

Puede que estés pensando, bueno, eso es una solución fácil. Solo necesitamos incluir los archivos de clase necesarios como tal.

Cuando ejecutamos esto, todo funciona bien.

incluir archivos de clase

Sin embargo, hay una forma mejor y es utilizar la carga automática con Composer. La inclusión manual de archivos no se escalará y generará problemas en el futuro. Veamos cómo solucionar este problema con Composer.


Autocarga con Composer

De aquí en adelante, asumiremos que ya tiene Composer instalado. Si no lo hace, continúe e instale ahora antes de continuar. Con Composer instalado, podemos navegar a la raíz de nuestro proyecto usando la terminal. En nuestro caso es C: \ wamp \ www \ root> Si nunca ha usado Composer antes, simplemente escriba composer para ver lo que está disponible para nosotros.

Necesitamos un composer.json antes que nada, por lo que ese initcomando nos parece bien. Este comando lo guiará por el proceso de creación de un proyecto utilizando un archivo composer.json. Para los propósitos de este tutorial, creará mucho que no necesita, así que una vez que tenga su composer.json, simplemente edítelo para que solo tenga un archivo vacío que contenga los caracteres { y } , luego ejecute composer install lo que generará el autoload.php que necesitamos. De hecho, ahora se crean algunas cosas en nuestro proyecto, veamos.


/raíz

Tenga en cuenta que ahora tenemos un vendordirectorio en nuestro root.
directorio raíz

 


/ root / vendedor

Así como un archivo autoload.php recién creado
archivo de carga automática

 


/ root / vendor / composer

Y finalmente, varios archivos de soporte para Composer.
directorio del redactor del proveedor raíz

 


¡Mirad! ¡El archivo de carga automática!

Configurar PSR4

Casi estámos allí. Primero necesitamos configurar el archivo composer.json para la carga automática de PSR4.

Una vez que declare su espacio de nombres, deberá ejecutarlo composer dump-autoloadpara generar los archivos de carga automática adecuados. Veamos.

autoload_psr4.php

Incluir el autocargador

Recuerde que el index.php archivo vive en la raíz de nuestro proyecto. Tenga en cuenta que en un paso anterior, simplemente usamos tres declaraciones de inclusión para hacer uso de las tres clases que necesitamos para ejecutar nuestra aplicación. En este punto, ya no estamos usando múltiples declaraciones de inclusión, pero necesitaremos incluir el archivo del cargador automático solo una vez en nuestro código de cliente para que cargue automáticamente cualquier clase que necesitemos. Además, agregaremos use declaraciones para las clases de Equipo, País y Jugador. Podemos actualizar nuestro código de cliente así.

Esto es perfecto, pero cuando intentamos ejecutar nuestra aplicación, obtenemos un error de: Error fatal: la clase 'Myapp \ Team' no se encuentra en C: \ wamp \ www \ root \ index.php en la línea 9 . Esto se debe a que habíamos establecido un espacio de nombres de Myapp. Si declaramos un espacio de nombres a través de PSR4, debemos asegurarnos de actualizar nuestros archivos de clases para hacer uso de esos espacios de nombres.

Actualizar espacios de nombres de clases

Esto es superfácil. Todo lo que tenemos que hacer es agregar namespace Myapp;a la parte superior de nuestros archivos de clase.

/root/source/Country.php

/root/source/Player.php

/root/source/Team.php

Ahora, cuando ejecutamos el código del cliente, volvemos a nuestra forma de ganar campeonatos.
incluir archivos de clase

Resumen de carga automática de Composer

Composer es lo mejor del mundo para los desarrolladores de PHP. En este tutorial, echamos un vistazo a solo un aspecto de lo que hace que Composer sea tan genial, y es su capacidad para generar componentes robustos de carga automática para su aplicación. Con esta habilidad recién descubierta, puede organizar y escalar mejor sus aplicaciones sin importar cuántas dependencias de clase puedan tener.

Publicar un comentario

0 Comentarios