phpフレームワーク自作4
オートロード機能
オートロード機能
ソースコードの中で任意のクラスのインスタンスを作る場合は、そのクラスが定義されているファイルをあらかじめ取り込んでおかなければなりません。
こういったクラスがソースコードの中にたくさんある場合はコードの可読性が欠けたり、読み込みミスをしたりする場合があります。
そこで、phpのオートロードを組み込むことによって、それらの問題を解消し、コーディングの手間を減らすことが出来ます。
ここでは、ライブラリーの読み込み部分とアプリケーションの読み込み部分を分けてますが、すべて、composer.jsonファイルに記述して1箇所にまとめる方法も考えられます。
ライブラリーとアプリケーションが一対の場合はこの方が簡単であると思われます。
参考サイト
PHPの名前空間とcomposerのautoload (PSR-4) サンプル
- document rootからbootstrap.phpファイルを読み込みます。
- bootstrap.phpからオートロード処理クラスのファイルを読み込みます。
- アプリケーションの読み込みクラスがあるトップ階層の名前空間名を定義します。
- 登録、インスタンス生成をするクラスのインスタンスを生成します。
- ローダー処理をします。
bootstrap.phpファイルでは、上記の処理とcomposerを使ったライブラリー読み込み処理の2つを行っています。
bootstrap.php
MySmartyは親クラスをvendorディレクトリのautoload.phpで読み込まれたものを、phpフレームワークのClassLoaderで読み込んでいます。したがって、bootloade.phpでは、autoload.phpを最初に読み込む(記述する)必要があります。
ClassLoader.php
読み込むphpファイル名はクラス名を同一である必要があります。また、phpファイルの中にひとつのクラスが定義されていることが前提条件です。
MySmarty.php
テンプレートライブラリーであるsmartyのクラスの継承、独自設定クラスです。
☆ 関連ページは以下に記載されております。↓↓
phpフレームワーク自作連載目次
- タグ:
- phpframe