カテゴリー別アーカイブ: cakePHP

cakePHP 最初の設定

とりあえずダウンロードしてきたファイルをサーバーにアップした後に最初にやること。

1./app/tmpフォルダのパーミッション変更

    ※配下のフォルダ全てに権限を与えるため、-Rをつけるのを忘れずに

sshでappフォルダに移動

chmod -R 707 tmp

 

2./app/Config/core.php 修正

Configure::write(‘Security.salt’, ‘DYhG93bi〜英数字’);

Configure::write(‘Security.cipherSeed’, ‘768593〜数字’); 

2箇所の値を適当な値に変更(英数字、数字の部分)

 

3.database.php 修正

database.php.defaultをコピーか名前変更して、database.phpにする。

public $default = array(

‘datasource’ => ‘Database/Mysql’,

‘persistent’ => false,

‘host’ => ‘localhost’,

‘login’ => ‘user’,

‘password’ => ‘password’,

‘database’ => ‘database_name’,

‘prefix’ => ”,

//’encoding’ => ‘utf8’,

);

 

host,login,password,databaseをそれぞれ修正

 

これで、http://cakephpを置いた場所 でエラーがなくなっているはず。

CakePHP the rapid development php framework Home

cakephp2 DBやlocaleの変更が反映されない場合

なんど画面をリフレッシュしても反映されない時、キャッシュファイルを削除すると
あっさり表示される。

1.多言語対応(locale)変更が反映されない場合
/app/tmp/cache/persistent/cake_core_default_ja 削除

2.DB変更が反映されない場合
/app/tmp/cache/models のファイル削除(全消しで問題ない)

それでもダメなら!!!
/app/tmp/cache/persistent/myapp_cake_core_method_cache 削除

これでめでたしめでたし〜

参考ありがとう:http://culdesac.verse.jp/?p=119

POSTデータが欠ける!?

今まで順調に動いていた環境で、「保存が出来ない」と言われることが出てきた。
テストデータだと問題ないので、データにより動きが違う。

とりあえずデバックして、POSTデータの中身を見てみると、
なんと、途中までしか入ってない!!
なんで!?

問題なく動くテストデータだと、すべてのPOSTデータが送られてくる。

ここは、Google先生に聞いてみるしかなさそう。

参考:
http://blog.livedoor.jp/erscape/archives/6825951.html
http://blog.livedoor.jp/erscape/archives/7361161.html

どうやら、PHP 5.3.9から「max_input_vars」が導入されたみたい。
デフォルトは、1000

確かに、データ数がそのくらい以降が切れてる・・

php.iniを確認するが、max_input_varsの記述がなかったので、
追加してみた。

max_input_vars = 2000

動いた〜♪

ちなみに、php_error.logを見てみると、
PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0

というのがあった。

CakePHP 多言語対応 locale

viewファイルに文言書くとき

 

のように、
翻訳する部分は全て __(‘ ‘)で囲んでおく。アンダーバー2個!
この中身が日本語でもいいみたいだけど、やっぱり普通は英語なのかな。

i18nを使用して翻訳用のファイルを作成する。

コンソールにて
cd cakephpのappのパス/Console
./cake i18n -app cakephpのappのパス

こんな感じに出てくる
Welcome to CakePHP v2.4.6 Console
—————————————————————
App : Console
Path: /cakephpのappのパス
—————————————————————
I18n Shell
—————————————————————
[E]xtract POT file from sources
[I]nitialize i18n database table
[H]elp
[Q]uit
What would you like to do? (E/I/H/Q)
>

potファイルを作成するので、E エンター

あとは聞かれるがままに、、
そのままエンターし続けてもファイルはできる

app/Locale/default.pot

app/Locale/配下にjpn/LC_MESSAGESのフォルダを作成し、
先ほどできたpotファイルを
default.po という名前でコピー

後は、中身に日本語を入れればOK。

特に表示の設定をしなければ、日本の環境なら日本語が表示される

参考ありがとう:

CakePHP DebutKit 導入

CakePHPの設定がひととおり終わった状態から。

今回は、コマンドでやってみる。

$ cd app/Plugin
$ git clone https://github.com/cakephp/debug_kit

プラグインのフォルダ名を変更しておく。
$ mv debug_kit DebugKit

●プラグインのロード記述
/app/Config/bootstrap.phpに以下を追加
CakePlugin::load(‘DebugKit’);

(複数のプラグインを導入する場合は、ひとつひとつ書かずに CakePlugin::loadAll(); でもOK)

●コンポーネントの飲み込み
/app/Controller/AppController.phpのクラスの中に以下を追加
public $components = array(‘DebugKit.Toolbar’);

これで、画面の右上に、アイコンが固定表示される。
クリックすると、いろいろ情報が見れる

さらに、実行SQLを表示する場合、
/app/View/Layouts/default.php に記述追加
element(‘sql_dump’); ?>

参考ありがとう:http://qiita.com/BUN/items/403cccad9eaa831e6fd8

CakePHP2 BoostCake導入

CakePHPの設定がひととおり終わった状態から。

今回は、コマンドでやってみる。

$ cd app/Plugin
$ git clone git://github.com/slywalker/cakephp-plugin-boost_cake

プラグインのフォルダ名を変更しておく。
$ mv cakephp-plugin-boost_cake BoostCake

●プラグインのロード記述
/app/Config/bootstrap.phpに以下を追加
CakePlugin::load(‘BoostCake’);

(複数のプラグインを導入する場合は、ひとつひとつ書かずに CakePlugin::loadAll(); でもOK)

●ヘルパー追加
/app/Controller/AppController.php に追加
public $helpers = array(
‘Session’,
‘Html’ => array(‘className’ => ‘BoostCake.BoostCakeHtml’),
‘Form’ => array(‘className’ => ‘BoostCake.BoostCakeForm’),
‘Paginator’ => array(‘className’ => ‘BoostCake.BoostCakePaginator’),
);

参考ありがとう:
http://blog.livedoor.jp/spyder_5615/archives/36127430.html
http://qiita.com/BUN/items/d1e48d07d34de475bc77

cakephp DB・モデル変更 反映されない

cakephp

テーブルにカラムを追加したり、新DBを作ったりした時に、
うまく反映されない時がある。

テスト環境では動いているので、ソースがおかしいとは考えにくいときは、
モデルのキャッシュが悪さをしているときがあるみたい。

キャッシュを削除してみる。
app/tmp/cache/models配下のファイルを削除

動いた〜♪

参考ありがとう:http://oneday.ter.jp/php/cakephp-php/983.html