Answer the question
In order to leave comments, you need to log in
How to create an object with only the class name?
Here is an example code:
class App {
public function show (){
return 'Hello';
}
}
// .... получили в переменную $name название класса
$name = 'App';
// Я знаю что статический метод можно вызвать следующим образом
$class = call_user_func("$name::show");
// Но так как метод у меня не статический,
// Как можно создать объект, что бы вызвать опр. метод?
// Этот вариант работает
$class = new $name ();
$class->show();
// Такое ощушение что это не правильный подход (говно код), какие есть решения?
Answer the question
In order to leave comments, you need to log in
Why govnokod. It's a scripting language, dynamic typing. If there is a need, then why not. The question is in architecture, maybe you should not use a dynamic class at all?
PS. There is also Reflection in PHP. Perhaps it will seem less "shit code" to you.
Try the service locators. Pimple, for example.
Put a class in it according to some alias, and then get it.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question