mirror of
https://github.com/beestat/app.git
synced 2025-05-23 18:04:14 -04:00
87 lines
1.9 KiB
PHP
87 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace cora;
|
|
|
|
/**
|
|
* Base API class that everything extends.
|
|
*
|
|
* @author Jon Ziebell
|
|
*/
|
|
abstract class api {
|
|
|
|
/**
|
|
* The current resource.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $resource;
|
|
|
|
/**
|
|
* The database object.
|
|
*
|
|
* @var database
|
|
*/
|
|
protected $database;
|
|
|
|
/**
|
|
* Session object.
|
|
*
|
|
* @var session
|
|
*/
|
|
protected $session;
|
|
|
|
/**
|
|
* Setting object.
|
|
*
|
|
* @var setting
|
|
*/
|
|
protected $setting;
|
|
|
|
/**
|
|
* Cora object.
|
|
*
|
|
* @var cora
|
|
*/
|
|
protected $cora;
|
|
|
|
/**
|
|
* Construct and set the variables. The namespace is stripped from the
|
|
* resource variable. Anything that extends crud or API will use this
|
|
* constructor. This means that there should be no arguments or every time
|
|
* you want to use one of those resources you will have to find a way to
|
|
* pass in the arguments. Using a couple singletons here makes that a lot
|
|
* simpler.
|
|
*/
|
|
final function __construct() {
|
|
$this->resource = get_class($this);
|
|
$class_parts = explode('\\', $this->resource);
|
|
$this->table = end($class_parts);
|
|
$this->database = database::get_instance();
|
|
$this->cora = cora::get_instance();
|
|
$this->setting = setting::get_instance();
|
|
$this->session = session::get_instance();
|
|
}
|
|
|
|
/**
|
|
* Shortcut method for doing API calls within the API. This will create an
|
|
* instance of the resource you want and call the method you want with the
|
|
* arguments you want.
|
|
*
|
|
* @param string $resource The resource to use.
|
|
* @param string $method The method to call.
|
|
* @param mixed $arguments The arguments to send. If not an array then
|
|
* assumes a single argument.
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function api($resource, $method, $arguments = []) {
|
|
if(is_array($arguments) === false) {
|
|
$arguments = [$arguments];
|
|
}
|
|
|
|
$resource_instance = new $resource();
|
|
return call_user_func_array([$resource_instance, $method], $arguments);
|
|
}
|
|
|
|
}
|