Я пишу реализацию 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);
Включен файл resources / product.php, создан объект Product и вызван соответствующий метод. Это правильный способ выполнить отложенную загрузку и есть ли лучший способ реализовать API?