PHPのRuby on Railsクローンのフレームワーク Akelos PHPをいじってみた出来事のメモ。

Akelosをいじってみるメモ帳

Akelos PHP Blogチュートリアル一覧(全18記事)
Akelos PHP ユーザ認証チュートリアル一覧(全19記事)

2008年06月11日

Akelos Blogチュートリアル 12.ルート設定、動作確認

さて、チュートリアルでは11の作業までで色々動くようになってるんですが、手元の環境では動かない。
なぜかというと、何もオプションを付けないで画面を呼び出した時に、何のコントローラーを呼び出すんだーって設定が無いんです。
なので、追加でもう1つ作業します。

※以下、ちょっと脱線
なぜだーってよく調べてみると、routes.phpのデフォルトルートの初期設定が変わっているようですね。
さらに、BlogControllerのindexアクション内のperformActionメソッド呼び出しもうまく動いていないよう。redirectToAction使わないとだめっぽい。この原因は後で調べよう
以上脱線終了。


ということで、何を初期呼び出しするかを決めるルート設定を行います。

C:\xampp\htdocs\projects\blog\config\routes.php
のファイルをメモ帳などで開いて、下のように編集してください。

-------------------------------------------------------
connect('/:controller/:action/:id', array('controller' => 'blog', 'action' => 'listing'));
$Map->connect('/', array('controller' => 'blog', 'action' => 'listing'));

?>
-------------------------------------------------------
さっき作ったblogコントローラを指定し、さらにlistingアクション(とビュー)を指定しています。

保存して終了。


ということで、やっとブラウザ
http://localhost/blog
を入力して開いて下さい。
ブラウザに
-------------------------------------------------------
Tasks:
Create new Post
Posts
-------------------------------------------------------
こんな感じで表示されていれば成功。
new Postなどをクリックしたり、登録したり適当にいじってOK。
posted by AMUAMU at 22:47| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 11.色々自動生成 scaffold

scaffoldで、色々自動生成しちゃいます。

引き続き、コマンドラインで作業です。
前のマイグレーションとscaffoldの機能が初心者的には、RoRライクのすごそうに見える所ですね。CakePHPとかも同じような機能あるけど。

モデルとコントローラがあれば、一気に色々作ってくれます。

でわ、下記のようにscaffoldを起動
-------------------------------------------------------
C:\xampp\htdocs\projects\blog>c:\xampp\php\php.exe script\generate scaffold Post Blog --force

The following files have been created:
C:\xampp\htdocs\projects\blog\app\controllers\blog_controller.php
C:\xampp\htdocs\projects\blog\app\helpers\blog_helper.php
C:\xampp\htdocs\projects\blog\app\views\layouts\blog.tpl
C:\xampp\htdocs\projects\blog\app\views\blog\add.tpl
C:\xampp\htdocs\projects\blog\app\views\blog\destroy.tpl
C:\xampp\htdocs\projects\blog\app\views\blog\edit.tpl
C:\xampp\htdocs\projects\blog\app\views\blog\listing.tpl
C:\xampp\htdocs\projects\blog\app\views\blog\show.tpl
C:\xampp\htdocs\projects\blog\app\views\blog\_form.tpl


C:\xampp\htdocs\projects\blog>
-------------------------------------------------------

generateスクリプトのscaffoldの使い方は、 scaffoldのあとに、モデル名、コントローラ名を書く事。
大文字・小文字の区別があるので注意!
Postモデルを使うコントローラとしてBlogコントローラを作ってね、という指示ですね。
Blogコントローラと、それに対応したテンプレートなどが自動生成されます。
モデルがあって、それをどう動かすかコントローラで決める。で、Blogコントローラ内にはデフォルトで、アクションがいくつか自動実装されて、それに対応するビューもあわせて生成されると。

MVCモデルによる分離ってのが、ここで行われているわけです。

※以下蛇足
ちなみに、ここではPostモデル、Blogコントローラだけを指定していますが、
generate scaffold Post Blog hoge all
なんて書くとhogeと、allという2つのアクション(とビュー)を自動で追加してくれます。
scaffoldを使うならすぐに使い道の出る機能ですね。
posted by AMUAMU at 22:44| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 10.マイグレーション migration

Postインストーラーを使って、マイグレーションします。

これにより、先ほど書いたテーブル定義をDBに反映させます。

コマンドラインを開いて下さい。
先ほどのpostをmigrateスクリプトで指定してインストールします。
-------------------------------------------------------

C:\xampp\htdocs\projects\blog>c:\xampp\php\php.exe script\migrate post install

<中略>
-----
(mysqlt): CREATE TABLE posts (
id INTEGER NOT NULL AUTO_INCREMENT,
title VARCHAR(255),
body LONGTEXT,
updated_at DATETIME,
created_at DATETIME,
PRIMARY KEY (id)
)TYPE=InnoDB
-----
-----
(mysqlt): COMMIT
-----
-----
(mysqlt): SET AUTOCOMMIT=1
-----
Smart Commit occurred

C:\xampp\htdocs\projects\blog>
-------------------------------------------------------
こんな感じで出れば完了。
id,titleが自動的にSQLコマンドに展開されていますね。
なお、今のバージョンのAkelosではupdated_at、created_atが勝手に加わるようです。
エラーが出たり、心配性の人はDBにpostsテーブルがあるか確認してくださいね。 blog_dev内にあるはずです。
posted by AMUAMU at 22:40| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 9.Postモデルのテーブル定義を書く

Postインストーラーにテーブル定義を書きます。
メモ帳などで、下記のファイルを開いて下さい。
C:\xampp\htdocs\projects\blog\app\installers\post_installer.php

下記のように編集してください。

-------------------------------------------------------
class PostInstaller extends AkInstaller
{
  function up_1()
  {
    $this->createTable('posts',
     'id,'.
     'title,'.
     'body text'
    );
  }

  function down_1()
  {
    $this->dropTable('posts');
  }
}
-------------------------------------------------------

テーブル定義をしています。
カラム名だけでも、適当にカラムの定義をしてくれます。
bodyではtextフィールドと追加しています。
実際は、もっとちゃんと設定したほうがいいですけどね。
posted by AMUAMU at 22:29| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 8.Postモデルを作る

モデルはデータの保存する所や、その格納方法、ルールなんかを書くところです。

コマンドラインを開いて下さい。
ディレクトリをBlogプロジェクトのディレクトリに移動し、再びgenerateスクリプトを使います。
-------------------------------------------------------
C:\xampp\htdocs\akelos>cd c:\xampp\htdocs\projects\blog

C:\xampp\htdocs\projects\blog>c:\xampp\php\php.exe script\generate model Post

The following files have been created:
C:\xampp\htdocs\projects\blog\app\models\post.php
C:\xampp\htdocs\projects\blog\test\unit\app\models\post.php
C:\xampp\htdocs\projects\blog\test\fixtures\app\models\post.php
C:\xampp\htdocs\projects\blog\test\fixtures\app\installers\post_installer.php
C:\xampp\htdocs\projects\blog\app\installers\post_installer.php
-------------------------------------------------------

いくつかファイルが作られたようです。

generateスクリプトの使い方はBlogコントローラ作成時に説明しましたが、ここでは model と指定していることに注意です。
もちろん名前であるPost部分は大文字小文字の区別があります。

これは規約なので、そういうもんだと覚えておけばOK
posted by AMUAMU at 22:26| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 7.Blogコントローラ初期作成

では、ここからは主にAkelosの機能を使って実際にBlogチックなものを作っていくフェーズに。

Blogコントローラーの作成をします。コントローラは色々な処理自体を行う部分です。

コマンドラインを開いて下さい。
ディレクトリをBlogプロジェクトのディレクトリに移動し、generateスクリプトを使います。

-------------------------------------------------------

C:\xampp\htdocs\akelos>cd c:\xampp\htdocs\projects\blog

C:\xampp\htdocs\projects\blog>c:\xampp\php\php.exe script\generate controller Blog

The following files have been created:
C:\xampp\htdocs\projects\blog\app\controllers\blog_controller.php
C:\xampp\htdocs\projects\blog\app\helpers\blog_helper.php
C:\xampp\htdocs\projects\blog\test\functional\controllers\blog_controller.php
C:\xampp\htdocs\projects\blog\test\fixtures\app\controllers\blog_controller.php
C:\xampp\htdocs\projects\blog\test\fixtures\app\helpers\blog_helper.php

-------------------------------------------------------

いくつかファイルが作られたようです。

generateスクリプトでは
generate [作るタイプ] [名前]
という規則で実行します。
とりあえず、ここはcontrollerと指定しています。
名前はBlog。大文字小文字の区別があるので注意してください

※以下蛇足
チュートリアルだと、この作られたファイルのうちのblog_controller.phpに、index()メソッドを足しての中にHello Worldとか表示してるようですが、めんどくさいので割愛。

このindexコントローラーに対応するテンプレートファイルとして、
C:\xampp\htdocs\projects\blog\app\views\blog\index.tpl
というファイルを新規に作ったりもしていますが、それも割愛。まぁ、indexという共通名で繋がるようだってことだけ覚えておくと良いかも。
posted by AMUAMU at 22:23| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 6.設定の続き

Akelosのデータベース詳細設定をします。
ブラウザに戻って下さい。

ユーザと、パスワードを、一つ前でで設定した内容にしてください。
3カ所設定が必要なので注意。
上から、開発用、公開用、テスト用とDB自体が分かれています。

入力したら、次へ。

言語設定の画面です
XAMPPだと環境によってen,ja_jp.sjis,jaとかなっていそうですが、ここではシンプルに
「 ja,en 」と設定します。

これで設定は完了です。

次は実際の作成へ・・・・
posted by AMUAMU at 22:19| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 5.DB設定 初期DBを作る

データベースの設定をしましょう
ブラウザはそのまま置いて、コマンドライン画面に戻ります。

MySQL DBに初期DBを作ります。
まずはmysqlのコンソールに入ります。
-------------------------------------------------------

C:\xampp\htdocs\akelos>c:\xampp\mysql\bin\mysql -u root -p

-------------------------------------------------------
Enter password: と出ますが、そのままエンターキーを押して下さい。
XAMPPは初期インストール状態ではパスワード入っていないので。
そうすると mysql> というコンソールが表示されます。

続けて、公開用、開発用、テスト用のデータベースを作ります。
以下のように入力して下さい。意味はMySQLのマニュアルでも探して下さいw
パスワード(password)部分はちゃんと設定してくださいね。
ユーザはここでは admin としています。
-------------------------------------------------------
mysql> create database blog ;
Query OK, 1 row affected (0.00 sec)

mysql> create database blog_dev;
Query OK, 1 row affected (0.02 sec)

mysql> create database blog_tests;
Query OK, 1 row affected (0.03 sec)

mysql> grant all on blog.* to admin@localhost identified by "password";
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on blog_dev.* to admin@localhost identified by "password";
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on blog_tests.* to admin@localhost identified by "password";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

C:\xampp\htdocs\akelos>
-------------------------------------------------------

これでMySQLへの設定は終わり。
posted by AMUAMU at 22:15| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 4.いっかい確認

Webブラウザで、初期画面を開く。 http://localhost/blog
「ようこそ 今まさに Akelos フレームワークを使用しています!」という画面が開くはず。
これが表示されないなら、インストールなどに別な問題があるはず。

とりあえず、画面中部の設定をするのリンクを踏んで、次の画面に。
データベース選択画面は「MySQL」を選ぶ。
「データベース設定」の画面になるはずです。

とりあえず、ブラウザ画面はこのままにして置いてください。
posted by AMUAMU at 22:13| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Akelos Blogチュートリアル 3.httpd.confの修正(主にWindowsユーザのみ)

Windows環境では、シンボリックリンクを張ってくれないので、手作業でhttpd.confを修正。
※Linuxの場合はsetupスクリプトがやってくれるはず。
c:\xampp\apache\conf\httpd.conf のファイルをメモ帳などで開いて、末尾に以下を追加

------------------------------------------------------

Alias /blog "C:/xampp/htdocs/projects/blog/public"

<Directory "C:/xampp/htdocs/projects/blog/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

-------------------------------------------------------
これにより http://localhost/blog と呼び出されると、公開用のディレクトリに内部的に飛ぶようにリンクですね。まぁ、詳しくはapacheに譲ろうw

その後、XAMPPのコントロールパネルから、Apacheの再起動(もしくは起動)をする。
設定ファイルの読込し直し。
ついでに、MySQLも動いていなければ起動してください。
posted by AMUAMU at 22:07| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。