CakePHP2

CakePHP2.x : ModelのbeforeSave()メソッドでStrict (2048)エラーの対処方法メモ

Pocket

CakePHP2.xの開発をしていて、ModelのbeforeSave()メソッドの記述でStrict (2048)エラーが出たので、対応方法をメモ。

エラーメッセージ

Strict (2048): Declaration of User::beforeSave() should be compatible with Model::beforeSave($options = Array) [APP/Model/User.php, line 46]

対応

NG

public function beforeSave() {
}

OK

public function beforeSave($options = array()) {
}

開発環境

  • CakePHP2.5.x
  • PHP 5.4.32

参照

http://xbfish.com/2013/06/02/cakephp-2-x-strict-2048-error/

CakePHP2.5.xをComposerでインストールする方法

Pocket

CakePHP2.5.x をComposerを使ってインストールする方法のメモ。

1. CakePHPをインストールするディレクトリで、composerをインストール

2. 設定ファイルを作成。

ここでは、CakePHPとDebugKitをインストールします。

cakephpのバージョンの指定の仕方が以前と変わっているようで、少しハマりました。

3. 設定したパッケージをインストール

この時点のカレントディレクトリ内は、下記の状態になる。

Plugin
Vendor
composer.json
composer.lock
composer.phar

5. CakePHPプロジェクトを生成する。

appディレクトリにプロジェクトを作成。

Welcome to CakePHP v2.5.3 Console

・・(略)・・

Look okay? (y/n/q)

[y] > y

・・(略)・・

Project baked successfully!

6. 各種パスを修正する

webroot/index.php と webroot/test.php 内の定数CAKE_CORE_INCLUDE_PATHの定義を修正する。

var/www/hoge.jp/pulic_html にインストールした場合。

/var/www/hoge.jp/pulic_html にインストールした場合。

7. PluginとVendorのパスを追加.

app/Config/bootstrap.php の最後に以下を追記する。

※パスの、末尾のスラッシュは必須

8. オートローダーの設定

app/Config/bootstrap.php の一番先頭に以下を追加

9. DebugKitプラグインの読み込み。

Config/bootstrap.php の最後に下記を記述

10. app/Controller/AppController.phpでコンポーネントを追加

11. DBの設定をして、セットアップ完了。

cakephp2_インストール完了

 

参照

http://book.cakephp.org/2.0/ja/installation/advanced-installation.html

 

環境

  • CakePHP2.5.3
  • PHP5.4
  • CentOS 6.5

CakePHP2 : 複数テーブルに対してControllerでトランザクションを使う方法

Pocket

CakePHP2で複数テーブルに対してControllerでトランザクションを掛ける方法です。

CakePHP2の標準の機能でピンとくる実装方法が見当たりませんでした。

そこで、下記の方法が用いると便利です。

トランザクション管理用のモデルを作成

App > Model > TransactionManager.php

Controller側で利用

検証環境

  • CakePHP2.4.3
  • PHP5.4
  • MySQL5.5

参照

http://d.hatena.ne.jp/pospome/20140416/1397664261