現時点では、MVCフレームワークを構築したいと思います。すべてが順調に進んでいますが、今度は別の関数(codeigniterのようなautoloadクラス)を追加したいと思います。私のautoload.phpの例として、私は次のようにしています。
$autoload['helpers'] = array('url');
これでURLクラスをロードするにはどうすればよいですか?
現時点では、MVCフレームワークを構築したいと思います。すべてが順調に進んでいますが、今度は別の関数(codeigniterのようなautoloadクラス)を追加したいと思います。私のautoload.phpの例として、私は次のようにしています。
$autoload['helpers'] = array('url');
これでURLクラスをロードするにはどうすればよいですか?
ここで答えを見つけました。しかし、ここにいくつかの例があります:
$autoload['libraries'] = array('database','ion_auth');
$autoload['helper'] = array('url');
かなりスリムになりましたが、コンセプトは以下のようなものになります。ファイルで CI のオートロード方法を確認でき/system/core/Loader.php
ます。
foreach($autoload['helpers'] as $helper)
{
include_once($your_base_path . $path_to_helpers . $helper . '.php');
}
ヘルパーに関しては、アーロンの例は素晴らしいですが、追加のクラスが必要な場合は、おそらくそれらのインスタンスも作成する必要があります。
$autoload = array();
$autoload['libraries'] = array('url');
foreach($autoload as $set)
{
foreach($set as $class)
{
if(file_exists($set.'/'.$class.'.php'))
{
require_once($set.'/'.$class.'.php');
$this->$class = new $class;
}
}
}
これは、配列を構築し、配列を反復処理し、ここのphp.netのような標準の読み込みクラスを使用することにより、codeigniter の場合と同じように簡単に行うことができます。これは構築しようとしている独自の MVC フレームワークであるため、Zend::autoloader を拡張機能としてフレームワークに追加できます。構成ファイルがあると仮定します。その中で、Pear やその他の拡張ライブラリを使用する場合のように、ライブラリ インクルードを定義できます。すべての Zend クラスを引き出して、そこから拡張するだけです。私が codeigniter を使用するときは、通常、Zend を拡張機能として追加して、フレームワークをより堅牢にし、車輪を再発明しないようにします。
これは zend を codeigniterに組み込むための参照リンクです。これはかなり古いものであり、現在の codeigniter リリースに合わせて調整が必要になる可能性があります。
これが役立つことを願っています。