在PHP中的类DRY中创建函数

时间:2013-10-17 08:16:20

标签: php cakephp

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

2 个答案:

答案 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来访问变量。