Я пытаюсь зарегистрировать псевдоним для класса, но Laravel не может найти класс, я могу ссылаться на класс непосредственно в моем контроллере, поэтому я знаю, что он загружен правильно.
вот мой код:
'aliases' => array(
'FrontendAssets' => 'Lib\FrontendAssets',
)
класс, который я пытаюсь сделать псевдоним для
class FrontendAssets
{
/**
* Styles array to include on every admin page
* @var array
*/
protected static $styles = [];
/**
* Scripts array to include on every admin page
* @var array
*/
protected static $scripts = [];
public static function styles()
{
return static::assets(static::$styles);
}
public static function addStyle($style)
{
static::$styles[] = $style;
}
public static function scripts()
{
$scripts = static::assets(static::$scripts);
return $scripts;
}
public static function addScript($script)
{
static::$scripts[] = $script;
}
/**
* @param $assets
* @return array
*/
public static function assets($assets)
{
return array_map(function ($asset)
{
return $asset;
}, array_unique($assets));
}
}
Это то, что я пытаюсь вызвать в моем контроллере
FrontendAssets::assets();
Я попытался добавить пространства имен, но все еще не радость.
Если я использую \FrontendAssets::assets();
в моем контроллере я могу использовать класс, так что я знаю, что он был загружен вызывающе
Первый забег composer dump-autoload
чтобы убедиться, что класс можно найти.
Теперь, когда у вас есть контроллер в пространстве имен, например:
<?php
namespace App\Http\Controllers;
class YourController {
}
если вы хотите получить доступ FrontendAssets
класс нужно добавить ведущий обратный слеш, так FrontendAssets::assets();
не будет работать, но \FrontendAssets::assets();
буду работать.
Вы также можете импортировать этот класс:
<?php
namespace App\Http\Controllers;
use FrontendAssets;
class YourController {
}
и теперь вы сможете использовать FrontendAssets::assets();
, Если неясно, возможно, вам стоит поискать объяснение Как использовать объекты из других пространств имен и как импортировать пространства имен в PHP
php artisan config:clear
Может также помочь. Если вы ранее кэшировали файлы конфигурации с config:cache
так как псевдонимы определены в конфиге приложения.