FuelPHP 1.7.2のブログチュートリアル①

以前のブログチュートリアルが相当古くなっていますので、最新のFuelPHP 1.7.2でのチュートリアルに更新します。

【注意】このチュートリアルはアプリ作成の最短の手順を示したものであり、セキュリティ上必要な設定や機能が省略されています。実際にアプリを運用する場合は、『はじめてのフレームワークとしてのFuelPHP第2版(3) 実践編』などを参考に必要なセキュリティ上の設定や機能をすべて実装されることをお薦めします。

FuelPHP 1.7.2のインストール設定

http://fuelphp.com/の「Download v1.7.2 now!」より、fuelphp-1.7.2.zipをダウンロードし展開します。

FuelPHPの設定ファイルfuel/app/config/config.phpを変更し、FuelPHPのORMパッケージを使えるようにします。

--- a/fuel/app/config/config.php
+++ b/fuel/app/config/config.php
@@ -258,7 +258,7 @@ return array(
        /**************************************************************************/
        /* Always Load                                                            */
        /**************************************************************************/
-       // 'always_load'  => array(
+       'always_load'  => array(

                /**
                 * These packages are loaded on Fuel's startup.
@@ -271,9 +271,9 @@ return array(
                 *     array('auth'     => PKGPATH.'auth/')
                 * );
                 */
-               // 'packages'  => array(
-               //      //'orm',
-               // ),
+               'packages'  => array(
+                       'orm',
+               ),

                /**
                 * These modules are always loaded on Fuel's startup. You can specify them
@@ -309,6 +309,6 @@ return array(
                 * If you don't want the lang in a group use null as groupname.
                 */
                // 'language'  => array(),
-       // ),
+       ),

 );

配列のキーalways_loadpackagesormが有効になるように、コメント記号//を削除します。

データベースの準備

MySQL にデータベースを作成します。

> CREATE DATABASE `fuel_blog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

fuel/app/config/development/db.phpを変更し、FuelPHPからデータベースにアクセスできるようにします。

return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_blog',
            'username'   => 'root',
            'password'   => '',
        ),
    ),
);

ブログの作成

FuelPHPのoil generateコマンドによりコードを自動生成します。

$ php oil generate scaffold post title:varchar[50] body:text

以下のファイルが生成されました。

【注意】生成された全てのコードに目を通し、問題がないか確認することをお薦めします。

fuel/app/classes/controller/post.php
fuel/app/classes/model/post.php
fuel/app/migrations/001_create_posts.php
fuel/app/views/post/_form.php
fuel/app/views/post/create.php
fuel/app/views/post/edit.php
fuel/app/views/post/index.php
fuel/app/views/post/view.php
fuel/app/views/template.php

マイグレーションを実行し、データベースにテーブルを作成します。

$ php oil refine migrate

これで以下のテーブルが作成されました。

CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(50) NOT NULL,
  `body` text NOT NULL,
  `created_at` int(11) DEFAULT NULL,
  `updated_at` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

Webサーバの起動

PHP 5.4以降のビルトインWebサーバを起動します。

$ php oil server

ブラウザからhttp://localhost:8000/postにアクセスすると、記事の一覧が表示され、記事の追加、削除、編集ができます。

スクリーンショット

次回:FuelPHP 1.7.2のブログチュートリアル②

Date: 2014/07/24

Tags: fuelphp, database