Inheritance: implements ConfigReaderInterface
 /**
  * createContents
  *
  * @param array $data データの配列
  * @param string $expect PHPコード
  * @return void
  * @dataProvider createContentsDataProvider
  */
 public function testCreateContents($data, $expect)
 {
     $reader = new BcThemeConfigReader();
     $this->assertEquals($expect, $reader->createContents($data));
 }
Example #2
0
 /**
  * 保存
  *
  * @param array $data 保存するデータの配列
  * @param bool|array $validate 真偽値または配列
  *   真偽値の場合はバリデーションするかを示す
  *   配列の場合は下記のキーを含むことが可能:
  *
  *   - validate: trueまたはfalseに設定してバリデーションを有効化・無効化する
  *   - fieldList: 保存を許すフィールドの配列
  *   - callbacks: falseに設定するとコールバックを無効にする. 'before' または 'after'
  *      に設定するとそれぞれのコールバックだけが有効になる
  *   - `counterCache`: Boolean to control updating of counter caches (if any)
  *
  * @param array $fieldList 保存を許すフィールドの配列
  * @return bool
  */
 public function save($data = null, $validate = true, $fieldList = array())
 {
     if (!$data) {
         $data = $this->data;
     } else {
         $this->set($data);
     }
     if ($validate) {
         if (!$this->validates()) {
             return false;
         }
     }
     if (isset($data['Theme'])) {
         $data = $data['Theme'];
     }
     $path = WWW_ROOT . 'theme' . DS;
     if ($path . $data['old_name'] != $path . $data['name']) {
         if (!rename($path . $data['old_name'], $path . $data['name'])) {
             return false;
         }
     }
     $reader = new BcThemeConfigReader();
     $data = array_merge($reader->read($data['name']), $data);
     $reader->dump($data['name'], $data);
     return true;
 }