92 lines
2.0 KiB
PHP
92 lines
2.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Core;
|
||
|
|
||
|
use mysql_xdevapi\Exception;
|
||
|
|
||
|
/**
|
||
|
* Base controller
|
||
|
*
|
||
|
* PHP version 7.0
|
||
|
*/
|
||
|
abstract class Controller
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* Parameters from the matched route
|
||
|
* @var array
|
||
|
*/
|
||
|
protected $route_params = [];
|
||
|
|
||
|
/**
|
||
|
* Class constructor
|
||
|
*
|
||
|
* @param array $route_params Parameters from the route
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function __construct($route_params)
|
||
|
{
|
||
|
$this->route_params = $route_params;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Magic method called when a non-existent or inaccessible method is
|
||
|
* called on an object of this class. Used to execute before and after
|
||
|
* filter methods on action methods. Action methods need to be named
|
||
|
* with an "Action" suffix, e.g. indexAction, showAction etc.
|
||
|
*
|
||
|
* @param string $name Method name
|
||
|
* @param array $args Arguments passed to the method
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function __call($name, $args)
|
||
|
{
|
||
|
$method = $name . 'Action';
|
||
|
|
||
|
if (method_exists($this, $method)) {
|
||
|
if ($this->before() !== false) {
|
||
|
call_user_func_array([$this, $method], $args);
|
||
|
$this->after();
|
||
|
}
|
||
|
} else {
|
||
|
throw new \Exception("Method $method not found in controller " . get_class($this));
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* Before filter - called before an action method.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
protected function before()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
/**
|
||
|
* After filter - called after an action method.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
protected function after(){
|
||
|
|
||
|
}
|
||
|
public function JsonResp($code,$data,$msg){
|
||
|
$ret["code"] = $code;
|
||
|
$ret["msg"] = $msg;
|
||
|
$ret["data"] = $data;
|
||
|
$dat = json_encode ( $ret );
|
||
|
$this->_rsp($dat);
|
||
|
}
|
||
|
protected function _rsp($dat){
|
||
|
if (is_string($dat)){
|
||
|
print $dat;
|
||
|
}else{
|
||
|
throw new Exception("internal err",201);
|
||
|
}
|
||
|
}
|
||
|
protected function Crash($code,$msg){
|
||
|
|
||
|
}
|
||
|
}
|