Antes que te vayas
Inscríbete en nuestro curso gratuito de Laravel
En Laravel 5, todo el contenido de la carpeta app
se carga de forma automática usando PSR-4.
Esto lo podemos ver en el archivo composer.json
:
"psr-4": {
"App\\": "app/"
}
Esto significa que podemos crear nuestras clases dentro de app
, y éstas serán reconocidas inmediatamente (incluso si no se trata de un modelo, controlador, middleware, evento, etcétera).
Por ejemplo, puedo crear un archivo en la siguiente dirección:
app/Custom/MyClass.php
Sólo debo asegurarme de usar el namespace adecuado dentro de MyClass.php
:
<?php namespace App\Custom;
class MyClass
{
/* métodos y/o atributos */
}
Y eso es todo. Ahora puedo usar esta clase desde cualquier contexto.
Por ejemplo, si lo quiero usar desde un controlador, entonces en la parte superior añadiría:
use App\Custom\MyClass;
A tener en cuenta:
Por cierto: no estamos limitados a la carpeta app
.
Es decir, podemos tener muchas carpetas aquí, en distintos niveles. Pero si de pronto nuestra aplicación crece mucho y queremos organizar todo en base a módulos (u otro enfoque), podemos crear carpetas al mismo nivel que la carpeta app.
Para ello hemos de aplicar PSR-4 a estas nuevas carpetas. Por ejemplo:
"psr-4": {
"App\\": "app/",
"Blog\\": "blog/",
"Dashboard\\": "dashboard/"
}
Y así dentro de blog
y dashboard
podríamos tener carpetas para nuestros modelos, servicios, interfaces, etcétera.
En este último caso, será necesario ejecutar composer dump-autoload
.
CvHandler.php
al interior de esta carpeta.composer.json
:
"psr-4": {
"App\\": "app/",
"Tawa\\": "tawa/"
}
Definí la clase CvHandler
del siguiente modo:
<?php namespace Tawa\Services;
class CvHandler
{
public function sayHello()
{
return 'hi';
}
}
composer dump-autoload
.php artisan tinker
), para verificar que funcione la nueva clase.Este paso 6 demuestra que lo que hicimos es factible, y nuestras clases estarán disponibles en nuestro proyecto siempre que usemos el namespace adecuado.
Aprende Laravel desde cero y desarrolla aplicaciones web reales, en tiempo récord, de la mano de Laravel.
Ingresar al cursoVeamos cómo implementar un login mediante redes sociales! Aprende y aplica esto sobre cualquier proyecto Laravel.
Ingresar al cursoDesarrollemos un Messenger! Aprende sobre Channels, Queues, Vuex, JWT, Sesiones, BootstrapVue y mucho más.
Ingresar al cursoInscríbete en nuestro curso gratuito de Laravel
Cargando comentarios ...