Как разделять разделы сайта в PHP

12 3
RM
На сайте с 21.06.2011
Offline
77
2098

Вот к примеру, если в GET параметре передано значение index - открываем главную, если member - открываем страницу юзера и т.д. Знаю, это можно сделать через switch, но говорят он медленный и не совсем правильно так делать... Кто подскажет еще методы реализации?

Заранее благодарен за ответы.

SM
На сайте с 25.07.2009
Offline
38
#1

switch case создан специально для сравнения один ко многим. При наличии выбора из нескольких значений лучше использовать его.

unlimbox
На сайте с 03.01.2008
Offline
56
#2

А какая нагрузка сайта предполагается?, что Вас беспокоит скорость работы этого оператора?

JamBlog.ru (http://jamblog.ru)
RM
На сайте с 21.06.2011
Offline
77
#3
unlimbox:
А какая нагрузка сайта предполагается?, что Вас беспокоит скорость работы этого оператора?

Нагрузка будет разная, в том числе и высокая(планируется для создания открытой CMS, так что будет по разному). Беспокоит именно правильность данного метода... Значений будет не много(не более 10-20) так что беспокоит даже не скорость, а скорее правильность.

Например в DLE, не так организовано(по крайней мере я не заметил там ни одного switch)...

maldivec
На сайте с 04.11.2008
Offline
160
#4

Ну можно инклюдить соответствующий контроллер в зависимости от переданного параметра в урл. И никаких switch case.

R
На сайте с 28.04.2007
Offline
155
Rel
#5
RoMaN444Ik:
Кто подскажет еще методы реализации?
Заранее благодарен за ответы.


if () {

}
elseif () {

}
...
Дешевое продление и регистрация .RU/.РФ в RU-CENTER - 190 руб. (/ru/forum/758778) в розницу. http://nic.regdomains.ru (http://nic.regdomains.ru) - регистрация и продление доменов в автоматическом режиме.
RM
На сайте с 21.06.2011
Offline
77
#6
Rel:

if () {

}
elseif () {

}
...

Не, ну ты и загнул... Это ж... вообще капец... Ну ладно уж... Тогда switch использовать буду :)

P
На сайте с 24.01.2009
Offline
63
#7
RoMaN444Ik:
Не, ну ты и загнул... Это ж... вообще капец... Ну ладно уж... Тогда switch использовать буду

Капец или нет, но это быстрее чем switch...case насколько я знаю.

---------- Добавлено в 16:29 ---------- Предыдущее сообщение было в 16:24 ----------

И кстати:

RoMaN444Ik:
Например в DLE, не так организовано(по крайней мере я не заметил там ни одного switch)...

Загляни в /engine/engine.php, там переключатель модулей на switch...case построен.

RM
На сайте с 21.06.2011
Offline
77
#8
Payk:
Капец или нет, но это быстрее чем switch...case насколько я знаю.

---------- Добавлено в 16:29 ---------- Предыдущее сообщение было в 16:24 ----------

И кстати:

Загляни в /engine/engine.php, там переключатель модулей на switch...case построен.

Ну... понятно... Короче только так, через switch :)

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#9

Замеряем скорость ЛЮБОГО селекта и БД и скорость оператора switch.

Пару минут медитируем на цифры и более не задаем глупых вопросов. :)

C
На сайте с 20.05.2011
Offline
14
#10
maldivec:
Ну можно инклюдить соответствующий контроллер в зависимости от переданного параметра в урл. И никаких switch case.

если ищите именно идеологически-правильный вариант, то я бы делал именно так.

получаете имя акшина/контроллера, экранируете это имя, проверяете существование такого файла и инклюдите (если по-простому, без построения своих иерархий лоадеров, именно классических контроллеров и т.д.). Из основных плюсов: чистота кода и гибкая расширяемость для данного случая.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий