1. Go to this page and download the library: Download eftec/apiassembler library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
eftec / apiassembler example snippets
// note: this class controller is generated by the CLI.
class ProductAPIController {
// ...
public function listAllAction($id=null,$idparent=null,$event=null) {
// the code goes here
}
// ...
}
class ProductAPIController {
// ...
public function listAllActionPOST($id=null,$idparent=null,$event=null) {
// Check how the method ends with POST.
}
// ...
}
class ProductAPIController {
// ...
public function listByCategoryActionGET($id=null,$idparent=null,$event=null) {
// the $id argument contains the value 200.
}
// ...
}
$identity=RepoClass::insert($obj); // (DML) insert a record
$result=RepoClass::update($obj); // (DML) update a record
$result=RepoClass::deleteById($primarykey); // (DML) delete a record by the primary key
$result=RepoClass::deleteById($obj); // (DML) delete a record by the object.
$result=RepoClass::toList(); // list all values
$result=RepoClass::first(); // returns only the first row (if any)
$result=RepoClass::where('condition',[param])->toList(); // a "where" condition.
$result=RepoClass::order('column')->toList(); // sort the values by a column
$result=RepoClass::count(); // returns the number of rows.
$result=RepoClass::where('condition',[param])->count(); // returns the number of rows with conditions
$result=RepoClass::setRecursive('_column')->toList(); // if Repo Class contains a relational column (Many to One, One To Many, etc.), then this field is returned. By default all columns that could be recursive starts with "_".
$result=RepoClass::query('select * from table where id=?',[param]); // execute a raw query with or without parameters.
$result=RepoClass::useCache(5000)->toList();
// the result is cached for 5000 seconds. Passed 5000 seconds, the cache is destroyed.
// the cache is also destroyed if we run any DML command, such as insert,update or delete using the same Repo Class
// the cache could also be invalidated manually:
$result=RepoClass::invalidateCache('cachespecial');
// However, the cache is not destroyed if we run a DML command via query, of if we update a value using another repository class.
// You can set the group/family of cache as follows:
$result=RepoClass::useCache(5000,'cachespecial')->toList();
//and you can invalidate with
$result=RepoClass::invalidateCache('cachespecial');
$values=$this->api->routeOne->getBody(true); // it reads the body and de-serialize the json as an associative array.
$value=$this->api->routeOne->getHeader('key','default value if not found');
$value=$this->api->routeOne->getParam('key','default value if not found');
$value=$this->api->routeOne->getPost('key','default value if not found');
$value=$this->api->routeOne->getRequest('key','default value if not found');