SocialEngine: getDbTable () против getItemTable () - PullRequest
0 голосов
/ 28 августа 2018

Я часто видел, как таблицы извлекаются в SocialEngine с использованием Engine_Api::_()->getDbTable().
Например:

$usersTbl = Engine_Api::_()->getDbTable('users','user');
$row = $usersTbl->createRow();
$row->user_id = $user->getIdentity();
$row->phone_number = $phoneNumber;
$row->save();

Однако я также вижу, что SocialEngine использовал Engine_Api::_()->getItemTable во многих местах. Например:

$table = Engine_Api::_()->getItemTable($type);
$row = $table->createRow();
foreach($params as $key=>$value) {
 if(isset($row->$key)) {
   $row->key = $value;
 }
}
$row->save();

В чем основное различие между этими двумя типами доступа, если таковые имеются, и когда каждый из них используется?

1 Ответ

0 голосов
/ 12 сентября 2018
/application/libraries/Engine/
Папка

Engine - это SocialEngine CMS поверх Zend, здесь вы найдете все определения функций

/application/modules/moduleName/settings/manifest.php [Здесь вы добавляете элементы в модуль]

при загрузке приложения все файлы манифеста сканируются и элементы загружаются. getItemTable может загружать только класс DbTable, когда элемент определен.

где as getDbTable () может использоваться для таблиц, которые не используются в качестве элементов.

...