Проект крутиться под ZF1.10. Проект достался вот с такой вот красотой:
| Код | $select = $this->select()->from('app_folder_tag_relation', array( 'app_folder.id', 'app_folder.name', 'app_folder.nicename', 'app_folder.responsible',
'app_folder_tag.id as tag_id', 'app_folder_tag.name as tag_name',
'app_folder_tag_relation.id as relation_id', 'app_folder_tag_relation.dateAdded as relation_date', 'app_folder_tag_relation.story as relation_story_id', 'app_folder_tag_relation.active as relation_status'
))->order('app_folder_tag_relation.dateAdded DESC')->setIntegrityCheck(false);
$select->joinLeft($this->_name, 'app_folder.id = app_folder_tag_relation.folder', array()); $select->joinLeft('app_folder_tag', 'app_folder_tag.id = app_folder_tag_relation.tag', array());
if(isset($options['account'])) { $select->where('app_folder_tag_relation.account = ?', $options['account']); } else { $select->where('app_folder_tag_relation.account = ?', Digest_Users::current('account')); }
if(isset($options['folder'])) { $select->where('app_folder.id = ?', $options['folder']); }
if(isset($options['orgno'])) { $select->where('app_folder.orgno = ?', $options['orgno']); }
$select->where('app_folder_tag_relation.story != ?', ''); $select->where('app_folder.name IS NOT NULL');
if(isset($options['tags'])) { $select->where('app_folder_tag_relation.tag IN (' . (is_array($options['tags']) && count($options['tags']) ? implode(',', $options['tags']) : -1) . ')'); }
if(isset($options['companies'])) { $select->where('app_folder.id IN (' . (is_array($options['companies']) && count($options['companies']) ? implode(',', $options['companies']) : -1) . ')'); }
|
Вопрос состоит в том, есть ли готовые средства для автоматического маппинга входящих данных, чтобы убрать ну или как-то автоматизировать все эту простыню кода?
|