Laravel Alias ​​не находит класс

Я пытаюсь зарегистрировать псевдоним для класса, но 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();
в моем контроллере я могу использовать класс, так что я знаю, что он был загружен вызывающе

7

Решение

Первый забег 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

9

Другие решения

php artisan config:clear

Может также помочь. Если вы ранее кэшировали файлы конфигурации с config:cache так как псевдонимы определены в конфиге приложения.

7

По вопросам рекламы [email protected]