ユーザーを含むテーブルがあるとしましょう。したがって、そのテーブルの各行はユーザーです。ここで重要なのは、複数形と単数形です。
それでは、ZendFrameworkでこれらのモデルを設定する方法を見てみましょう。
class Model_Users extends Zend_Db_Table_Abstract
{
protected $_name = 'users';
protected $_primary = 'user_id';
}
ここで、によって返される標準行以外の別のユーザーオブジェクトが必要であるとさらに仮定しますZend_Db_Table
が、それでもその機能を維持したいので、拡張するだけです。その場合、次のような単一のユーザーを実装して名前を付けることは理にかなっています。
class Model_User extends Zend_Db_Table_Row_Abstract
{
... Bunch of cool functions here :)
}
次に、クラスに追加
protected $_rowClass = 'Model_User';
するだけModel_Users
で完了です...通常はそうですが、ZendFrameworkがクラスを自動ロードする方法に問題があるようです。フォルダ構造を持ち、/defaut/models/foo.php
その中のクラスに名前を付けることができるのでModel_Foo
。フォルダには複数形の名前がありますが、クラスには単数形の名前があります。上記のような構造にしたい場合、これが問題になるようです。UserModel.php
Zend Frameworkは、とを区別できないようですUsersModel.php
。
したがって、この長くてやや詩的な質問に対する質問は次のとおりです。
インクルードを手動で使用し始めることなくこれを回避する方法はありますか?