title
Description
Body
Собственно написал класс постраничной навигации!
Гляньте на факт гомнокода и что и как лучше сделать!
|
|
Ну можно еще расписать почему так или иначе лучше :-)
Отредактировано Nu3oN (2010.08.13 01:00)
Неактивен
$this -> url, наверное через htmlspecialchars пропустить надо бы.
Добавлено спустя 1 минуту 29 секунд:
Morgan написал:
расписывай
имеется виду, нам написать как можно лучше
Неактивен
Gemorroj написал:
$this -> url, наверное через htmlspecialchars пропустить надо бы.
Добавлено спустя 1 минуту 29 секунд:Morgan написал:
расписывай
имеется виду, нам написать как можно лучше
пропустил! в шапке сайта!
у меня привычка фильтровать часто используемые переменные в конфигурационном файле, таких как id, page, act и т.д
Неактивен
Nu3oN написал:
у меня привычка фильтровать часто используемые переменные в конфигурационном файле
плохая привычка. кто знает, вдруг тебе потребуется неотфильрованная переменная? для передачи текстом в email, например?
Неактивен
Gemorroj написал:
Nu3oN написал:
у меня привычка фильтровать часто используемые переменные в конфигурационном файле
плохая привычка. кто знает, вдруг тебе потребуется неотфильрованная переменная? для передачи текстом в email, например?
ну можно ж тогда сделать так...
вот у меня в шапке отфильтрованная переменная id
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
а вот например в файле index.php мне она необходима не отфильтрованная
$id = $_GET['id'];
Добавлено спустя 7 минут 59 секунд:
Morgan написал:
Nu3oN
где же комментарии?
прокомментировал! этого достаточно?
или тебе построчно прокомментировать?
Отредактировано Nu3oN (2010.08.13 00:29)
Неактивен
Nu3oN, ну как сказать, не всегда есть возможность обратиться к $_GET. Точнее, не всегда это обращение будет хорошим вариантом. Возьмем твой класс пагинации. По хорошему, он дожен быть отвлечен от верстки, либо она должна быть вынесена в свойство и меняться пользователем. Т.е. ты можешь и не знать в каком элементе $_GET нужные нам данные, они передаются как параметр в методы класса. И там они должны быть не отфильтрованы. т.к. класс не в крусе что у тебя там в конфиге. Есть просто такое правило, что данные в программе должны летать в их первозданном виде, чтобы не повредить их по невнимательности, и только при выводе в браузер должны фильтроваться.
Если не придерживаться таких правил, то никаких PEAR мы бы не видели и каждый бы писал - кто в лес, кто по дрова.
Неактивен
Gemorroj написал:
Есть просто такое правило, что данные в программе должны летать в их первозданном виде, чтобы не повредить их по невнимательности, и только при выводе в браузер должны фильтроваться.
т.е ты хочешь сказать, если я записываю сообщение(например) в базу, то я это сообщение должен отправить в том виде в котором я его получил? и фильтровать торько при выводе?
Неактивен
Nu3oN написал:
Gemorroj написал:
Есть просто такое правило, что данные в программе должны летать в их первозданном виде, чтобы не повредить их по невнимательности, и только при выводе в браузер должны фильтроваться.
т.е ты хочешь сказать, если я записываю сообщение(например) в базу, то я это сообщение должен отправить в том виде в котором я его получил? и фильтровать торько при выводе?
Именно, кроме того, htmlspecialchars переводит один html символ в грубо говоря 4-5. Это довольно увеличивает вес бд, но выигрывает в оптимизации.
Неактивен
а теперь представим часто используемый случай, когда мы в цикле выводим данные из базы! стандартное колличество выводимых данных ~10, теперь представим что функция экранирования спец символов берет на себя 0.0005сек, теперь посчитаем сколько в получится в итоге! а получится у нас 0.0050! плюс на странице еще выводятся какие либо данные! это еще ~50 добавляем итого у нас уже 0.0100 не плохо да? и какая тут может идти речь о оптимизации? действительно надо слушать советы которые тебе дают, но нужно иметь свою голову на плечах! надо думать что ты делаешь, и в каких случаях что и как лучше применить! в данном случае я вижу только минусы!
Неактивен
Nu3oN, собери данные, которые нужно отфильтровать в 1 строку и отфильтруй ее 1 раз. Ничерта ты не выиграешь от того, что запишешь форматированный html в базу. Проблемы, создаваемые этим много серьезнее этой микрооптимизации. Я тебе всегда могу и так показать места, где можно в 10 лучше и быстрее сделать и без htmlspecialchars'а.
Неактивен
Morgan написал:
Pirate
весьма спорное удтверждение.
пять символов переводится:
>, <, ', & [,"];
БД выдержит
А если у тебя 100 000 постов на форуме, 50% из них со спец символами (а на вм форумах около 80%), 1символ=1байт, в среднем один пост ~ 30-40 символов/байт, итого выйдет около 3.34 Mb без переобразования, с переобразованием около 4.53 Mb при 5 символах.
Отредактировано Pirate (2010.08.13 14:56)
Неактивен
я так и делаю
Как бы возьму этот факт во внимание, но пока что как нибудь по старинке! по крайне мере пока не доставляет "неудобств", а потом переписать это дело не долго!
Отредактировано Nu3oN (2010.08.14 02:03)
Неактивен
это сейчас не долго, а если проект развивать будешь, кода много напишешь, то потом и переписывать много придется. ббкоды планируешь делать? или ссылки автоматом подставлять? вот и подумай, как ты будешь это все редактировать, если в бд будет уже готовый html.
Неактивен
Gemorroj написал:
это сейчас не долго, а если проект развивать будешь, кода много напишешь, то потом и переписывать много придется. ббкоды планируешь делать? или ссылки автоматом подставлять? вот и подумай, как ты будешь это все редактировать, если в бд будет уже готовый html.
Ну а функцию обратного перевода уже отменили?
Неактивен