php軽量フレームワークcodeigniter入門

今回は、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');

になります。


コメントする