PHP5.5にあげたせいでCakePHPでエラーがでてしまった

先日Macのローカル環境をPHP5.5にあげたのですが、ローカルでエラーがでてしまいました(☝ ՞ਊ ՞)

E_STRICTエラーがでてしまう

E_STRICTエラーが大量出現してしまいました。

Strict (2048): Declaration of HugahugaTag::find() should be compatible with Model::find($type = ‘first’, $query = Array) [APP/Model/HugahugaTag.php, line 86]

何やらPHP5.4からerror_reportingが変わったとかなんとかです。
http://php.net/manual/ja/migration54.other.php

Config/core.phpのConfigure::writeを書き換えるのは本質的じゃないですよね。。

Configure::write(‘debug’, 0);

debugレベルを2から0にしてお茶を濁しました(☝ ՞ਊ ՞)

でもこれだとなんかおかしい気がします。
CakePHP2.xとPHP5.4でStrict Errorが出た場合の対処法

によると、Config/core.phpの指定を

Configure::write(‘Error’, array(
‘handler’ => ‘ErrorHandler::handleError’,
‘level’ => E_ALL & ~E_DEPRECATED & ~E_STRICT,
‘trace’ => true
));

コチラに書き換えればいいようです。

お陰様でエラーが出なくなりました(☝ ՞ਊ ՞)☝

ログみていたらPHPのnumber_format()でエラーがでていた

エラーがでていました(☝ ՞ਊ ՞)☝

Warning: Warning (2): number_format() expects parameter 1 to be double, array given in [/var/www/html/app/View/Helper/ChartHelper.php, line 191]

ぐぐってみると
http://www.konnect-kollect.info/php-number_format-xml-error.html

number_format()の第一引数を数値型でキャストするらしいです(☝ ՞ਊ ՞)☝

number_format((int)$hoge)

たいにするとか

これで多分エラーでなくなるはず(☝ ՞ਊ ՞)☝

CakePHPを入れた時にでるDebugKitのエラーを消すには

CakePHP2.?バージョンからCakePHPをインストールしようとするとDebugKitがないというエラーがでます。

表示されるエラー

DebugKit is not installed. It will help you inspect and debug different aspects of your application.
You can install it from github

CakePHP-DebugKit-error

これはやり方が分からなかったのですが、以下のサイトを参考にしたら解決しました。

cakephp2.0にDebugKitを入れてみる
http://sd.pot.co.jp/2012/02/01/cakephp2-0%E3%81%ABdebugkit%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%82%8B

手順は参考サイトのとおりです。

1.DebugKitのファイルをダウンロードかgit cloneする。
2.app/Pluginにフォルダを配置してDebugKitにリネームする。
3.app/Config/bootstrap.phpにCakePlugin::load(‘DebugKit’)を指定する。
CakePlugin::load('DebugKit');
上記のように記述します。

エラーが消えて無事に表示されました。
CakePHP2.3.1.default.view

app/Controller/AppController.phpにDebugKit.Toolbarを指定する手順が参考サイトに書いてありましたが、エラーを消すだけなら以下のようにコンポーネントを指定しなくても問題ないようです。
public $components = array('DebugKit.Toolbar');

おしまい(☝ ՞ਊ ՞)☝

CakePHPのインストールでエラーを消していく

CakePHP2.3-RCを試してみました。
ファイルを展開してDatabaseを作ってウェブサーバーの設定をしました。
CakePHPではお決まりの設定でtmpディレクトリのパーミッションを777にしておきました。

ブラウザからアクセスしました。

Cakephp error

あるえー(☝ ՞ਊ ՞)☝ なんかエラーがでた

Warning: strtotime(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead in /Library/WebServer/Documents/dev.chocospot.com/cakephp2.3-RC2_apppark/lib/Cake/Cache/CacheEngine.php on line 59 Warning: strtotime(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead in /Library/WebServer/Documents/dev.chocospot.com/cakephp2.3-RC2_apppark/lib/Cake/Cache/CacheEngine.php on line 59

これはあれか、Config/core.phpのタイムゾーンを変更しろということか

date_default_timezone_set(‘Asia/Tokyo’);

date_default_timezone_setがコメントになっているのでそこを外してAsia/Tokyoを入れてみました。

エラーが消えました。次はSecurity Saltを変更します
CakePHP error security salt

Config/core.phpのSecurity.saltとSecurity.cipherSeedの文字列を少し1足したりしてかえてみた。
CakePHP のエラーが消えた

とりあえずここまで開発してみよう(☝ ՞ਊ ՞)☝

ふぁぼが加速するぷぎったーの体験ツイート

先日からふぁぼが加速するぷぎったーをアルファスタートしてちょこちょこ機能追加しています。

[blackbirdpie id=”228809573677539328″]
[blackbirdpie id=”228809198408978432″]
[blackbirdpie id=”228809992671723520″]
[blackbirdpie id=”228810244078317568″]
[blackbirdpie id=”228810791275622400″]
[blackbirdpie id=”228811740090077184″]
[blackbirdpie id=”228813093042544640″]
[blackbirdpie id=”228820905210548225″]
[blackbirdpie id=”228821256567410690″]
[blackbirdpie id=”228821873780199424″]
[blackbirdpie id=”228822176172740608″]
[blackbirdpie id=”228826955330514946″]

ぷぎったーをつかえば100ふぁぼは余裕しかし、つぎにぷぎえもんを待っていたのはふぁぼ規制だった。
次回へ続く

次の記事:
twitterのお気に入り、ふぁぼは一日1000回で規制され、規制後24時間で解除される

CakePHPを使っていてredirectsのエラーが出たので.htaccessを確認をした

先日、ぷぎったーを設置したらCakePHPのページが表示されないなどのトラブルがありました。

Apacheのエラーログを確認すると

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace.

リダイレクトで問題がありそうなエラーが出ています。

あるいはCakePHPには

Error: [MissingControllerException] Controller class JsController could not be found.

のようなエラーが出ていました。jsやcssを読み込めていないみたいです。

適当にぐぐったら、CakePHPの.htaccessの設定をマニュアル通りになっているか確認しろとありました。

マニュアル通りだと以下のようになっています。
./.htaccess
[code]
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
[/code]

./app/.htaccess
[code]
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
[/code]

./app/webroot/.htaccess
[code]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
[/code]

なんということでしょう

.htaccessに余計な設定が書いてありました。

マニュアルのとおりに直したらちゃんとjsもcssも読み込まれるようになってちゃんと動きました(^o^)

WebデザイナーのためのCakePHPビューコーディング入門
WebデザイナーのためのCakePHPビューコーディング入門 滝下 真玄 原 一浩

秀和システム 2012-03-28
売り上げランキング : 15727

Amazonで詳しく見る by G-Tools

CakePHPで定数を定義したい

cakephpで定数定義
CakePHPで定数を定義したいけどやりかたがわかりませんでした。
自分のソースをさかのぼってみたらbootstrap.phpに書くみたいです。

appをルートとして/Config/bootstrap.phpを編集します。
[code]define(“AAA”, “BBB”);[/code]
このまま書いたら使えました。

おまけですが、ソースをみたらbootstrap.phpにconfig()という記述がありました。
[code]config(‘const’);[/code]
このように書くと/Config/const.phpを読みに行くみたいです。ソースではconst.phpの中でdefine()を書いて定数を定義していました。

なんでこうしたのかよく覚えてませんけどbootstrap.phpにかけるならそのまま書いてよさそうですね。

WebデザイナーのためのCakePHPビューコーディング入門
WebデザイナーのためのCakePHPビューコーディング入門 滝下 真玄 原 一浩

秀和システム 2012-03-28
売り上げランキング : 67342

Amazonで詳しく見る by G-Tools