share facebook facebook twitter menu hatena pocket slack

2011.12.22 THU

FuelPHPってなんじゃ?(インストール編)

三浦 悟

WRITTEN BY 三浦 悟

PHPのフレームワークは多数ありますが、どのフレームワークも複雑過ぎたり、機能が足りなかったりと、丁度よいモダンなフレームワークはなかなかありませんでした。
そこに登場したCodeIgniterは機能が豊富ですっきりとしている良質なモダンフレームワークとして注目されています。

今回紹介するのFuelPHPは、CodeIgniterの開発者等も参加しており、CodeIgniterや他のプロダクトの良いところを集めた期待のフレームワークのようです。

主な特徴は、下記のようになります。

  • MVC
  • HMVC(画面要素の複数のMVCモジュールをひとつに纏めて1画面をつくれる)
  • モジュール拡張可能
  • セキュリティ対応(出力エンコーディング、入力フィルタ、XSS、CSRF、SQLインジェクション)
  • 豊富なコマンドライン
  • ORMとSQLどちらもOK
  • 認証機構つき
  • 複数のビューテンプレート(smartyなど)に対応
  • scaffoldできる
  • migrateできる
  • PHPUnitできる

上記を見ると分かる通り、Railsから多くの影響を受けているようです。

では、早速試してみます。

ここでは、下記のようにしてblogアプリをつくってみたいと思います。

ドキュメントルート:/var/www/html
アプリベース:/opt/cloudpack/

○インストール

$ curl get.fuelphp.com/oil | sh
$ cd /opt/cloudpack/
$ oil create blog

以上で、一通りのセットが揃います。

次に、セキュリティのためにpublicフォルダだけをDocumentRootに移動します。

# mv blog/public /var/www/html/blog

そして、index.phpに書いてある、アプリパスを変更します。

# vi /var/www/html/blog/index.php
~
/**
 * Path to the application directory.
 */
define('APPPATH', realpath('/opt/cloudpack/blog/fuel/app/').DIRECTORY_SEPARATOR);

/**
 * Path to the default packages directory.
 */
define('PKGPATH', realpath('/opt/cloudpack/blog/fuel/packages/').DIRECTORY_SEPARATOR);

/**
 * The path to the framework core.
 */
define('COREPATH', realpath('/opt/cloudpack/blog/fuel/core/').DIRECTORY_SEPARATOR);

それでは画面をみてみます。

上記のように、Welcome画面が表示されてました。

○Scaffolding

次にデータベースの設定をします。
(mysqlサーバーがインストールされ起動していることを前提とします)

vi /opt/cloudpack/blog/fuel/app/config/db.php
'default' => array(
                'type'        => 'mysql',
                'connection'  => array(
                        'hostname' => 'localhost',
                        'port' => '8889',
                        'database' => 'blog',
                        'username' => 'memorycraft',
                        'password' => '*********',
                        'persistent' => false,
                ),
                'identifier'   => '`',
                'table_prefix' => '',
                'charset'      => 'utf8',
                'caching'      => false,
                'profiling'    => false,
        ),
vi /opt/cloudpack/blog/fuel/app/config/development/db.php
'default' => array(
                'connection'  => array(
                        'dsn'        => 'mysql:host=localhost;dbname=blog',
                        'username'   => 'memorycraft',
                        'password'   => '***********',
                ),
        ),

MySQLでデータベースとユーザーを作成します。

mysql> create database blog;
mysql> GRANT ALL PRIVILEGES ON blog.* TO 'memorycraft@localhost'  IDENTIFIED BY '*******';

次に、scaffoldを作成してみます。

$ cd /opt/cloudpack/blog/
$ oil g scaffold blog title:string body:string tags:string created_at:date

そして、migrateです。

$ oil refine migrate

これで、データベースblogにblogテーブルが作成されました。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| blog               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

それでは、画面を見てみます。

ブログの管理画面が表示されました。
そして、入力して登録してみます。

無事、一覧に保存内容が表示されました。
Railsと同じような感じですね。

あくまでひな形ですが、このくらいのスピードでDB、画面が準備できます。
PHPはこれで決まりなのではないかと思うくらいの可能性を感じます。

これから使い込んでみたいと思います。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。