J'utilise laravel 5 et je ne sais pas où placer les fichiers de traits dans la structure de répertoires laravel 5. Devraient-ils exister en public, dans les ressources ou dans tout autre autre répertoire?
En termes de placement, vous devez traiter les traits comme les classes. Cela signifie les mettre dans le répertoire app
. L'endroit où vous placez vos traits dépend de vos préférences et du but réel du trait.
Il est important que vous ajustiez l'espace de noms du trait à la structure du répertoire. Par exemple, si votre trait a quelque chose à voir avec vos contrôleurs et que vous décidez de le mettre dans le app/Http/Controllers
dossier, puis assurez-vous qu'il a le bon espace de noms, qui serait:
namespace App\Http\Controllers;
Je préfère créer un répertoire dans l'application appelé Traits. Cela améliorera la lisibilité et la maintenabilité de la base de code.
Exemple:
namespace App\Traits;
use Exception;
use Illuminate\Http\Request;
trait myTrait {
//your code here
}
Par exemple: Vous souhaitez créer un répertoire Traits Traits >> SayHello.php
.
<?php
namespace App\Http\Controllers\Traits;
trait SayHello{
public function hello()
{
return "Hello";
}
}
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Controllers\Traits\SayHello;
class HomeController extends Controller {
use SayHello;
public function index()
{
// Called SayHello trait hello method
return $this->hello();
}
}