PHP / Laravel получают последнее слово в имени класса: App \ Models \ Example \ Class; и строчные: класс - PullRequest
0 голосов
/ 15 января 2019

Кто-нибудь видит более простой / понятный способ сделать это? У меня есть полиморфные типы, которые хранятся как полное имя класса, и мне нужно получить доступ к последнему слову в классе и использовать его в нижнем регистре, чтобы найти файл конфигурации:

Пример: $this->ant_type = App\Models\AntTypes\Request

$antTypeArray = explode('\\', $this->ant_type);
$workflow = strtolower(array_values(array_slice($antTypeArray, -1))[0]);

Это, безусловно, работает нормально, просто любопытно, есть ли еще более простой способ сделать это. Я использую Laravel 5.7.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Я думаю, что вы можете сделать это с PHP ReflectionClass.

$workflow = strtolower((new \ReflectionClass($this->ant_type))->getShortName());
0 голосов
/ 15 января 2019

Найдите последний \ и возьмите подстроку от этой точки + 1 до конца строки:

strtolower(substr($str, strrpos($str, '\\') + 1))

Код для краткости, но выдает E_NOTICE

strtolower(end(explode('\\',$str)))
...