"BOKU"のITな日常

62歳・文系システムエンジニアの”BOKU”は日々勉強を楽しんでます

PHP+CodeIgniter3:インストールと初期設定。eclipse上で諸々のエラーをなくすまで。

今回からフレームワーク「 CodeIgniter」を試してみます。

f:id:arakan_no_boku:20180926204934j:plain

 

CodeIgniterを選んだ理由

 

消去法です(笑)。

最初は「Laravel」を調べてたのですが、パスしました。

PHPフレームワークの人気1位(Laravel)なのですが、ドキュメントを読み込んでみるに、規約優先で決まり事が多い「決められた通りにしないと叱られるタイプのフレームワーク」みたいなので。

個人的な好き嫌いの世界ですが、自分は規則に縛られすぎるのは嫌いです。

同じ理由で「CakePHP」もパスしました。

それで。

もう少しシンプルで自由度の高いフレームワークはないのか?

探していたら、この記事にあたりました。

www.rdlabo.jp

この記事の中に以下のように書いてあります。

設定優先のCodeigniterはModelとViewを使わずに、Controllerで全てを制御できたりと自由度がすごい高いフレームワークなのです。

PHPがある程度書ける人だったら、数時間ドキュメントを読んだらいきなり開発に入れる感じのゆるさがお気に入り 

おーーー。

これですよ。

さくっと始められて、自由度が高い。

しかも動作は高速らしい。

いいじゃないですか・・。

ということで選びました。

 

さっそく、ダウンロード&解凍から

 

 有難いことに。

CodeIgniterには、非常にわかりやすい日本語ドキュメントが存在します。

f:id:arakan_no_boku:20180908123635j:plain

ここにインストール方法が書いてあるので引用します。

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

1、ZIP パッケージを展開します。
2、サーバに CodeIgniter のフォルダとファイルをアップロードします。 通常は、index.php ファイルがルートになります。
3、application/config/config.php ファイルをテキストエディタで開き、 ベース URL を記入します。暗号化、もしくはセッションを利用する際には 暗号鍵を記入します。
4、データベースを使用する際には、 application/config/database.php ファイルをテキストエディタで開き、データベースの設定を 記入します。

なるほど。

eclipseのプロジェクトにどう取り込むか?は別にして、まずはこのままやってみます。

まずダウンロードしてZIPを解凍します。

f:id:arakan_no_boku:20180908124607j:plain

迷うことなく、最新バージョンです。

一応、PHPの5.6以上推奨らしいので、バージョン的に問題はないですから。

クリックすると普通にダイアログがでるので、保存して、ZIPを解凍します。

2018/09/18追記

>最新バージョンは失敗でしたm(__)m

>CI_Modelクラスにコンストラクタがなくて、こんなエラーがでました。

>Fatal error: Cannot call constructor 

>安定版(devのついてないもの)をダウンロードしたほうがよさそうです。

>ダウンロードはこちらのサイトからするのが良さげです。

 

 

サーバに CodeIgniter のフォルダとファイルをアップロード

これはlocalhostで立ち上げている、WEBサーバーのドキュメントルートにコピーしろということですね。

今回は、WEBサーバーは、pleiades all in one に付属のApacheです。

そして、Apacheのドキュメントルートは、pleiadesをインストールしたフォルダの、「xampp\htdocs」です。

ここにコピーですね。

解凍でできた、「CodeIgniter-develop」フォルダごとコピーして、後でURLをうちやすいように「ci」とでもフォルダ名を修正しておきます。

application/config/config.php ファイルのベースURLの変更

 さっきの「CodeIgniter-develop」フォルダの下にある上記ファイルを開きます。

そして、上記でコピーした「CodeIgniter-develop」フォルダの置き場所を指定するわけですね。

f:id:arakan_no_boku:20180909145635j:plain

上記の赤枠の部分です。

今回は、apatcheがポート80を使ってて、ドキュメントルートの下に「ci」という名前でCodeIgniterのフォルダを置いているので、こんな感じですかね。

ただ、今回のように単に動かしてみるだけなら、この設定はしなくてもいけます。

次回で新規コントローラクラスを作って動かす時に書き換えますし・・ね。

まあ、お好みで。

application/config/database.php ファイルの変更

ここは、今すぐDB使うわけじゃないので、パスしときます。

まずは動くかどうかの確認だけ。

Apacheのサービスを開始後、ブラウザを立ち上げ「http://localhost/ci/」にアクセス。

f:id:arakan_no_boku:20180909150307j:plain

ちなみに、上記ページにはこんな感じのメッセージがかかれてます。

あなたが見ているページは、CodeIgniterによって動的に生成されています。

このページを編集したい場合は、次の場所にあります:

application/views/welcome_message.php
このページの対応するコントローラは、次の場所にあります。

application/controllers/Welcome.php
初めてCodeIgniterを使用する場合は、まずユーザーガイドを読んでください。

 OKみたいですね。

さて・・次です。 

 

eclipseを立ち上げて新規プロジェクトを作ってみる

 

ここは普通のPHPプロジェクトを作ります。  

f:id:arakan_no_boku:20180908132031j:plain

まあ、特別なことはせず、名前だけ決めときます。

f:id:arakan_no_boku:20180908132120j:plain

作成したPHPプロジェクトを選択して、「インポート」を選びます。

インポートのダイアログで「ファイルシステム」を選びます。

f:id:arakan_no_boku:20180908133052j:plain

そこで、先ほどダウンロードした「CodeIgniter-develop」フォルダを指定して、全て選択します。

f:id:arakan_no_boku:20180908133636j:plain

完了を押すと、こんな感じ。

f:id:arakan_no_boku:20180908133805j:plain

 

おや・・妙なところにエラーがあるぞ

 

インポートしたら大量の警告やエラーがでてます。

確認すると、回避しようがないものばかり。

例えば。

こんなコメントの中のNewが型に解決できないとか・・・。

/**
* Increment a raw value
*
* @param string $id Cache ID
* @param int $offset Step/value to add
* @return New value on success, FALSE on failure
*/

IF~elseで分岐しているのに、型の重複定義だとエラーになってたり。

if ( ! isset($query_builder) OR $query_builder === TRUE){
    require_once(BASEPATH.'database/DB_query_builder.php');
    if ( ! class_exists('CI_DB', FALSE)){
        class CI_DB extends CI_DB_query_builder { }
    }
}elseif ( ! class_exists('CI_DB', FALSE)){
        class CI_DB extends CI_DB_driver { }
}

これは、eclipse側のプロパティを修正して、無視させるしかないです。

まずは、プロジェクトのプロパティのビルドパスです。

ここで、無視させるソースを指定していきます。

除外を選択して編集ボタンを押します。

f:id:arakan_no_boku:20180909212749j:plain

 

ここで、エラーになっているソースを個別に除外対象に追加します。

楽なやり方はないです。

地道にエラーになっているソースを「問題」のリストから見つけて、除外対象に追加していくしかないです。

f:id:arakan_no_boku:20180909220217j:plain

とりあえず、今回は16ファイルほど指定すると、エラーは消えました。

それでも。

まだ、1000個近い警告がでてます。

ほぼ、HTMLとXMLの警告です。

これらも全部フレームワークのソースに対する警告なので、無視してもいいのですが。

やっぱり、放置しとくと、自分がソースを書いていった時に重要なメッセージを見落とすことになって具合が悪いです。

ここも、eclipse側の設定を変更して消しときます。

修正するのは、プロジェクトのプロパティ>検証のHTML構文とXML構文の部分です。

今回は、以下のようにしたら、警告はほぼほぼ消えました。

変更したのは、赤枠の部分です。

f:id:arakan_no_boku:20180909222937j:plain

f:id:arakan_no_boku:20180909222954j:plain

f:id:arakan_no_boku:20180909223010j:plain

これで、とりあえずフレームワークのソースに対するエラーと警告はなくなりました。

 

eclipseから実行できるか確認する

 

エラーがなくなったので、eclipseから実行してみます。

プロジェクトの直下にある「index.php」の右クリックメニューで実行を選びます。

まず「サーバーで実行」(内部サーバーで実行)をしてみます。

f:id:arakan_no_boku:20180909225724j:plain

いけました。

Apatcheを起動して、「PHP webアプリケーション」を実行でも、同じく問題なく実行できました。

 

デバッグはどうかな?

 

デバッグもやってみます。

同じく、プロジェクトルートの「index.php」を選択して、デバッグを実行します。

PHPCLIアプリケーションを選ぶのを忘れずに。

f:id:arakan_no_boku:20180909230401j:plain

デバッグパースペクティブに切り替えてみると。

f:id:arakan_no_boku:20180909230513j:plain

ちゃんと、ブレークポイントで止まってて、ステップ実行もできます。

いけてますね。

とりあえず。

  • CodeIgniterのダウンロードとインストール
  • eclipseでのCodeIgniterプロジェクトの作成
  • サンプルプログラムの実行とデバッグ

以上はひととおりできました。

よしよし。

次回に続きます。