1
我写API实现,我的主要API类有__call()魔术方法:延迟加载,我正在做对吗?
public function __call($name, $params)
{
if (in_array($name, $this->resources))
{
require_once APPPATH . 'resources' . DIRECTORY_SEPARATOR . $name . '.php';
$class_name = ucfirst($name);
return new $class_name($params);
}
}
所以在我的应用程序基本上,如果我写
$api->product()->get($product_id);
// or
$api->product()->post($product);
资源/ product.php文件包括,创建产品对象并调用适当的方法。这是一个做延迟加载的正确方法吗?有没有更好的方法来实现API?
您可以使用PHP的本地自动加载功能更加简化它,请参阅http://php.net/manual/en/language.oop5.autoload.php –
您不仅可以用@Peka的建议来简化此操作,但你*应该*确实这样做,因为集中式自动加载器更容易维护。 – Gordon
我正在使用的框架已经自动加载,我不觉得修改它很舒服。 – arnaslu