今回は、phpの軽量フレームワークとして有名なcodeigniterを使って簡単にウェブサービスを作っていく方法を紹介していきます。
○公式サイト
○公式ユーザーガイド
codeigniterと他のフレームワークとの比較
phpで一番有名なフレームワークといえば、cakephpなのではないでしょうか?
cakephpはruby on Railsの考え方を引き継いでいるので、大規模なウェブサービスをつくりあげやすい。
ですが、決められた構文や学ぶことが多く、まず使えるようになるまでに時間がかかります。さらに自由度が少なく、簡単なウェブサービスを作るときでも、多くのプログラムが動くので、ページのレスポンスが遅く感じられます。
その点、codeigniterは学ぶことが少なく、自由度が高いため、phpを知っていれば、簡単にウェブサービスを構築することができます。また軽量なフレームワークであるため、ページからのレスポンスが早いです。
codeigniter入門
ということで簡単なウェブサービスを作るときには、重宝するフレームワークなんです。
そんなcodeigniterでサイト構築方法を紹介していきます。
まずは、
公式サイトのダウンロードをクリックしてダウンロードします。
SOURCEFORGE.jpに飛ぶのでここの最新バージョンをダウンロードします。
12年6月時点の最新版では、2.0.3-1です。
2.0版と1.?版での大きな違い
スキャフォールド機能が無くなったことです。
Railsをお使いの方は、ご存知だと思いますが、簡単にCRUD機能(データをcreate、read、update、deleteできる機能)を作ることができなくなりました。
私的には、実際サービスを作ると、一つ一つ作っていく事が多いので全然問題にはならないかと…。
codeigniterをアップロード
ダウンロードしたデータを解凍します。
解凍したデータで必要なものは
applicationとsystemのフォルダとindex.phpです。
これをサーバーにアップロードします。
フォルダの内部について
これからWebアプリケーションを作っていく時に、
変更していくのはapplication内のフォルダのデータです。
application内のフォルダ
特に使うのが
・config→設定データのフォルダ
・controllers→アプリケーション内の調整役となるプログラムを入れるフォルダ
・modelrs→データベースからデータを読み込んだり、保存したりするためのフォルダ
・views→ホームページのデザインを(htmlデータ)入れるフォルダ
ざっくりMVC
フレームワークで作っていく上で必要な概念としてModel/View/Controllerの頭文字のMVCが必要になります。
Codeigniterの場合、
あるURLでサーバーに接続するとURLに記載したcontrollerのメソッドのプログラムが実行されます。
例えば、
http://www.wwwww.com/hello/top
の場合
・application/controllers/hello.php内の
<?php class Hello extends CI_Controller{ function top(){ …略… } } ?>
top()が実行され、
そのプログラム内に記入されている内容により、モデルやビューが呼び出され実行されます。
お決まりのhello world
アップロードしたURLにindex.phpをプラスして
http://www.??????.???/index.php
に接続してみてください。
が表示されれば、まずは準備完了です。
Controllerでhello worldを表示させる
・application/controllers/hello.php
<?php class Hello extends CI_Controller{ public function __construct(){ parent::__construct(); } function index(){ echo 'hello world'; } } ?>
このデータを
application/controllers/内にアップロードします。
http://www.??????.???/index.php/hello
に接続してみてください。
hello world
と表示されればOKです。
Viewでこんにちはを表示させる
・application/views/hello_view.php
まずはhtmlデータを作ります。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> こんにちは。 </body> </html>
このデータを
application/views/内にアップロードします。
これだけでは、まだ表示できません。
Controllerでhello_view.phpのデータを読み込むようにします。
先ほどのデータを書き換えます。
・application/controllers/hello.php
<?php class Hello extends CI_Controller{ public function __construct(){ parent::__construct(); } function index(){ $this->load->view('hello_view'); } } ?>
このデータを
application/controllers/内にアップロードし上書きします
http://www.??????.???/index.php/hello
に接続してみてください。
こんにちは
と表示されればOKです。
※解説
$this->load->view('hello_view');
viewsのhtmlデータを読み込むときの方法です。
views(‘views内でデータの場所+.phpをはずす形‘)になります。
※例えば
application/views/layout/header.phpを読み込む場合
$this->load->view('layout/header');
になります。