Я использую Laravel 5, и я не совсем понимаю, где размещать файлы признаков в структуре каталогов Laravel 5. Должны ли они существовать в общественных местах, ресурсах или любом другом каталоге?
Где разместить черты в Laravel 5?
Ответ 1
С точки зрения размещения вы должны рассматривать такие черты, как классы. Это означает, что они помещаются в каталог app
. Там, где вы размещаете свои черты, зависит от ваших предпочтений и от фактической цели этой черты.
Важно то, что вы настраиваете пространство имен этого признака на структуру каталогов. Например, если ваша черта имеет какое-то отношение к вашим контроллерам, и вы решили поместить ее в папку app/Http/Controllers
, убедитесь, что она имеет правильное пространство имен, которое будет:
namespace App\Http\Controllers;
Ответ 2
Я предпочитаю создавать каталог в приложении под названием Traits. Это улучшит читаемость и удобство обслуживания базы кода.
Пример:
namespace App\Traits;
use Exception;
use Illuminate\Http\Request;
trait myTrait {
//your code here
}
Ответ 3
Вы можете разместить черту в любом месте. Но с точки зрения размещения вы должны настроить пространство имен этого признака на структуру каталогов.
Например: вы хотите создать каталог "Черты" 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();
}
}
Ответ 4
Хранение черт
Для удобства создайте каталог под app
с именем Traits
и поместите туда мои пользовательские файлы PHP. Каждый файл использует имя Черты для логической корреляции. Используя пространство имен App/Traits
в каждом файле, Framework смогла найти мои файлы, когда я use
поместил их в другой файл.
Пример кода использования:
<?php
namespace AppJobs;
use App/Jobs/Job;
use App/Traits/ExampleCode;
/**
* brief Example code using a Trait in a Laravel "Job"
*/
class AdminLoginJob extends Job implements SelfHandling
{
use ExampleCode;
/**
* Call trait to print something. Note the use of "$this".
*
* @return void
*/
public function __construct()
{
$this->printThis();
}
/**
* Do more stuff here.
*
* @return void
*/
public function handle()
{
// never gets called in this example.
}
}