CodeIgniter 勉強中
ユーザーガイドの目次を見ると、何かの作成方法、機能、クラス、ヘルパーなどの
項目がずらっと並んでいる。 一通り目を通しておいたほうがいいだろうが、
そろそろコードを書きたくなってきた。 ガイドの目次を見る限り
チュートリアルの類はない。
何を作ろうか迷い、検索してみると丁度ブログ作成のチュートリアルが見つかった。
CakePHP のチュートリアルもブログだったし、これをやってみることにした。
参考記事の選定
CakePHP の方には公式でチュートリアルがあったが、CodeIgniter の方はそれが無い。
一般ユーザーたった一人のチュートリアルだけを信用するのは怖い。
元が英語圏のモノということで、英語圏のブログチュートリアルと付きあわせて
学んでいくことにした。
参考記事
http://d.hatena.ne.jp/u_eupha/20110630/1309420435
http://blog.pisyek.com/2011/03/create-a-simple-blog-using-codeigniter-2-0-part-1/
phpMyAdmin のインストール
テーブル作成
ID, タイトル、本文、日付を持つテーブルを作成。
CodeIgniter のデータベース設定
application/database.php
の以下の行から
$db['default']['username'] = '';
データベースユーザー名、パスワード、データベース名を設定。
コーディング
ついに CodeIgniter でのコーディングが出来る。
チュートリアルのまんまだけどはじめての環境なので手打ちで。
・コントローラー ・モデル ・ビュー を作成。 ファイル名とクラス名が同じじゃないといけなかった気がしたが、
それは CakePHP の方だった。
空白
チュートリアルの通りにやったが空白のページが表示されただけだった。
エラー出力を有効にするとデータベースにアクセス出来ていなかった。
原因はコロンがセミコロンになっていた。 原因を探るためにデバッグ機能について調べると関数の先頭に以下の
文を追加するだけで良い。
$this->output->enable_profiler(TRUE);
ただ、この文はコンストラクタ内で使うとエラーになるらしい。 調べても
ソレらしい答えは見つけられなかった。 詳細希望。
初心者が覚えておいたほうが良さそうな事
セグメントが分からない
CodeIgniter について調べているとよくセグメントというキーワードが出てくる。
これがよく分からない人は、ユーザーガイドの URIクラスの項を読むといい。
コントローラーの項で「URI の第2セグメントは」とか最初は訳が分からなかったが、
URLクラスの項では以下のように分かりやすく説明している。
http://example.com/index.php/news/local/metro/crime_is_up
セグメント番号は次のようになります:
news local metro crime_is_up
base_url
こちらのチュートリアルを試してみたのだが上手くいかない。
http://www.geekzshu.com/codeigniter/1830
新規追加のリンクをクリックすると
「localhost のサーバへの接続を確立できませんでした。」
というページに飛ぶ。
このリンクで使用しているアンカーの URI 指定と config.php の base_url 辺りが
原因と踏んで色々試した結果、config.php の index_page に index.php を
指定したら上手くいった。
index_page に関しては
この設定は「$this->config->site_url()」メソッドと「URLヘルパ」の
「site_url()」関数で利用される以外、 他の動作に影響はありません。
従って、これらのメソッドと関数を利用しなければ設定する必要はありません。
http://www.ci-guide.info/practical/configuration/config/
という記述を見つけた。 これらの関数は使っていないのだが・・・。
とうとうブログのようなモノを動かすことが出来た。
体裁が酷いから、復習の意味も込めて見た目を整えてみよう。