Open Source Web Development Tutorials - Dev Shed
CodeIgniterでブログ作成ツールを作ろう
(2009/02/20公開)
ブログのエントリを表示するコントローラクラスを作る
前の部分で触れたように、このブログ用アプリケーションの主力となるのはコントローラクラスだ。このクラスにより、既存のブログエントリをすべてリストアップしたり、対応するコメントを表示したり、ユーザーが新しい記事を投稿するのに使うHTMLフォームを表示したり、とプログラムが必要とするすべてのタスクが実行される。
ただし、ここではこのコントローラの初期バージョンをお見せしよう。ここでは、先ほど出てきたMySQLテーブル「blogs」に保存されたすべてのブログエントリを表示する働きをさせている。クラスの構造は以下の通り。
// define 'Blogger' controller class
class Blogger extends Controller{
function Blogger(){
// load controller parent
parent::Controller();
// load database class and connect to MySQL
$this->load->database();
// load helpers
$this->load->helper('url');
}
// display all blog entries
function blogs(){
$data['title']='Blog Entries Listing';
$data['result']=$this->db->get('blogs');
// load 'blogger_view' view
$this->load->view('blogs_view',$data);
}
}
この「Blogger」コントローラによってなされる有用なタスクのいくつかを詳しく分析してみよう。まず、コンストラクタによってCodeIgniterのデータベースクラスが読み込まれ、「config.php」の設定に従って、MySQLとの接続が確保される(CodeIgniterのインストールと設定についてはユーザーマニュアルをご参照のこと)。
データベースクラスのインクルード処理が終わり正常に作動し始めると、ヘルパー関数である「url」を読み込んだところで、コンストラクタの仕事は終わり。「url」は後ほど動的リンクを作るのに利用される。
コントローラのコンストラクタの働きが分かったところで、「blogs()」メソッドに注目してみよう。このメソッドのインプリメントは非常に興味深い。ご覧の通り、まずは前述の「blogs」というMySQLテーブルからすべてのエントリを取り出し、次にこれらエントリを画面表示するためにビューファイルに直接エンベッドしていく。ビューファイルの名前は「blogs_view.php」とする。
この手法はCodeIgniterがMVCパターンをインプリメントするときに使うものなので、このコンセプトについて詳しくは、ユーザーマニュアルをご参照いただきたい。
ブログ用アプリケーション作成の次のステップへ移る前に、このコントローラをCodeIgniterの/system/application/controllers/ フォルダに「blogger.php」として保存し、後ほど呼び出すことができるようにする。
保存が終わったところで、ブラウザにブログのエントリをリストアップ表示する機能を持つコントローラクラスが完成した・・・と言いたいところだが、実はもう1つ重要なステップが必要だ。
その通り!先ほど説明した通り、このコントローラはビューファイルを読み込んでブログエントリの全表示を行っているので、そのビューファイル自体をまず作る必要がある。そこで、次の部分ではビューファイル作成の詳細を説明する。
下の次ページへのリンクをクリックして、読み進めていただきたい。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.








