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 に答える