![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
lemniscate |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Добрый день уважаемый форумчане! Прошу вашей помощи и не закидать помидорами. Есть вот такой код, который выводит данные из бд в таблицу.
Суть проблемы такова, для каждого поля(колонки) нужно установить свое форматирование данных, например
сейчас я это реализовал на мой взгляд крайне коряво:
вот как то так. Все вроде бы и работает но хочется узнать может есть способ проще все сделать? да и время выполнения скажем так не очень для таблицы в 370 строк с 14 полями, время "генерации" такой таблицы составило 0.096 сек. При этом если полностью отключить форматирование то время выполнения составляет 0.018 разница чувствуется. |
||||||
|
|||||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
а проще никак нельзя спросить? Я не понял сути вопроса
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
lemniscate |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
проще, хм. ну если в двух словах, то надо для каждого выводимого значения из бд применять какой нибудь способ форматирования
|
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
тогда тоже в двух слова.. что-то подобное я использую у себя в движках... Будем считать что есть массив данных полученных из базы, тогда всё очень просто
Это сообщение отредактировал(а) Gold Dragon - 18.1.2013, 13:35 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Я писал около 1,5 лет назад Grid с выводом из БД и автоматической обработкой данных в зависимости от конфига. Весь код кидать не буду, он огромный, но суть такова, что я создавал конфиг, где указывал какой callback вызывать для определенного типа поля, соотв. значение направлялось в этот Callback, который уже выводил его определенным образом (там в инпуте, как число, etc).
|
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
если не вдаваться в детали форматирования, то здесь налицо каскад if. кстати, некоторое ускорение можно получить, используя else: если $this->formaValParam[$fld][0] равно 'input', то оно точно не равно 'inputCheck' и т.д. упростить код можно, если $this->formaValParam[$fld] будет объектом полиморфного типа (с переопределенной функцией типа formatValue) тогда большая функция formatValue разделяется на множество маленьких, каждая из которых форматирует свой тип значения что-то типа
и работать быстрее будет Добавлено через 54 секунды так тоже хорошо |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
baldina, а не слишком ли для простой задачи создавать абстрактные классы?
![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
для данной думаю не слишком. она кстати не настолько простая, да и такое решение может быть использовано повторно.
само использование классов в данном случае добавит не слишком большой процент новых строк, хотя выбор имени calbback функции непосредственно из БД конечно лаконичнее. выбор между callback функциями и объектами может быть сделан исходя из характера и числа параметров форматтеров, наличия/отсутствия одинакового кода в форматтерах и вкусов разработчика. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |