Функция class_basename
Функция class_basename применяется для получения базового имени класса из полного имени с пространством имён. Она принимает один параметр - имя класса или объект, и возвращает строку с коротким именем класса без указания пространства имён. Функция удобна для вывода имени класса в логах, сообщениях об ошибках и для формирования ключей кэша.
Синтаксис
<?php
class_basename($class);
?>
Пример
Давайте получим базовое имя класса из полного пространства имён:
<?php
use AppModelsArticle;
$res = class_basename(Article::class);
echo $res;
?>
Результат выполнения кода:
"Article"
Пример
Передадим в функцию объект класса вместо строки с именем:
<?php
use AppModelsArticle;
$article = new Article();
$res = class_basename($article);
echo $res;
?>
Результат выполнения кода:
"Article"
Пример
Используем функцию для логирования с указанием класса, где произошло событие:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateSupportFacadesLog;
class ArticleController extends Controller
{
public function index()
{
$articles = Article::all();
$className = class_basename($this);
Log::info($className . ': articles loaded', ['count' => $articles->count()]);
return view('articles.index', ['articles' => $articles]);
}
}
?>
После выполнения кода в лог-файл будет записано сообщение:
"ArticleController: articles loaded"
Пример
Используем функцию для формирования ключа кэша на основе имени класса:
<?php
use AppModelsUser;
use IlluminateSupportFacadesCache;
$class = User::class;
$cacheKey = 'cache_' . class_basename($class) . '_list';
$res = Cache::remember($cacheKey, 3600, function () {
return User::all();
});
?>
Смотрите также
-
функция
data_get,
которая извлекает значение из массива по "точечному" пути -
функция
config,
которая получает значение из конфигурационных файлов -
функция
app,
которая возвращает экземпляр контейнера или разрешает класс -
функция
class_basename,
которая возвращает базовое имя класса