特定条件で画面表示データにサーバーサイドで別のデータを入れたいのですが、今現在
全Controllerの継承元になっている基底クラスで
$tampering->tampering($response);
上記と下記のように抽象メソッドが呼ばれており、継承元で改竄の判定処理をし、継承した子クラスで画面毎の特定項目のデータ改竄を行うようになっています。
新規に今までと別の条件判定を追加して同一画面の別の要素に対してデータの改竄を行う用にしたいのですがどのようにするのがよいのでしょうか?
最初はfunction other_tampering(){}と別の処理を作成してしまおうと思っていたのですが空処理を作りたく無いのとabstractメソッドが複数指定できないためよい方法を探しています。
書いたコード
abstract class Tampering_Abstract { private $__response = null; public function set($response = array()) { $this->__response = $response; } protected function get_response() { return $this->__response; } /** * 改竄 */ public function tampering() { if (!$this->is_tampering()) { return $this->__response; } return $this->_tampering(); } /** * @return bool */ public function is_tampering() { return Utils::count()->is_tampering_info(); } /** * 改竄 */ abstract protected function _tampering(); } class Filter_Tampering_BookSearch extends Tampering_Abstract { /** * 改竄処理 */ protected function _tampering() { $response = $this->get_response(); $this->data_tampering($response['book_data']); return $response; } private function data_tampering(&$book_data) { foreach ($book_data as &$key) { $key['title'] = '---'; } } }
あなたの回答
tips
プレビュー