У меня есть следующие файлы
1) Класс называется Helper
class Helper
{
public static function a(){
//
}
}
2) Черта SpecialTrait
Trait SpecialTrait
{
public function b(){
Helper::a();
}
}
3) Расширение класса контроллера Контроллер называется UserController
use path\to\Helper;
use path\to\SpecialTrait
class UserController extends Controller
{
use SpecialTrait;
public function c(){
$this->b();
}
}
Когда программа запускается и вызывается function c()
, который предназначен для вызова trait function b()
, который использует helper class static function a()
Это не работает, только Исправлена проблема с использованием вспомогательного класса в файле признаков.
use path\to\Helper;
Trait SpecialTrait
{
public function b(){
Helper::a();
}
}
Мой вопрос заключается в том, что, согласно моему пониманию признаков, функции признаков копируются и вставляются во время выполнения, и если это так trait function b()
не сможет видеть или иметь вспомогательный класс в своей области, вместо того, чтобы требовать его импорта / использования в своем собственном файле.