我正在使用CakePHP并创建了一个类,如下所示:
class ApiController extends AppController {
// functions
}
我在课堂上有大约10个函数,我发现我在每个函数的开头都重复了3行相同的代码:
if ($this->request->is('post')) {
$data = $this->request->input('json_decode',true);
$authUser = explode('.',$_SERVER['PHP_AUTH_USER']);
$location_id = $authUser[1];
// Rest of my function
}
有没有办法可以在类中创建一些先运行这3行代码的东西,然后让$ data和$ location_id变量可用于我的函数,或者我必须为每个函数写下3行功能
答案 0 :(得分:2)
可以使用私有方法完成。
private $data = null;
private $locationId = null;
public function __construct($request = null, $response = null) {
parent::__construct($request = null, $response = null);
$this->data = $this->request->input('json_decode',true);
$authUser = explode('.',$_SERVER['PHP_AUTH_USER']);
$this->locationId = $authUser[1];
}
然后像这样使用它
$this->locationId;
答案 1 :(得分:1)
您可以编写方法并将2个变量作为类的属性。
e.g。
class ApiController {
private $location_id;
private $data;
private function init() {
// ...
}
}
然后通过执行$this->location_id
来访问变量。