Да, возможно создать экземпляр другого класса таблицы внутри методов другого класса таблицы.
Но если у вас есть работа над приложением, которая включает в себя несколько таблиц, лучшеспроектируйте класс, который инкапсулирует эту работу приложения, и используйте обе таблицы из него.
Вот почему неточно называть таблицу моделью.Нигде в документации Zend_Db_Table
таблица не называется моделью.
Модель представляет некоторую часть вашего приложения, и для ее работы может использоваться несколько таблиц.Класс, который соответствует вашей таблице - это просто таблица.
Отсоедините ваши модели от ваших таблиц!
Ваш комментарий: Вы все еще думаете, что модель расширяется Zend_Db_Table_Abstract
- это не так!
Модель не класс доступа к данным, это единица вашего приложения.Он не расширяет какую-либо часть Zend Framework.
Отношение между моделью и таблицей: HAS-A , а не IS-A .
class MyRegistryModel // extends nothing
{
/**
* @var Zend_Db_Table_Abstract
*/
protected $_registryTable;
/**
* @var Zend_Db_Table_Abstract
*/
protected $_namesTable;
public function __construct()
{
$this->_registryTable = new RegistryTable();
$this->_namesTable = new NamesTable();
}
public function getDailyReport()
{
// use the tables as needed to build the report
}
}