最も簡単な方法は、ただinclude
のクラスです。
class PolygonController …
public function someAction()
{
include 'path/to/class/file.php';
$pointLocation = new pointLocation;
// do something $pointLocation;
}
あなたはおそらく同様にはZend_Loaderまたはオートローダーを使用してこのファイルを読み込むことができますが、クラス名は梨/ ZFの命名規則に従ってdoes't以来、最も簡単にはこれです。何らかの形でアクセスできる限り、実際のクラスファイルをどこに置いても問題ありません。
これはサードパーティ製のクラスなので、ZF/Pearの命名規則に一致するように拡張することができます。あなたがオートローダーを使用できるようにその後、あなたのライブラリーのフォルダにそれを置く:
<?php
include 'path/to/class/file.php';
class My_PointLoader extends pointLoader {}
このファイルは
$autoloader->registerNamespace('My_');
であなたの「My_」名前空間を登録し、
APPLICATION_ROOT/lib/My/PointLoader.php
にそして、あなたのブートストラップに配置されるだろう
コントローラで$pointLoader = new My_PointLoader;
を実行すると、オートローダがそのファイルをインクルードします。
または、あなたは、例えば、機能を追加したり、クラスのAPIを変更、アダプターでそれを集約したいです
<?php
include 'path/to/class/file.php';
class My_PointLoader_Adapter
{
protected $_pointLoader;
public function __construct(pointLoader $pointLoader = NULL)
{
if($pointLoader === NULL) {
$pointLoader = new pointLoader;
}
$this->_pointLoader = new pointLoader;
}
public function someAdapterMethod($foo)
{
$this->_pointLoader->someMethodInPointLoader($foo);
}
// … more methods
}
次に、上記のように名前空間の接頭辞を追加すると、オートローダーがインクルードを処理します。
これは正しい方法ではありません。正しいものはZend_Loaderを使うことです。 – hsz
しかし、このクラスファイルはどこに置く必要がありますか?私のコントローラやモデルやビューの中に? –
@hsz ZFドキュメントには、Zend_Loaderを使う**あなたは**持っていると指摘してください。フレームワークコンポーネントが存在するため、すべてのフレームワークコンポーネントを使用する必要はありません。 – Gordon