2015年1月26日月曜日

cake3.0.0-beta から cake3.0.0-RCへのmigration

beta2ぐらいからRCで結構細かく変わってきている。


config/bootstrap.php

load()で.phpをつけてはいけなくなった。
- Configure::load('app.php', 'default', false);
+ Configure::load('app', 'default', false);


config/routes.php

RoutingのCase insensitiveの設定方法が変わった。
+ Router::defaultRouteClass('InflectedRoute');
// Router::extensions(['html', 'json', 'txt']); <-- あとこれはRCで追加されたわけではないけどbeta3位で追加しないと動かなかった。

config/app.php

'path'でpathを指定する必要が出てきた。
 'debug' => [
  'className' => 'Cake\Log\Engine\FileLog',
+  'path' => LOGS,
  'file' => 'debug',
  'levels' => ['notice', 'info', 'debug'],
 ],

src/Model/Table/*Table.php

メソッド名が変わった。古いvalidatePresenceは使用不能に。
-   ->validatePresence('name', 'create')
+   ->requirePresence('name', 'create')

validationタイミングの変更?

validation指定のタイミングの変更。
// old
$entity = $table->newEntity([/* some entity data array */]);
$table->save($entity, ['validate' => false]);

// new
$entity = $table->newEntity([/* some entity data array */], ['validate' => false]);
$table->save($entity);
これはRCからなのか詳しく見てないけど'validate' => 'someMyValidation'みたいな指定が出来るようになったっぽい。


他にもbakeがplugin化してたりなんか色々あるぽいけど、RCから使い出すならその辺は気にせず使える。
ライブラリ自体の修正でなくてskeletonで作成したPHPテンプレに互換性が無くなると対応めんどい。
Zend Frameworkのノリでbetaからstableまでそんな変わらんだろと思ってたけどちょこちょこ変わる。

3.0.0もRCなのでもう変わることはないかな〜。今くらいから使いはじめるのがベストではないかと思われる。