LoginSignup
40
41

More than 5 years have passed since last update.

CakePHP2 > CakePHP3で変わってたこととか

Last updated at Posted at 2015-04-10

CakePHP2 > CakePHP3で変わってたこととか

CakePHP2で作りかけのプロジェクトをCakePHP3へ移すことになったのでそれにあたって変わってたこととか気づいたことをまとめておこうと思います。

redirectについて

<?php
public function index() {
       $this->log('a');
       $this->redirect('/');
       $this->log('b');
}

上記処理は、CakePHP2までは

$this->log('b');

には処理は到達しませんでしたが、CakePHP3では上記処理まで進んだ後redirectします。

redirect前後などで処理を書いているものがうまく動作しませんので注意が必要です。

※redirectアクションの第三引数$exit自体がなくなってしまっています・・・。

SessionComponentについて

CakePHP3ではSessionComponentが廃止されています。

代わりにCakeRequestにsession処理が追加されています。

CakePHP2からCakePHP3に書き換える場合は

$this->Session = $this->request->session();

でわりとちゃんと動きそうです。

$this->Html->url()について

HtmlHelperからurlメソッドがなくなっています。

代わりにUrlヘルパーで

$this->Url->build();

で取得が可能です。

Datetimeなどのnewについて

CakePHP3ではnamespaceが使用されているので

$date = new DateTime('2000-01-01');

と普通に書いてもDateTimeが見つかりませんとエラーが出ます。

$date = new \DateTime('2000-01-01');

とするか、先頭で

use \DateTime;

と宣言する必要があります。

まとめ

他にもまだまだあると思いますがとりあえず気づいたところだけ先にまとめました。

(まだデータベース周りちゃんと触ってない・・・。ここが一番いろいろ変わってるはずですからね・・・。

40
41
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
41