Submit Search
CakePHP 1 to 2 Migration tips 100
13 likes
4,397 views
ichikaway
Migration tips of CakePHP 1.2 to 2.3
Technology
Read more
1 of 41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
More Related Content
PDF
20120307 CakePHP Study in Tokyo
ichikaway
KEY
FuelPHPをさわってみて
Sotaro Omura
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
PDF
Fuel php osc tokyo2012
Fumito Mizuno
PDF
10分でわかるFuelPHP @ 2011/12
kenjis
PDF
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
PDF
NetBeansではじめる FuelPHP
Junichi Yamamoto
20120307 CakePHP Study in Tokyo
ichikaway
FuelPHPをさわってみて
Sotaro Omura
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Fuel php osc tokyo2012
Fumito Mizuno
10分でわかるFuelPHP @ 2011/12
kenjis
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
NetBeansではじめる FuelPHP
Junichi Yamamoto
What's hot
(20)
PDF
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
PDF
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
PDF
はじめての FuelPHP
Sho A
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
PDF
20091030cakephphandson 01
Yusuke Ando
PDF
Ruby on Rails Tutorial
Ken Iiboshi
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
PPTX
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
PDF
MoteMote Compiler Plugin
yoshiaki iwanaga
PDF
PHP の GC の話
y-uti
PDF
最近の PHP の話
y-uti
KEY
最近、僕がハマったFuelPHPの紹介
Naoto Mawatari
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
PPTX
Ansibleで始めるinfraTDD(初級編)
佐久本正太
PDF
PHP勉強会 #51
Takako Miyagawa
PDF
CodeIgniter入門
Sho A
PPTX
Fuelphp1.8を始めたい
運営 sollastudio
PDF
Windows で拡張モジュールをビルドしてみた
y-uti
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
はじめての FuelPHP
Sho A
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
20091030cakephphandson 01
Yusuke Ando
Ruby on Rails Tutorial
Ken Iiboshi
実"戦"CakePHP Plugin
Kenichirou Oyama
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
MoteMote Compiler Plugin
yoshiaki iwanaga
PHP の GC の話
y-uti
最近の PHP の話
y-uti
最近、僕がハマったFuelPHPの紹介
Naoto Mawatari
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
Ansibleで始めるinfraTDD(初級編)
佐久本正太
PHP勉強会 #51
Takako Miyagawa
CodeIgniter入門
Sho A
Fuelphp1.8を始めたい
運営 sollastudio
Windows で拡張モジュールをビルドしてみた
y-uti
Ad
Viewers also liked
(14)
PDF
An Introduction to CakePHP
elliando dias
KEY
My Development Story
Takahiro Fujiwara
DOC
How to migrate Cakephp 1.x to 2.x
Andolasoft Inc
PPTX
cakephp UDUYKTHA (1)
Varsha Krishna
PDF
CakePHP 2, Yii OR Zend
Jaki Watson
PPTX
Cake PHP 3 Presentaion
glslarmenta
PDF
Evented applications with RabbitMQ and CakePHP
markstory
PDF
CakePHP mistakes made
markstory
PDF
デザイナー、フロントエンジニア向けgithub勉強会資料 概要編
ichikaway
PDF
New in cakephp3
markstory
PPT
Recursive in CakePHP
Ketan Patel
PPT
Top 50 Interview Questions and Answers in CakePHP
Ketan Patel
PDF
Ch ch-changes cake php2
markstory
ODP
Don't Code, Bake. An introduction to CakePHP ~PHP Hampshire Oct 2014
David Yell
An Introduction to CakePHP
elliando dias
My Development Story
Takahiro Fujiwara
How to migrate Cakephp 1.x to 2.x
Andolasoft Inc
cakephp UDUYKTHA (1)
Varsha Krishna
CakePHP 2, Yii OR Zend
Jaki Watson
Cake PHP 3 Presentaion
glslarmenta
Evented applications with RabbitMQ and CakePHP
markstory
CakePHP mistakes made
markstory
デザイナー、フロントエンジニア向けgithub勉強会資料 概要編
ichikaway
New in cakephp3
markstory
Recursive in CakePHP
Ketan Patel
Top 50 Interview Questions and Answers in CakePHP
Ketan Patel
Ch ch-changes cake php2
markstory
Don't Code, Bake. An introduction to CakePHP ~PHP Hampshire Oct 2014
David Yell
Ad
Similar to CakePHP 1 to 2 Migration tips 100
(20)
PDF
CakePHP2.0 performance, upgrade shell
ichikaway
PDF
SPL fukuokaphp_1
ichikaway
KEY
モダンmod_perl入門 #yapcasia
鉄次 尾形
PDF
CakePHP最新情報 PHPカンファレンス関西2012
ichikaway
PPT
Cakephp勉強会@tokyo #4
ichikaway
PDF
FukuokaPHP 3
ichikaway
KEY
EC-CUBEプラグイン講義
ria1201
PPT
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
PPT
Cakephp tokyo5
ichikaway
PDF
Hive undocumented feature
tamtam180
PPTX
Php in ruby
do_aki
PDF
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
PDF
Webサーバのチューニング
Yu Komiya
PDF
社内勉強会資料(Varnish Module)
Iwana Chan
PDF
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
PDF
Niigata.pm #1
hayajo Imai
PDF
Apacheの展望とmod_perlの超絶技巧 #yapcasia
鉄次 尾形
KEY
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
PDF
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
PDF
CakePHP2でMySQL Replication
Yoshihiro Ohsuka
CakePHP2.0 performance, upgrade shell
ichikaway
SPL fukuokaphp_1
ichikaway
モダンmod_perl入門 #yapcasia
鉄次 尾形
CakePHP最新情報 PHPカンファレンス関西2012
ichikaway
Cakephp勉強会@tokyo #4
ichikaway
FukuokaPHP 3
ichikaway
EC-CUBEプラグイン講義
ria1201
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
Cakephp tokyo5
ichikaway
Hive undocumented feature
tamtam180
Php in ruby
do_aki
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
Webサーバのチューニング
Yu Komiya
社内勉強会資料(Varnish Module)
Iwana Chan
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
Niigata.pm #1
hayajo Imai
Apacheの展望とmod_perlの超絶技巧 #yapcasia
鉄次 尾形
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
CakePHP2でMySQL Replication
Yoshihiro Ohsuka
More from ichikaway
(20)
PDF
forteeに脆弱性検査をかけてみた VAddy編
ichikaway
PDF
Understanding Computer Architecture with NES Emulator
ichikaway
PDF
VAddyの課金システムを Stripeに乗り換えた話
ichikaway
PDF
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
ichikaway
PDF
ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
ichikaway
PDF
現場で使える脆弱性検査サービス VAddy
ichikaway
PDF
OS入門 Fukuoka.php vol.18 LT資料
ichikaway
PDF
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
ichikaway
PDF
VAaddyとは VAddyミートアップvol3_20160629
ichikaway
PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
PDF
脆弱性もバグ、だからテストしよう DevSummiFukuoka
ichikaway
PDF
Vulnerabilities are bugs, Let's test for them!
ichikaway
PDF
脆弱性もバグ、だからテストしよう!
ichikaway
PDF
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
ichikaway
PDF
継続的Webセキュリティテスト testing casual talks2
ichikaway
PDF
Ctf2015 ichikawa Eizoku PM2.5 dial
ichikaway
PDF
VAddy - CI勉強会 fukuoka
ichikaway
PDF
Jenkinsを使った継続的セキュリティテスト
ichikaway
PDF
継続的セキュリティテストVaddy説明資料
ichikaway
PDF
VAddy at LL Diver LT
ichikaway
forteeに脆弱性検査をかけてみた VAddy編
ichikaway
Understanding Computer Architecture with NES Emulator
ichikaway
VAddyの課金システムを Stripeに乗り換えた話
ichikaway
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
ichikaway
ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
ichikaway
現場で使える脆弱性検査サービス VAddy
ichikaway
OS入門 Fukuoka.php vol.18 LT資料
ichikaway
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
ichikaway
VAaddyとは VAddyミートアップvol3_20160629
ichikaway
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
脆弱性もバグ、だからテストしよう DevSummiFukuoka
ichikaway
Vulnerabilities are bugs, Let's test for them!
ichikaway
脆弱性もバグ、だからテストしよう!
ichikaway
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
ichikaway
継続的Webセキュリティテスト testing casual talks2
ichikaway
Ctf2015 ichikawa Eizoku PM2.5 dial
ichikaway
VAddy - CI勉強会 fukuoka
ichikaway
Jenkinsを使った継続的セキュリティテスト
ichikaway
継続的セキュリティテストVaddy説明資料
ichikaway
VAddy at LL Diver LT
ichikaway
CakePHP 1 to 2 Migration tips 100
1.
CakePHP 1->2 Migration Tips
100 2013/2/14 Cake Beer Talk
2.
Yasushi Ichikawa @cakephper /
@ichikaway http://d.hatena.ne.jp/cakephper From 福岡 Fukuoka.php 主催
5.
発売中!!
CakePHP2 実践入門 @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
6.
Upgrade Shell
7.
Upgrade Shell ●Cake1.3 のコードを自動変換 ●
全自動ではありません @ichikaway http://cake.eizoku.com/blog/
8.
Upgrade Shell $ cd
13/cake/app $ lib/Cake/Console/cake upgrade @ichikaway http://cake.eizoku.com/blog/
9.
Upgrade Shell dry-run オプション cake
upgrade all --dry-run 実行ログのみ表示 コードは書き換えない @ichikaway http://cake.eizoku.com/blog/
10.
Upgrade Shell バージョン管理 git など
@ichikaway http://cake.eizoku.com/blog/
11.
Upgrade Shell ●all ●全てのオプションを実行 ●tests
●テスト名の変更など ●locations ●ファイル / フォルダ名変更 @ichikaway http://cake.eizoku.com/blog/
12.
Upgrade Shell ●i18n ●__()
関係の変更 ●true 廃止、 echo 追加 ●helpers ●ヘルパー呼出し $this 経由 ●basics ●廃止 Global 関数置換 @ichikaway http://cake.eizoku.com/blog/
13.
Upgrade Shell ●request ●
$this->request->xxx() ● data,params,here,action ●configure ● Configure::read() 置換 ●constants ●定数の変更 @ichikaway http://cake.eizoku.com/blog/
14.
Upgrade Shell ●components ●Component
クラスを継承するように ●exceptions ●cakeError を例外に置換 ●error400, error404, error500 @ichikaway http://cake.eizoku.com/blog/
15.
Upgrade Shell ●cake upgrade
all の後に ... ● webroot 入替え ● database.php 書き換え ●//'driver' => 'mysql', ● 'datasource' => 'Database/Mysql', ● core.php 入替え (APC off ?) ● routes.php 入替え ● tmp キャッシュ消去 @ichikaway http://cake.eizoku.com/blog/
16.
CakePHP 1.2 → 2.3
移行中
17.
●
1.2 のバリデーション廃止 ● VALID_NOT_EMPTY, VALID_NUMBER cd Model sed -i -e "s/VALID_NOT_EMPTY/'notEmpty'/g" *.php @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
18.
●
極力 App::uses() を使う ( パフォーマンス向上 ) ● App::import() は最低限にとどめる 例 : Vendor の読込みの置換 sed -i -e "s#App::import('Vendor', (.*))#App::uses(1, 'Vendor')#g" *.php @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
19.
●
Controller で AppController を App::uses() ● Model で AppModel を App::uses() 例 : AppModel の読込み ( 階層構造対応) find ./ -name "*.php" | xargs sed -i "s/class (.*) extends AppModel/ App::uses('AppModel', 'Model');nclass 1 extends AppModel/g" @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
20.
●
upgrade shell ● [ 注意 ] コンポーネント内の $this->data まで置換される ● $this->controller のような持ち方をしているものを 置換する必要あり ● 例: $this->controller->data $this->controller->request->data @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
21.
●
e() や a() が廃止 ● upgrade shell は最長マッチで置換 ● 1 行に e() が複数個ある場合は注意 ● 例 : e('foo'); e('bar'); @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
22.
●
移行作業は常に Syntax check しながら進む ● find . -type f -name "*.php" -exec php -l {} ; @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
23.
●
upgrade shell はコントローラなどがディレクトリ階 層化されていると、それをフラットにするため注意 ● controller/foo/bar.php → Controller/Bar.php ● 自力でリネーム ● 階層化は Cake2 から自動探索しない ● App::build() で定義 (Config/bootstrap.php) AutoAppBuildPlugin ● – https://github.com/ichikaway/AutoAppBuild @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
24.
●
upgarde shell のファイルリネームは、中のクラス 定義を見てファイル名にする 1 ファイルに複数クラスある場合は要注意 ● ● 最初のクラス定義のクラス名をファイル名にしてしまう //FooControllerTest.php なのに TestFooController.php に置換される <?php class TestFooController extends FooController { } class FooControllerTest extends CakeTestCase{ } @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
25.
●
古い find() の定義 ● findAll, findCount, findList 廃止 ● find($conditions,xxx,xxx) 廃止 ● 探す ● grep find -R ./* | egrep -v "find('first'|find('all'|find('list'| find('count'|findById" ● 置き換える ● find('all', $params); //all は全て小文字! ●find($conditions,xxx,xxx) ● デフォルトが first 指定されている ● find('first',$params) に変える @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
26.
●
JavascriptHelper 廃止 (JsHelper にする) ● helpers = array('Js'); View での呼び出し方法 (foo.js) $this->Html->script('foo', array('inline'=>false)); Javascript コードのべた書き方法も変更 旧 : $this->addScript($javascript->codeBlock()) 新 : $this->addScript($this->Html->scriptBlock()) @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
27.
Behavior の beforeFind
メソッド で戻り値を必ず返すこと http://php-tips.com/php/cakephp-php/2012/02 @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
28.
Set クラスは Hash
クラスに (しなくても動くけど) Set::extract('/Model/id', $dataArray); ↓ Hash::extract($dataArray, '{n}.Model.id'); @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
29.
●
Form::select() の API 変更 旧 $this->Form->select( "month", $month, $month, array(), '–' ); 新 $this->Form->select( "month", $month, array('value' => $month, 'empty' => '–') ); @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
30.
●
view の renderElement を element に置換 find ./ -name "*.ctp" | xargs sed -i 's/renderElement(/element(/g' @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
31.
●
Controller の __construct() に手を入れている場合 function __construct($request, $response){ parent::__construct($request, $response); } @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
32.
テストの移行
33.
●
廃止メソッド ● start(), startTest(), end(), endTest() ● 置き換え ● setUp(), tearDown() @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
34.
●
移行 Tips ではないが。。。。 ● テストモデルの生成時に alias セット ● ClassRegistry::init(array( 'class' => 'TestHogeModel', 'alias' => 'HogeModel') ); @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
35.
●
dbConfig が勝手に test になってしまう問題 ● Model::useDbConfig には test_xxx という規約 ● wordpress のような文字列を指定していると test という dbConfig に強制的に変更されてしまう – test_wordpress で対応 @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
36.
●
phpunit と web の test.php が tmp の cache を共 有して権限の取り合いになってしまう問題 ● tmp フォルダをそれぞれ分ける – tmp/consoletest, tmp/webtest ● app/Console/cake.php に TMP 定数を追加 – ShellDispatcher::run() の前に @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
37.
$app_dir = dirname(dirname(__FILE__));
define('TMP', $app_dir . '/tmp/console/'); unset($app_dir); if(!is_dir(TMP)) { mkdir(TMP, 0777); } if(!is_dir(TMP . '/cache')) { mkdir(TMP . '/cache', 0777); } if(!is_dir(TMP . '/cache/persistent')) { mkdir(TMP . '/cache/persistent', 0777); } if(!is_dir(TMP . '/cache/models')) { mkdir(TMP . '/cache/models', 0777); } if(!is_dir(TMP . '/cache/views')) { mkdir(TMP . '/cache/views', 0777); } if(!is_dir(TMP . '/logs')) { mkdir(TMP . '/logs', 0777); } if(!is_dir(TMP . '/tests')) { mkdir(TMP . '/tests', 0777); } @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
38.
●
Component 単体テスト ● Component オブジェクト生成 $this->Foo = new BarComponent(new ComponentCollection()); @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
39.
●
コントローラのオブジェクト生成、コンポーネント利用 $this->Con = new TestFooController(new CakeRequest(), new CakeResponse()); $this->Con->constructClasses(); $this->Con->Components->init($this->Con); $this->Con->MyHogeComponent->startup($this->Con); @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
40.
●
CakeTestCase::testAction() 廃止 ● ControllerTestCase を継承すること 継承できない場合 App::uses('ControllerTestCase', 'TestSuite'); class MyControllerTestCase extends ControllerTestCase { } $this->ControllerTestCase = new MyControllerTestCase(); $this->ControllerTestCase->testAction('/foo/bar'); @cakephper / @ichikaway http://d.hatena.ne.jp/cakephper
41.
CakePHP 1->2 Migration Tips
31/100 ありがとうございました!