Что-то не так с class_alias - PHP

0

Я пытаюсь использовать class_alias на фасаде \Facades\Security.

Я попробовал это:

class_alias("\\Facades\\Security", "Security");
echo Security::Unique();

Но я получил ошибку (класс "Безопасность" не найден в...).

Странно то, что когда я пробую это:

$facade = "Security";
class_alias("\\Facades\\" . $facade, $facade);
echo $facade::Unique();

Он работает, и я получаю вывод из функции "Уникальный". Так что как-то запоминание имени фасада в переменной и доступ к нему оттуда устраняет проблему...

Может кто-нибудь сказать мне, почему?

Благодаря :)

  • 0
    Уникальный статический?
  • 0
    Да, Уникальный статичен.
Теги:
alias

1 ответ

0

Предположим, вы используете namespace класса name.., поэтому не нужно бежать (\), попробуйте этот код

class_alias("\Facades\Security", "Security");
echo Security::Unique();

Обновить

Вам также необходимо добавить namespace в псевдоним класса B, см. Пример кода

<?php
namespace Facades;

class Security {
 public static function Unique(){
   return "Test return";
 }
}

class_alias("\Facades\Security", "\Facades\B");

echo B::Unique();
?>

DEMO

  • 0
    вниз избиратель любая причина
  • 0
    Если я не избежу обратной косой черты, я получу ошибку.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню