CakePHPをダウンロードしたらまずやる事メモ | WEBデザイナー"Zoe"の「サービスぶち上げ奮闘記」

WEBデザイナー"Zoe"の「サービスぶち上げ奮闘記」

プログラミング初心者のWEBデザイナーが、WEBサービスを立ち上げるまでの奮闘記です。勉強する中で調べたことや、PHP,SQL,フレームワーク,セキュリティ等分かり易く説明したサイトがあればまとめてます。

前回挫折しかけたCakePHPですが、調べにしらべまくってサンプルプログラムとか構築しまくってたら、何となく仕組みが分かってきました。(とりあえずCakePHP公式のブログチュートリアルとかも何回か作ってみてます)
んで、今後CakePHPで色々作る時に最初にやっとくノウハウとしてちょっとまとめとこうと思います。

1.データベースを作成しておく!


色々する前に命名規則に従ってテーブルを作成しておく。
■主な命名規則は下記
・テーブル名は複数形で書いて、長いのは_(アンダースコア)で区切る。
 例:users , shops , news , shop_categories こんな感じ。単数形・複数形に関してはかなり柔軟に対応してくれる。
・テーブルのプライマリキーはid一択でauto_increment(自動連番)つけとく。users_idとかにしちゃうと後で面倒。
・カラムにcreatedとmodified(両方DATETIME型)を作っとくと、CakePHP側で勝手に作成日時と更新日時を書いてくれるので便利。
・他のテーブルを引っ張ってくる(アソシエーションする)場合は、◯◯(単数形)_idで引っ張れるから後で便利。
 例:ユーザーごとのお気に入り店舗テーブルとかだと、favoritesテーブルのカラムにuser_idを入れとく、とか。

2.bakeでとりあえず焼く!


とりあえずコマンドプロンプトとかコンソールとかで、
¥ cd /●cake落としたフォルダ●/まで行って(cd はフォルダ移動出来るコマンド)、
./app/Console/cake bakeと実行。
bakeで[D]etabaseの設定。
■ベイクに関して
・Q&Aみたいで楽しい。
・覚えると作成・読込・更新・削除(Creat,Read,Update,Delete略してCRUD)の機能が5秒ぐらいで作れる
・その他CRUDが必要なアプリケーション部分はひと通り焼いておく
・bake allで全部焼ける(めんどくさい人はとりあえずbake allしとくと5秒でジューッ!その代わり要らない所もジュー・・)
・bake view allとかcontroller allとかmodel allとかで各MVCだけ全部焼くとかいう小技もある

3.トップページの赤や黄色のエラーを消す!(ついでにデバッガー入れる)


bakeしたらデータベース設定の所は解消してるはずなので、(してない場合はもう一回ベイクするか、直接app/config/database.php弄る)セキュリティソルトとかの設定と、DebugKitのインストールをしとく。
■セキュリティソルトとかの設定変える
/app/Config/に入ってる core.php 開いて、
 Configure::write('Security.salt', '●適当な文字列を並べ立てる●');
 Configure::write('Security.cipherSeed', '●適当な数字を並べ立てる●');
●~●を変更。
■デバッグキット入れる
①ダウンロードしたdebugkit_masterみたいな名前のフォルダを、app/plugins/に入れてDebugKitに名前変更。
②/app/Config/bootstrap.phpを開いて、
 CakePlugin::loadAll(); // Loads all plugins at once
 CakePlugin::load('DebugKit'); //Loads a single plugin named DebugKit
のコメント外す。
③/app/Controller/AppController.phpを開いて、コンポーネンツ部分を追加。
class AppController extends Controller {
// デバッグキット読み込み
var $components = array('DebugKit.Toolbar');
}
とりあえずこれで全部緑色になる。


4.必要に応じてプラグインを入れる!


一からロジックを組んでいくと、ものすごい時間を要するので、使えるプラグインはなるべく使うようにする。特にCakeDC系のプラグインは便利なものが多い(usersプラグインとかイイネ!)。その他CakePlusとかはバリデーションの時に便利そう。


なんというか・・
完全に自分用のメモなので、ちょっと意味分かんない記事になってますがあしからず\(^o^)/