Skip to content

Instantly share code, notes, and snippets.

@kikuchy
Last active December 22, 2015 00:39
Show Gist options
  • Save kikuchy/6390972 to your computer and use it in GitHub Desktop.
Save kikuchy/6390972 to your computer and use it in GitHub Desktop.
Fuel Crash Course (http://ucf.github.io/fuelphp-crash-course/) を日本語にしてみてる。

#Fuel 特急講座

始める前に

このチュートリアルは、簡単なメッセージングアプリを作りながら Fuel PHP フレームワークについて、あなたに手を動かして学んでもらうためのものです。

必要なもの

あなたの Linux に以下のものを入れておいてください。

  1. Fuel PHP フレームワーク(ここではv1.5.3を使っています)
  2. XAMPP (初心者向け)または LAMP パッケージなら何でもOK(有名なディストリビューションのチュートリアルが沢山あります)
  3. phpMyAdmin (インストール方法はOSに依存するのでここでは説明しないです。 XAMPP ユーザーなら、もうインストールされています)
  4. Model-View-Controller (MVC) パターンについての基本的な理解
  5. Git とバージョンコントロールシステムに関する必要最低限の理解

完成品は Fuel Crash Course GitHub repository に置いてある事を知っておいてください。リポジトリをクローンして、git submodule update --initでサブリポジトリを初期化すれば使えるはず。

パート1 - メッセージングアプリを作る

Fuel PHP のセットアップ

xampp の htdocs フォルダの中に、"fuel_intro"フォルダを作ってください。

次にコマンドラインを開いて、そのフォルダに移動、これを打ち込んでください: git clone https://github.com/fuel/fuel.git . 最後のピリオド(".")を忘れないように。さっき作ったフォルダにファイルがクローンされるはず。

ファイルのクローンが終わったら、以下の2コマンドを打ち込んで、登録されているサブモジュールを更新してください。

git submodule init
git submodule update

動作確認

ブラウザで http://localhost/fuel_intro/public に移動すると、Fuel による“successful install” ページが出るはず。

上手く行かなかったらパーミッションを確認してね。

設定

このチュートリアルでは Fuel に入っている orm package を使用します。/fuel/app/config/config.php を開いて、配列“always_load”のコメントアウトを外します。そのときに、配列 “packages” と“orm” パッケージもコメントアウトを外しましょう。

このファイルには、 Fuel を使う上で必要になるであるものが書き込まれています。デフォルトのタイムゾーンとか。Fuel を動作させるにはデフォルトタイムゾーンの設定が必要です。 Fuel は PHP デフォルトのタイムゾーンを使うので、 PHP: サポートされるタイムゾーンのリスト からあなたに近いところを探しておいてください。

適当に、ここでは America/New_York を使います。

これができたら phpMyAdmin (http://localhost/phpmyadmin) に移動して、 “fuel_intro”という名前のデータベースを作ってください。まだテーブルは作らないでおいてください。後で Fuel にテーブルのセットアップをさせます。

データベース名を "fuel_intro" に、パスワードを mysql をインストールしたときに設定したデフォルトのパスワードにしておきます。こうしておけば、デフォルトの設定でちゃんと全部動くので。編集するのは、development 環境の Fuel の設定ですよ、お間違え無く。

つるりと行こう

Fuel には Oil と呼ばれる素敵なコマンドラインユーティリティがついています。この Oil がコントローラーとテーブルを自動で組み立ててくれます。

コマンドプロンプトを立ち上げて、 Fuel を入れたディレクトリに移動したら、これを走らせてください: php oil 。 oilの簡単な使い方説明が出ます。

これが出ていれば、 Oil は正常に動いています! これであなたも石油王を目指せますね。

どんな建物でも足場 (Scaffold) が必要

Fuel における Scaffolding で、情報を操作するためのコントローラー、モデル (ORM を使用)そしてビューを素早く生成できます。 スキャッフォルドが終わった時点で以下のフィールドが出来ているようにします。

‘id’, ‘created_at’, そして ‘updated_at’ のカラムは自動で作られます。なので、 'name' と 'message' のフィールドだけ oil に渡せば良い訳です。コマンドプロンプトで以下のコマンドを打ち込むだけ。

php oil generate scaffold messages name:string message:text

name の型に指定された “string” の実体は varchar[255] です。

ドキュメントツリーを見ると、コントローラー、モデル、ビューが出来上がっていて、デフォルトの内容が書き込まれているのがわかります。

データベースを見れば、テーブルが作られているのが分かります。これが、データベースのマイグレートが必要な理由です。

マイグ…なんだって?

マイグレーションとは、データベース用のバージョンコントロールシステムのようなものです。/fuel/app/migrations/001_create_messages.php を開くと、マイグレーションを走らせたときに何が起きているのかがわかります。タイポが無いかどうか、マイグレーションを走らせる前にファイルをチェックするのが良いでしょう。

もうマイグレーションの走らせ方は分かりますよね。さあどうぞ:

php oil refine migrate

これでテーブルが出来上がり、メッセージを書き込むことができます! データベースのテーブルを見れば、先に出したスクリーンショットのようになっているのが見られるでしょう。

コードを美しく

http://localhost/fuel_intro/public/messages”にアクセスして、メッセージを追加しましょう。"not found"のページが出たら変ですのでなんとかしてください。

以下のエラーが出たら、でてきたコードを crypt.php という名前で /fuel/app/config に保存します。

メッセージを見ると、テーブルを使うレイアウトの用意が整っていることがわかります。なので、あとは(HTMLの)コードセマンティックを作る時間を取りましょう。

/fuel/app/views/messages/index.php を開いて、以下のテーブルを順不同リストに変えましょう:

これ以上訳の分からないこと無ければ、これでコードはよりセマンティックになりました。(もし傍点やリストの見た目が嫌いならば、CSS使って何とかしてください)

新しいランディングページ

Fuel をインストールした直後の、インストール成功の旨が書かれたページを覚えていますか? そのページはビューから提供されています。ルーティングを通して、 Fuel は標準形でないURLのページへ表示をリダイレクトする事が出来ます。このルーティングの設定は /fuel/app/config/routes.php に書かれています。

デフォルトでは二つのルートがあります: ランディングページと404のページです。

http://localhost/fuel_intro/public にアクセスされたときに、インストール成功のページではなく、メッセージビューにブラウザをリダイレクトするようにします。そのために、 root に対応する値をこう書き換えれば良いでしょう。

バグなど

  • Simpleauthにバグがあるため、このままでは動作しない参考
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment