プログラミング
規約その1 MVCパターン?編
前 なし
おはようございます。
休日はいつまでも寝ているが、なかなか寝付けないゆうきんです。
ちなみにこれが初投稿です。
これから、少しずつFuelPHPのことについて書いていきたいと思います。
よろしくお願いします。
今回はFuelPHPで特に気を付けなければならない規約をまとめたいと思います。
FuelPHPは、インストールして出来たフォルダに、対応するファイルを配置していくだけでWebサイトが作れるフレームワークです。
主に3種類のファイルを配置していくことになります。
3種類のファイルは「コントローラ」「モデル」「ビュー」で、それぞれに規約が存在します。
規約を書く前に「コントローラ」「モデル」「ビュー」の説明をしたいと思います。
知っている人は読み飛ばして下さい。
コントローラとは?
文字通りアプリケーション全体を制御するものです。
基本的にコントローラからモデルとビューを呼び出し、
ビューとモデルのデータ受け渡しも行います。
モデルとは?
モデルはデータの管理を担当します。
データベースの操作のみならず、ファイル操作、メールの送信なども役割となります。
ビューとは?
表示を担当します。えぇそれだけです。
これを合わせてMVCパターンと呼びます。FuelPHPのみならずいろいろなもので使います。
さて、説明が終わった所で、規約のまとめを書きたいと思いますが、長くなるので次に書きます。
FuelPHP全体の規約
- ファイル名、フォルダ名は全て小文字
- ファイルは全てPHP形式
- PHPのコードしか含まないファイルは、終了タグ( ?> )を書かない
- ファイル名とクラス名は同じにしなければならない
この3つは前提になるので、よく覚えておいて下さい。
次からは「コントローラ」「モデル」「ビュー」それぞれの規約をまとめます。
では、おやすみなさい。
Smartyを使う
FuelPHPにテンプレートエンジンであるSmartyを足してみる。
ViewファイルをSmartyで書くと楽になるよ!っていうことです。
そもそもSmartyって何?っていうのはWikipedia参照でお願いします。
FuelPHPにSmartyをいれる
インストール手順。
1. Smartyをここからダウンロード。
2. ダウンロードしたものは圧縮されてると思うので展開する。
3. FuelPHPの「app/vendor」フォルダに、展開したSmartyフォルダを突っ込む。
4. FuelPHPの「app/config/config.php」を編集。paserというものを追記する。
1 2 3 4 5 |
'always_load' => array( 'packages' => array( 'parser', //追加 ), ) |
これでSmartyが使用可能になります。
早速Smartyを使ってみる
Smarty自体の使い方や構文はまた別の機会で。
ここではFuelPHPでのSmartyの使い方をかきます。
今までのViewファイル「sample.php」が
Smartyにすると「sample.smarty」になります。
このファイルをControllerから呼び出すには
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$data = array( 'title' => 'SampleTitle', 'test_user' => 'takahashi', ); //今までの呼び出し方 $view1 = View::forge('welcome/index',$data); //smartyファイルの呼び出し方 $view2 = View_Smarty::forge('welcome/index', $data) //拡張子指定のこんな呼び方もあります $view3 = View::forge('welcome/index.smarty',$data); |
このようにします。(下2種類が使えます)
肝心のindex.smartyの中身は
1 2 3 4 5 6 7 8 9 10 |
<html> <head> <title>{$title}</title> </head> <body> ようこそ!{$test_user}さん。 </body> </html> |
こんな感じです。
FuelPHPの初期設定 (CentOS)
FuelPHPの初期設定メモ。
パスが微妙にUbuntuっぽくないのは、それは私がCentOS使ってたせいです。ごめんなさい。
大体同じなので気にせず。
では行きます。
1. Apache PHP MySQL oil をインストールする
はい、それぞれインストールしてください。
oilはここでインストール手順を見ましょう。
2. oil create する前に・・・
php.iniを編集
1 2 |
[Date] ;date.timezone = |
を
1 2 |
[Date] date.timezone = ‘Asia/Tokyo' |
とします。
環境によっては、最初からなっていてすんなりoil create が通るかもしれませんね。
3. oil create ・・・
適当なフォルダに「oil create ・・・」を実行してFuelPHPをインストールします。
今回は,/home/test_user/sample という具合に作るとします。(test_userは今回使用するユーザーアカウントです)
1 2 |
$cd /home/test_user $sudo oil create sample |
これで完了。
次に、作成したsample配下のpublicのシンボリックリンクをApacheの公開ディレクトリに貼っ付けてあげます。
1 |
$sudo ln -s /home/test_user/sample/public /var/www/html/fuel |
そして忘れちゃならんのが、Apacheがリンク先にアクセスできるようにパーミッションの変更をしなければならないです。
oilコマンドにて作成したFuelPHPディレクトリの「sample」は、oilコマンドが自動的に適切なパーミッションにしてくれるのでそのまま。
この時変更するディレクトリはユーザーのホームディレクトリ。
1 |
$sudo chmod 705 /home/test_user |
これでAHー64 Apacheが燃料タンクFuelPHPの公開フォルダ(public)を攻撃見つけることが可能となります。
Apacheが起動している場合、この時点で外部公開されています。
4. config.php
sample/fuel/app/config/config.php を編集しまっしょい。必要最低限+アルファで。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php ini_set('default_charset', 'UTF-8'); return array( 'index_file' => false, 'language' => 'ja', // Default language 'language_fallback' => 'en', 'locale' => 'ja_JP', 'default_timezone' => 'Asia/Tokyo', 'log_threshold' => Fuel::L_ALL, 'log_path' => APPPATH.'logs/', 'log_date_format' => 'Y-m-d H:i:s', ); |
2行目は文字コード設定。
大事なのはtimezoneの設定。あぁ怖い怖い。
下の方のlogはFuelPHPが出力してくれるログの設定です。
log_thresholdでALLとか指定すると、エラーや警告含め全部ログ出してくれます。
超最低限設定は以下
1 2 |
<?php return array('default_timezone' => 'Asia/Tokyo'); |
やっぱりタイムゾーンだけは設定しないとエラーになる。(私の環境だけ?)
あぁ怖い怖い。
5. 試しにアクセス
ここまできたらブラウザからアクセスしてみましょう。
Welcomeページが表示されるはずです。
表示されなかった場合は、あなたの設定が間違っているか、私の説明が適当だっていうことです。
インストール
最近人気という噂のPHPフレームワーク、FuelPHPを使ってみます。
日本語のドキュメントはこちらで閲覧できます。gitでざっくり落とすならこちら。
インストールは、自動または手動を選択できますが、ここでは自動インストールを行います。
まず最初にFuelPHPの様々な自動生成機能を提供してくれるoilコマンドをインストールします。
1 |
$ curl get.fuelphp.com/oil | sh |
oilコマンドをインストールしたら、HTMLのドキュメントルートに移動し、oilコマンドでプロジェクトリソースを生成します。
1 2 3 4 5 6 |
#ubuntuの場合のデフォルト $ cd /var/www #mysightディレクトリに置くことにします $ mkdir mysight #mysightディレクトリにリソースをインストールします $ oil create mysight |
これでインストールは完了です。
ブラウザでmysight/publicを開くとウェルカムページが表示されます。
mysight下のfuelphpをEclipse PDTにプロジェクトとして取り込めば開発を始めることができます。
2013年1月8日現在、FuelPHPのEclipseプラグインはまだ無いようです。
FuelPHPを使ってみた過程を書いていきます。
連載にあたっては、達人出版会の「はじめてのフレームワークとしてのFuelPHP」を参考にしました。