Создание имени класса из переменной

Я хотел бы определить имя класса, используя переменные в PHP. Это возможно?

Позволь мне объяснить.

Я небольшой пользовательский CMS, который позволяет конечному пользователю настроить префикс для имен таблиц. Таким образом, пользователь может определить префикс, такой как «rc_». Проблема в том, что у меня много моделей, которые используют имя таблицы в качестве класса. Например, если одна из моих таблиц – rc_posts , модель будет вызвана

 class MyModel_Rc_posts extends MyModelController { // code here } 

Есть ли способ определить класс с использованием переменных в PHP БЕЗ использования eval() например:

 class MyModel_{$PREFIX}posts extends MyModelController { // code here } 

Причина, по которой я хочу избежать eval, заключается в том, что некоторые из этих классов могут стать довольно длинными. Предложения оценены.

Взгляните на class_alias – это должно помочь вам сделать это даже читаемым!

Чтобы это было ясно: вы создаете свой класс с «нормальным» именем, а затем добавляете псевдоним по требованию. Имя псевдонима может быть любой строкой, включая строку, хранящуюся в переменной.

редактировать

Хотя я думаю, что class_alias() – это путь, вот пример того, как это сделать без него.

Из вашего OQ:

 class MyModel_Rc_posts extends MyModelController { // code here } 

Теперь

 eval("class MyModel_{$PREFIX}posts extends MyModel_Rc_posts {};"); 

должен сделать что-то очень похожее на class_alias() .

Если вам понадобится get_class() позже – в aliased-классе, это даст вам исходное (статическое) имя класса, а не псевдоним. С уродливым eval() / extends трюком вы получаете динамическое имя.