CodeIgniter で へろーわーるど!ではコントローラ上で直接 Hello World を表示させていましたが、今回はビューを使って表示させたいと思ってお勉強なのだ。
まずは以下のようなビュー(hello_world_view.php)を作成して application/views に保存する。
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
んで、コントローラ側で $this->load->view('View名'); で読み込むのだ。
<?php
class HelloWorld extends Controller {
function index()
{
$this->load->view('hello_world_view');
}
}
?>
データを渡したい場合は、$this->load->view('View名', $data); で渡すべし。$data は配列またはオブジェクトで。
配列バージョン
<?php
class HelloWorld extends Controller {
function index()
{
$data = array('hello'=>'Hello', 'world'=>'World!');
$this->load->view('hello_world_view', $data);
}
}
?>
オブジェクトバージョン
<?php
class HelloWorld extends Controller {
function index()
{
$data = new Hoge();
$this->load->view('hello_world_view', $data);
}
}
class Hoge
{
public $hello = 'Hello';
public $world = 'World!';
}
?>
下記のビューに配列・オブジェクトどちらで渡しても結果は同じ
<html>
<head>
<title>Test</title>
</head>
<body>
<h1><?php echo $hello .' '.$world;?></h1>
</body>
</html>
<?php echo 変数名;?> が面倒くさいなら config.php の $config['rewrite_short_tags'] を TRUE に設定すれば、
<?=変数名?> でもOK牧場
<html>
<head>
<title>Test</title>
</head>
<body>
<h1><?=$hello .' '.$world;?></h1>
</body>
</html>
多次元配列をループさせい場合は
<?php
class HelloWorld extends Controller {
function index()
{
$data = array('str' => array('Hello', 'World!'));
$this->load->view('hello_world_view', $data);
}
}
?>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Loop</h1>
<ul>
<?php foreach($str as $list):?>
<li><?=$list;?></li>
<?php endforeach;?>
</ul>
</body>
</html>
で可能姉妹。
テーマ:PHP - ジャンル:コンピュータ
CodeIgniter の設定値をいじくってみた。取りあえずいじりそうなポイントだけ上げてみた。
- index.php
- $system_folder
- システムフォルダ名を指定
- $application_folder
- アプリケーションフォルダ名を指定
- application/config/config.php
- $config['base_url']
- あなたのサイトのURL 例:http://www.example.com/ 最後のスラッシュを忘れずに。
- $config['index_page']
- indexページ名を指定
- $config['url_suffix']
- URLのおケツに色々くっつけたい場合は指定 例:".html"
- $config['language']
- 言語ファイル
- $config['charset']
- 文字コード
- $config['enable_query_strings']
- デフォルトではGETは消去されて使えないため、使いたい場合のみTRUEに。
- $config['controller_trigger']
- GET使用時のコントローラ変数名 例:index.php/blog/index → index.php?c=blog&m=index
- $config['function_trigger']
- GET使用時のメソッド変数名 例:index.php/blog/index → index.php?c=blog&m=index
- application/config/autoload.php
- $autoload['libraries']
- 自動的に読み込むライブラリ(配列で指定)
- $autoload['helper']
- 自動的に読み込むヘルパー(配列で指定)
- $autoload['plugin']
- 自動的に読み込むプラグイン(配列で指定)
- $autoload['config']
- 自動的に読み込む設定ファイル(配列で指定)
- $autoload['language']
- 自動的に読み込む言語ファイル(配列で指定)
- application/config/routes.php
- $route['default_controller']
- 指定したコントローラが無い場合に呼ばれるコントローラ
こんな感じかしらー。ウララー。
テーマ:PHP - ジャンル:コンピュータ
まずはお約束の HelloWorld を CodeIgniter で表示させてみたいと思います。とその前に CodeIgniter のURLについてお勉強しなければいけません。ユーザーガイドによるとセグメントベースアプローチを採用していて、検索エンジンにも人間にもわかりやすいように設計されているそうです。ふむふむ。具体例を挙げると
http://www.example.com/hoge/foo/1
の場合、system/application/controllers 内 hoge.php の Hogeクラスが呼ばれ→fooメソッドの引数に1が渡されます。Hogeコントロールクラスのコードはこんな感じ
<?php
class Hoge extends Controller
{
function index()
{
echo 'index!';
}
function foo($id)
{
echo $id;
}
}
?>
ちなみに、http://www.example.com/ にアクセスした場合は、system/application/config 内 routes.php の $route['default_controller'] で設定してあるクラスが呼ばれますよ(デフォルトは welcome)。また、http://www.example.com/hoge/ にアクセスした場合は、indexメソッドが呼ばれます。それともう一つ、必ず Controller クラスを extends しましょう。いぇい。ブギウギ。
そんな感じで、HelloWorldクラスを書いてみました。
<?php
class HelloWorld extends Controller {
function index()
{
echo 'Hello World!';
}
}
?>
http://www.example.com/helloworld にアクセスして無事表示されました。以上終わり。
テーマ:プログラミング - ジャンル:コンピュータ
前回のエントリーCodeIgniterをインストールしてみるで何事もなくインストールできたので今回は動作確認してみようと思います。CodeIgniter のディレクトリ構造は以下のようになっていて、どうやら CodeIgniter_1.5.4 フォルダ内にある index.php にアクセスすると何やら表示される見たいですわ。
おぅ、何てこったい、無事インストールできていれば「Welcome to CodeIgniter!」というページが表示されますぜ旦那。せっかくだから旦那のためにもうちっと調べてみたぜ。どうやら system/application が臭そうですぜ。system/applicateion/controllers 内の welcome.php と system/applicateion/views 内の welcome_message.php が今回の事件に関与しているようだ。
次回へ続く...
テーマ:PHP - ジャンル:コンピュータ
何となくPHPのフレームワークをお触りしたくなったので CodeIgniter のお勉強を始めようと思います。よし、まずはダウンロードだ!と思い、http://www.codeigniter.com/から、最新版の Version 1.5.4 をダウンロードしてみました。で、どうすればいいんだろう?と思ってググってみたら、CodeIgniter ユーザガイド 日本語版
という素晴らしいサイトがあったので見てみました。
インストールの解説より引用
CodeIgniter は次の4つのステップでインストールできます:
- ZIPパッケージを展開します。
- サーバに CodeIgniter のフォルダとファイルをアップロードします。通常は、index.php ファイルがルートになります。
- application/config/config.php ファイルをテキストエディタで開き、ベースURLをセットします。
- データベースを使用したい場合は、application/config/database.php ファイルをテキストエディタで開き、データベースの設定をセットします。
CodeIgniter のファイルの設置場所を隠すことでセキュリティを高めたい場合は、system フォルダをもっと周知されていない他のものにリネームできます。リネームした場合、メインファイルの index.php を開き、ページの先頭にある $system_folder
変数を付けなおした新しい名前にセットしなければなりません。
これで終わりです!
ワォ!アンビリバボー!ちょーかんたーん。
- 公式サイト
- CodeIgniter - Open source PHP web application framework
- 日本語解説サイト
- CodeIgniter ユーザガイド 日本語版
テーマ:PHP - ジャンル:コンピュータ