web-dev-qa-db-ja.com

laravel 5?

私はlaravel 5を使用していますが、特性ファイルをlaravel 5ディレクトリ構造に配置する場所について混乱しています。他のディレクトリ?

50

配置に関しては、特性をクラスのように扱う必要があります。これは、それらをappディレクトリ内に配置することを意味します。特性をそこに配置する場所は、好みと特性の実際の目的によって異なります。

重要なのは、特性の名前空間をディレクトリ構造に合わせて調整することです。たとえば、トレイトがコントローラーと関係があり、app/Http/Controllersフォルダー内に配置することにした場合、正しい名前空間があることを確認してください。

namespace App\Http\Controllers;
62
lukasgeiter

アプリにTraitsというディレクトリを作成することを好みます。これにより、コードベースの可読性と保守性が向上します。

例:

namespace App\Traits;

use Exception;
use Illuminate\Http\Request;

    trait myTrait {
    //your code here
    }
11
User123456

あなたが望む場所に特性を置くことができます。しかし、配置に関しては、ディレクトリ構造に合わせて特性の名前空間を調整する必要があります。

例:Traitsディレクトリを作成したいTraits >> SayHello.php

アプリ>> Http >>コントローラー>>特性>> SayHello.php

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

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

アプリ>> Http >>コントローラー>> 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();
        }
  }