我正在查看WordPress的Themosis框架,并在他们的文档中看到,要创建自定义帖子类型,您可以调用:
PostType::make('slug-books', 'Books', 'Book')->set();
我假设PostType
一定是一个具有静态函数make
的类。但是,查看他们的代码,我发现没有PostType
类。
他们如何能够调用不存在的类中的函数?
我可以看到 Application
类在调用时如何使用它们来存储instances
类,但我看不出上面的代码将如何触发类创建。
我是Themosis框架背后的开发人员。这个"技巧"受到所有学分的Laravel框架的高度启发。
我们正在使用立面图案来使其正常工作。基本上我们使用PHP魔术方法__callStatic(),后面我们让它将静态方法链接到实例方法。
在此处查看文档:http://php.net/manual/en/language.oop5.overloading.php#object.callstatic