web-dev-qa-db-fra.com

Où placer les traits dans laravel 5?

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?

50

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;
62
lukasgeiter

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
    }
11
User123456

Vous pouvez placer le trait où vous voulez. Mais en termes de placement, vous devez ajuster l'espace de noms du trait à la structure du répertoire.

Par exemple: Vous souhaitez créer un répertoire Traits Traits >> SayHello.php.

application >> Http >> Contrôleurs >> Traits >> SayHello.php

  <?php
  namespace App\Http\Controllers\Traits; 

  trait SayHello{
        public function hello()
        {
              return "Hello";
        }
  }

application >> Http >> Contrôleurs >> HomeController.php

  <?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();
        }
  }
5