あずきみるくのあずきはニガテ - for Engineer

ひよっこプログラマがやってみたことやハマっちゃったことなど、備忘録的な感じで書いていきます。

cakePHPでHelloWorld - ってか、HelloWorldばっかりやってんな・・・

cakePHPってゆうのがあるそうな。

PHPフレームワークだそうな。

・・・とりあえず触ってみよう。

<環境>
Windows 8.1 64bit
PHP 5.5.21
cakePHP 2.5.8
Apache 2.4.10
(XAMPPは使ってません。あしからず・・・)

<本日の先生>
CakePHPの使い方 インストールからHelloWorldまで | Designup


1)CakePHPのインストール

ここから、CakePHPをダウンロードしてきます。
CakePHP: 高速開発 php フレームワーク。 Home

解凍先はどこでもいいです。
あずきはApacheのhtdocs直下にしました。。。

「C:\Apache24\htdocs」

ここに、マスタを置いておいて、使う時はコピーして使う、という感じみたいです。

2)プロジェクトの作成

2.1 CakePHPファイルのコピー

CakePHPのダウンロードしてきたファイルは、それそのものが1つのプロジェクトとしての体をなしているようです。

本当はコピーするんじゃなくて別の方法もあるみたいですが、そのへんよくわからないので、先人の手順に従いたいと思います。

と、いうわけで、とりあえず
C:\Apache24\htdocs」配下にコピーして、リネームしておきます。
今回は「cakeSample」という名前のプロジェクトにしようと思います。

#ex)cakephp-2.5.8 → cakeSample

で、htdocs配下はこのようになっております。
f:id:azuki-milk-lush:20150217155858p:plain

個人的にはこの辺の作業は手間なので、なんかビルドツール使いたいなぁ・・・


2.2 cakePHPの動作確認

この状態で、いったん動作確認をします。
http://localhost/cakeSample/」とうってみます。

f:id:azuki-milk-lush:20150217160004p:plain

・・・おや?
なんかcssがきいてないようでしゅ・・・

Apacheの設定が悪いようです。
URLリライティング — CakePHP Cookbook 2.x ドキュメント
ここを見ながらごにょごにょします。

httpd.confの修正

次のように変えましょう。

<Directory "c:/Apache24/htdocs">
AllowOverride All
Options FollowSymLinks
Require all granted
</Directory>

上記の項目はすでにあると思うので、
「AllowOverride」の値を初期設定の「None」から「All」に変えてください。

で、「mod_rewrite.so」のコメントアウトを外します。

LoadModule rewrite_module modules/mod_rewrite.so

これはバイナリなんで開いても意味不明でした。


ほんで、Apache再起動。


f:id:azuki-milk-lush:20150217161524p:plain

おお!cssきました!!


・・・なんかまだ怒られてるけど、今はさしあたり、放置しますw


3)HelloWorld

では、いきなりですがHelloWorldやってみます。

3.1 HelloController.phpの作成

まずは、コントローラクラスの作成です。
以下の場所に作ります。
「C:\Apache24\htdocs\cakeSample\app\Controller\HelloController.php

中身はこちら。

<?php
class HelloController extends AppController {
    public function index() {
	}
}


・・・いやー、久しぶりにテキストエディタで書きました。
どーでもいいけどw

3.2 viewファイルの作成

画面に関するファイルはすべて以下のフォルダに配置します。
「C:\Apache24\htdocs\cakeSample\app\View」

ここに「Hello」というフォルダを作成し、「index.ctp」というファイルを作成します。
フォルダ名はコントローラー名に対応します。

つまり。
View配下の「Hello」フォルダの中身は「HelloController.php」で制御する、ってことです。

で、ファイルの拡張子、「ctp」は「cakeTemplate」の略だそうです。
cakePHP使う時はこの拡張子、って決まりですね、きっと。

ちなみに、こいつの中身はなんでもいいです。

Hello Cake!!

だけ書いとく事にします。

3.3 実行

では、このアドレスを。
http://localhost/cakeSample/hello

f:id:azuki-milk-lush:20150217171151p:plain

できました?


おまけ

ほいでも、この下のエラー、、、気になりますね。

ついでなので、なおしちゃいましょう。
どうやらDBの設定がおかしい?みたいな?

では、「C:\Apache24\htdocs\cakeSample\app\Config\database.php.default」を触ります。

そもそも、「database.php.default」の状態では動かないと思うので、「.default」を削除して、「database.php」にします。

中身は以下のように設定しておきます。

<?php
class DATABASE_CONFIG {

	public $default = array(
		'datasource' => 'Database/Mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => '(ユーザ名)',
		'password' => '(パスワード)',
		'database' => '(データベース名)',
		'prefix' => '',
		'encoding' => 'utf8',
	);

	public $test = array(
		'datasource' => 'Database/Mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => '(ユーザ名)',
		'password' => '(パスワード)',
		'database' => '(データベース名)',
		'prefix' => '',
		'encoding' => 'utf8',
	);
}

これでエラーが消えました!!
f:id:azuki-milk-lush:20150217170654p:plain

こんな感じで。

でも、できればEclipseでできたほうがありがたい・・・
ついでに、ApacheじゃなくてTomcat使うとか・・・

なので、次はどっちか、頑張りますw

<参考>いつもありがとうございます☆

URLリライティング — CakePHP Cookbook 2.x ドキュメント
CakePHPの使い方 インストールからHelloWorldまで | Designup