在laravel 5中放置特征的位置?

Muh*_*war 50 php traits laravel-5

我正在使用laravel 5,我对在laravel 5目录结构中放置traits文件的位置感到困惑.它们是否应该存在于公共,资源或任何其他目录中?

luk*_*ter 63

在安置方面,你应该像对待类一样对待特征.这意味着将它们放在app目录中.您在哪里放置您的特征取决于您的偏好和特征的实际目的.

重要的是您将特征的名称空间调整为目录结构.例如,如果您的特征与控制器有关,并且您决定将其放在app/Http/Controllers文件夹中,那么请确保它具有正确的命名空间,即:

namespace App\Http\Controllers;
Run Code Online (Sandbox Code Playgroud)


Use*_*456 12

我更喜欢在应用程序中创建名为Traits的目录.这将增强代码库的可读性和可维护性.

例:

namespace App\Traits;

use Exception;
use Illuminate\Http\Request;

    trait myTrait {
    //your code here
    }
Run Code Online (Sandbox Code Playgroud)


Ras*_*gor 5

您可以在任意位置放置特征。但是就位置而言,您应该将特征的名称空间调整为目录结构。

例如:您要创建一个Traits目录Traits >> SayHello.php

应用>> Http >>控制器>>特性>> SayHello.php

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

  trait SayHello{
        public function hello()
        {
              return "Hello";
        }
  }
Run Code Online (Sandbox Code Playgroud)

应用>> 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();
        }
  }
Run Code Online (Sandbox Code Playgroud)