Archive for the CakePHP Category

8時間耐久CakePHP2勉強会で基礎を叩きこまれてきた!(ちなみに9時間だった!!大阪と福岡でもあるらしい)

先日、CakePHPの8時間耐久CakePHP2勉強会に参加してきました。

開催経緯と趣旨

講師は、@yandoさん。WordCamp東京の開催の時に、大変お世話になった方です。(その時はCakePHPの人だとは全然知らなかったんですが。。^^;)

発端はFacebook。

CakePHPやってみたいよ><!と騒いでいたら、@yandoさんが「がっつり教えますよ〜」とコメントしてくれまして、じゃあ場所は下北沢オープンソースカフェにしましょう!参加者も募りましょう!となったのです。

今回の趣旨は、

WordPressとかちょっとしたphpは分かるけど、CakePHPなどのフレームワークは初めて触る、という僕みたいな人に、8時間かけてCakePHPを骨の髄まで叩きこむ

というものでした。

安藤さんのスライドから。

8時間ということでしたが、実際には9時間でした。安藤さん最後の方ヘロヘロになって打ち上げにも参加できない状態で帰っていかれました。ありがとうございましたm(__)m。

あと、参加者もかなり疲れてました。濃かったです。

内容

今回の内容は、僕が持っていた以下の疑問に答えてくれるものでした。
Continue reading 8時間耐久CakePHP2勉強会で基礎を叩きこまれてきた!(ちなみに9時間だった!!大阪と福岡でもあるらしい)

CakePHP2.0で、ブログのid,title,bodyとかを管理するチュートリアルのファイル相関図

CakePHPには、「ブログチュートリアル」という、簡易的なブログを作るための、勉強コンテンツが用意されています。

今日、田中さんによるCakePHP入門講座@コワーキングスペース恵比寿で、このブログチュートリアルを10名ほどでやっていただきました。

cakephp.org > ブログチュートリアル

手順どおりにやれば、誰でもできるのですが、実際に自分が今何を書いていて、それがどこのどのファイルと連携しているのかが、分かりづらかったので図にしました。

クリックで拡大です。

なんか、間違ってそうなのですが、明日は安藤さん( @yando )による8時間ぶっ通し講座がありますので、それに備えて自分の理解ということで。。

CakePHP2.0をMac/MAMPにインストールする手順

ダウンロード

http://cakephp.org/からダウンロードしてくる。

MAMPのhtdocs内に置く。何かフォルダ作ると良い(ここでは、cakephp/)。

設定ファイルを2ついじる

app/Config/core.php

最初に、

Use it to configure core behavior of Cake.

とあるので、Cakeのコアな振る舞いを設定するファイルのようです。
ざっと見ると、デバッグレベル、エラーハンドラ、ログなどが設定できるようです。

その中で、

Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoasdfoahsaUubWwvniR2G0FgaC9mi');
Configure::write('Security.cipherSeed', '768593096576788763453542496749683645');

のような2行を検索で探して、二個目の引数をちょこっと変えます。何文字か削ったり足したりします。

app/Config/database.php

最初に、

In this file you set up your database connection details.

とあるので、データベースの接続の詳細を設定できるようです。

DATABASE_CONFIGというファイルの中の、値を変えることで、DBへの接続情報を渡します。

class DATABASE_CONFIG {

	public $default = array(
		'datasource' => 'Database/Mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'root',
		'password' => 'root',
		'database' => 'cake20',
		'prefix' => '',
		//'encoding' => 'utf8',
	);

	public $test = array(
		'datasource' => 'Database/Mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'root',
		'password' => 'root',
		'database' => 'cake20',
		'prefix' => 'test_',
		//'encoding' => 'utf8',
	);
}

MAMPの場合、上記のようにlogin/passwordrootに、databaseは専用に作ったDB名を入れます。

$default$testがありますが、$testの方はユニットテストのために使うものらしいです。テスト時には、テーブルを作って消すという作業が発生するらしいので、prefixを付けておくことで、本番テーブルが消えてしまう失敗を防ぐことができるそうです。

色々エラーが出るかもですが、localhost/cakephp/にアクセスしたときに以下のように全てがグリーンになるようにします。

MAMPでCakePHPインストール直後、ModelがBakeできない時の対処方法

CakePHPの勉強中、MAMPを使ってModelをBakeする時に、以下のようなエラーが出ました。

Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Applications/MAMP/htdocs

この解決のためには、以下のようにapp/config/database.phpの中で定義しているDATABASE_CONFIGクラスの$defaultプロパティを以下のようにします。

var $default = array(
	'driver' => 'mysql',
	'persistent' => false,
	'host' => 'localhost',
	'port' => '/Applications/MAMP/tmp/mysql/mysql.sock', // ←ココ足した
	'login' => 'root',
	'password' => 'root',
	'database' => 'databasename',
	'prefix' => '',
	'encoding' => 'utf8',
);

ところで、今、何が起こってるんでしょうw?


MAMPでCakePHPインストール直後、ModelがBakeできない時の対処方法

@shinichiN@shinichiN
以下のようにapp/config/database.phpの中で定義しているDATABASE_CONFIGクラスの$defaultプロパティを以下のようにします

var $default = array(

'driver' => 'mysql',

'persistent' => false,

'host' => 'localhost',

'port' => '/Applications/MAMP/tmp/mysql/mysql.sock', // ←追加

'login' => 'root',

'password' => 'root',

'database' => 'databasename',

'prefix' => '',

'encoding' => 'utf8',

);

#cakephp