Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конструктор SQL запросов 
:(
    Опции темы
DimaSiK
Дата 6.10.2014, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 20.8.2006

Репутация: нет
Всего: нет



Проект крутиться под 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) . ')');
        }


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



--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
Aliance
Дата 27.10.2014, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



А что собственно не устраивает в текущей реализации? Конечно немного старовато, по сравнению с тем же ZF2, но в целом не сырой запрос же.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.