Я взглянул на структуру Themosis для WordPress и увидел в своих документах, что для создания настраиваемого типа сообщений вы бы назвали:
PostType::make('slug-books', 'Books', 'Book')->set();
Я предположил, что PostType
должен быть классом со статической функцией make
. Однако, глядя на их код, я не PostType
класса PostType
.
Как они могут вызывать функцию в классе, который не существует?
Я могу видеть, как класс Application
используется для хранения instances
классов при их вызове, но я не вижу, как приведенный выше код запускает создание классов.
Я разработчик платформы Themosis. Этот "трюк" очень вдохновлен рамкой Laravel, где все кредиты.
Мы используем шаблон фасада для того, чтобы это работало. В основном мы используем магический метод PHP __callStatic(), а за ним привязываем статический метод к методу экземпляра.
Проверьте документацию здесь: http://php.net/manual/en/language.oop5.overloading.php#object.callstatic