Zend framework SocialEngine:getDbTable()与getItemTable()的比较

Zend framework SocialEngine:getDbTable()与getItemTable()的比较,zend-framework,socialengine,Zend Framework,Socialengine,我经常看到在SocialEngine中使用Engine\u Api::\u()->getDbTable()检索表 例如: $usersTbl = Engine_Api::_()->getDbTable('users','user'); $row = $usersTbl->createRow(); $row->user_id = $user->getIdentity(); $row->phone_number = $phoneNumber; $row->save

我经常看到在SocialEngine中使用
Engine\u Api::\u()->getDbTable()
检索表
例如:

$usersTbl = Engine_Api::_()->getDbTable('users','user');
$row = $usersTbl->createRow();
$row->user_id = $user->getIdentity();
$row->phone_number = $phoneNumber;
$row->save();
然而,我也看到SocialEngine在许多地方使用了
Engine\uAPI::()->getItemTable
。例如:

$table = Engine_Api::_()->getItemTable($type);
$row = $table->createRow();
foreach($params as $key=>$value) {
 if(isset($row->$key)) {
   $row->key = $value;
 }
}
$row->save();
这两种类型的访问(如果有)之间的主要区别是什么?何时使用每种访问

/application/libraries/Engine/
Engine
文件夹是位于zend顶部的SocialEngine CMS,您可以在这里找到所有函数定义

/application/modules/moduleName/settings/manifest.php
[在这里您可以在模块中添加项]

加载应用程序时,将扫描所有清单文件并加载项目。
getItemTable
只能在定义项时加载DbTable类


其中,as getDbTable()可用于未用作项的表。

我已编辑了答案,请检查。我从您的答案中了解到,项是启动时从清单文件加载的模块,不是吗?活动、用户、相册、视频、音乐等项。我错了吗?项是与模块关联的表。通过将它们添加到项目列表中。您可以将其与
项目
相关功能一起使用。