fc2ブログ

price-change:blog

色んな情報テンコモリ

CodeIgniterで Hello World その2

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の設定値をいじる

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 - ジャンル:コンピュータ

CodeIgniter で へろーわーるど!

まずはお約束の HelloWorld を CodeIgniter で表示させてみたいと思います。とその前に CodeIgniter のURLについてお勉強しなければいけません。ユーザーガイドによるとセグメントベースアプローチを採用していて、検索エンジンにも人間にもわかりやすいように設計されているそうです。ふむふむ。具体例を挙げると

http://www.example.com/hoge/foo/1

の場合、system/application/controllers 内 hoge.phpHogeクラスが呼ばれ→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 のディレクトリ構造は以下のようになっていて、どうやら CodeIgniter_1.5.4 フォルダ内にある index.php にアクセスすると何やら表示される見たいですわ。

ci_dir

おぅ、何てこったい、無事インストールできていれば「Welcome to CodeIgniter!」というページが表示されますぜ旦那。せっかくだから旦那のためにもうちっと調べてみたぜ。どうやら system/application が臭そうですぜ。system/applicateion/controllers 内の welcome.php と system/applicateion/views 内の welcome_message.php が今回の事件に関与しているようだ。

ci_appli_dir

次回へ続く...

テーマ:PHP - ジャンル:コンピュータ

CodeIgniterをインストールしてみる

何となくPHPのフレームワークをお触りしたくなったので CodeIgniter のお勉強を始めようと思います。よし、まずはダウンロードだ!と思い、http://www.codeigniter.com/から、最新版の Version 1.5.4 をダウンロードしてみました。で、どうすればいいんだろう?と思ってググってみたら、CodeIgniter ユーザガイド 日本語版 という素晴らしいサイトがあったので見てみました。

インストールの解説より引用

CodeIgniter は次の4つのステップでインストールできます:

  1. ZIPパッケージを展開します。
  2. サーバに CodeIgniter のフォルダとファイルをアップロードします。通常は、index.php ファイルがルートになります。
  3. application/config/config.php ファイルをテキストエディタで開き、ベースURLをセットします。
  4. データベースを使用したい場合は、application/config/database.php ファイルをテキストエディタで開き、データベースの設定をセットします。

CodeIgniter のファイルの設置場所を隠すことでセキュリティを高めたい場合は、system フォルダをもっと周知されていない他のものにリネームできます。リネームした場合、メインファイルの index.php を開き、ページの先頭にある $system_folder 変数を付けなおした新しい名前にセットしなければなりません。

これで終わりです!

ワォ!アンビリバボー!ちょーかんたーん。

公式サイト
CodeIgniter - Open source PHP web application framework
日本語解説サイト
CodeIgniter ユーザガイド 日本語版

テーマ:PHP - ジャンル:コンピュータ

前のページ