0

我正在使用 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 行?

4

2 回答 2

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;
于 2013-10-17T08:18:27.933 回答
1

您可以编写一个方法并将 2 个变量作为类的属性。

例如

class ApiController {
    private $location_id;
    private $data;

    private function init() {
        // ...
    }
}

然后通过执行访问变量$this->location_id

于 2013-10-17T08:18:47.930 回答