Ethnaのソースコードを読み解く 第1回 index.php
はじめに
この連載では、Ethna2.3.6のソースコードとその読み方を解説します。Ethnaコマンドを使って"Sample"という名前のプロジェクトを作ったという前提で話を進めます。
手元にEthnaがない方は、公式サイトを見てインストールしてみてください。
Ethnaインストールガイド
Windowsユーザの方はコレ↓で一発です。
5分でまっさらなWindowsにEthnaをインストールしてHello Worldを表示する方法
話を単純化するために、CLI,XML-RPC,SOAPなどには一切触れませんのでご了承ください。
Ethnaのプログラム実行はどこから始まるのか
EthnaでWebアプリを作るとき、通常はアクション、ビュー、テンプレートファイルの3セット(+DBクラスや自作ライブラリ)をバリバリ記述することになると思います。
では、問題です。
Ethnaで作ったWebアプリの実行はどこから始まるのでしょうか?
こたえ:index.php
全てはindex.phpから始まる
これは重要です。そのアプリが、たとえ"hello world"と表示するだけの簡単なアプリであろうと、
あるいは、何百人のユーザを抱える大規模なソーシャルネットワーキングSNSサービスであろうと、
ユーザがindex.phpにアクセスしてきたなら、プログラムの実行はindex.phpから始まります。
つまりここから始まります。
<?php
require_once 'C:¥xampp¥htdocs¥sample¥app/Sample_Controller.php';
Sample_Controller::main('Sample_Controller', 'index');
?>
これがEthnaの第一歩です。
解説
1行目では、Sampleプロジェクトのコントローラーファイルを読み込んでいます。コントローラというのは、メインのプログラムのことです。
require_once 'C:¥xampp¥htdocs¥sample¥app/Sample_Controller.php';
2行目では、読み込んだファイルの中の、Sample_Controllerクラスのmain関数を実行しています。
Sample_Controller::main('Sample_Controller', 'index');
さあここからが、Ethna内部への旅の始まりです。
つづく
余談:MVCなど忘れてしまえ
公式サイトやEthna本によると、Ethnaとは、
MVCモデル2とフロントコントローラパターンに基づいたスタンダードなウェブアプリケーションフレームワークであると書かれています。
んがっ、そんな話は忘れてしまいましょう。