Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Маршрутизация [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 [2] 3 4 »   

> Описание: Помогите советом
esterio
Отправлено: 13 Августа, 2013 - 12:16:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Hapson
На етом форуме не раз обсуждалось. Поищите.

Во первых есть два вида роутинга:
- физическый - файловая система
- логический - конфиг

Также есть их гибриды.

Лично для себя я выбрал логический. Вот старый класс роутинга который я когда-то для себя сделал
http://forum.php.su/topic.php?fo...2&topic=1844
(Добавление)

Okula
Посмотрел Ваш код )))
Много в архитектури лишнего. Например Интерфейс Mysqli. ну в общем если интересно могу виразить свое феее в ЛС
 
 Top
DeepVarvar Супермодератор
Отправлено: 13 Августа, 2013 - 13:11:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




digi пишет:
самый удобочитаемый для человека вид это yaml
Не соглашусь. Для меня самый удобный это JSON с комментариями.
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Августа, 2013 - 13:38:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




DeepVarvar пишет:
Для меня самый удобный это JSON

Поддерживаю.
 
 Top
esterio
Отправлено: 13 Августа, 2013 - 14:45:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




DeepVarvar пишет:
Для меня самый удобный это JSON с комментариями.

+1
 
 Top
digi
Отправлено: 13 Августа, 2013 - 17:05:05
Post Id


Посетитель


Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




DeepVarvar

покажи пример равнозначных роутингов на ямле и джейсоне ;) с комментариями конечно Улыбка
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Августа, 2013 - 17:14:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




digi пишет:
покажи пример равнозначных роутингов на ямле и джейсоне ;) с комментариями конечно Улыбка

digi, мы тут Все уже прекрасно знаем, что Вы "боготворите" symfony, так что это будет бесполезно ))
 
 Top
caballero
Отправлено: 13 Августа, 2013 - 17:42:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
покажи пример равнозначных роутингов на ямле и джейсоне

лично у меня роутинг в PHP. Точно не равнозначно с портянками конфигурационноых файлов


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
digi
Отправлено: 13 Августа, 2013 - 18:28:05
Post Id


Посетитель


Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




armancho7777777, форматы ямл и джейсон к симфони никакого отношения не имеют Улыбка они были созданы разными командами в разное время и для разных целей Улыбка а вот то, что некоторые вещи удобно в некоторых местах использовать - ну да, есть такое Улыбка
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Августа, 2013 - 18:31:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




digi, я думаю Вы прекрасно поняли что я имел в виду.
 
 Top
Hapson
Отправлено: 13 Августа, 2013 - 18:35:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


Okula
Я пробую разобраться в вашем коде. Мне пока сложно читать чужой код.
У себя все понимаю, что написал. А вот чужое понимать трудно пока.
(Добавление)
caballero пишет:
лично у меня все просто
все адресные строки которые не содержат ? & . и т.д. предназначены для роутера
RewriteRule ^(\/index\.php.{0,}|[-#a-zA-Z0-9\/_]+)$ /index.php [L,QSA]

далее в каждом модуле есть предопределенная функция которая вполняет роутинг для кажлого модуля

это функция распознает "свои" маршруты и выполняет чего надо с этим выполнять)
если это не "свой" маршрут выполняется роутинг для следующего модуля


Вот видите как у вас - для вас все просто Улыбка
Мне бы вот еще понять принцип работы регулярок. Как там происходит подмены и распознавания нужного...
(Добавление)
esterio
esterio пишет:
Во первых есть два вида роутинга:
- физическый - файловая система
- логический - конфиг

Также есть их гибриды.

Вот это вообще темный лес...
Что есть физический и логический? Можно в двух словах их принципы действия?

PS
И как вообще лучше делать. Через $_GET, ну типа
http://exemple[dot]com/index.php?user=register
или делать закос под ЧПУ
http://exemple[dot]com/user/register


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Okula
Отправлено: 13 Августа, 2013 - 18:45:10
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Hapson, ну если уж с регулярками всё плохо то тогда не стоит писать свой роутер. Там регулярки будут везде и всюду и если ты не научишься с ними работать ничего толкового сделать не выйдет.
 
 Top
caballero
Отправлено: 13 Августа, 2013 - 18:45:45
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Мне бы вот еще понять принцип работы регулярок. Как там происходит подмены и распознавания нужного...

я в них тоже не особо разьираюсь
в данном случсе одна простая регулярка которая считает что если нет
в адресе имени файла & или ? то это SEO адрес который требует маршрутизации

а дальше я разбираю его средствами PHP без всяких регулярок
потому как каждый модуль знает какой формат "его"
(Добавление)
Цитата:
ну если уж с регулярками всё плохо то тогда не стоит писать свой роутер. Там регулярки будут везде и всюду и если ты не научишься с ними работать ничего толкового сделать не выйдет.


не вижу связи меду роутером и регулярками
завист от реализации


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Hapson
Отправлено: 13 Августа, 2013 - 18:49:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


Okula
Да нет, я понимаю регулярки (их синтаксис). Мне пока непонятно, как они работают в скриптах. То есть как происходит выявление нужных параметров в адресной строке.
Ну как бы это сказать...
Я понимаю как работает switch...case. Если index.php?user=register, то это значит нужно обратиться к модулю user и у него выполнить некое действие register.
А вот когда смотрю и вижу в массивах кучу регулярок, то мне вот не совсем понятно, как они работают.
Как-то так...
(Добавление)
caballero
Ну у вас понятно, это что-то типа

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Так ведь?
А вот дальше. Как это происходит в самом приложении.
У вас для каждого модуля записаны конфиги с его (модуля) параметрами? Точнее не параметрами, а запросами наверное, которые принимает этот модуль.
И так для каждого модуля, а если ни один модуль ничего своего не нашел, тогда 404?
(Добавление)
caballero
То есть по сути, есть один общий роутер (или маршрутизатор...) и у каждого модуля есть собственный роутер, так?


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Ch_chov
Отправлено: 13 Августа, 2013 - 19:12:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Сделайте таблицу соответствия урлов и контроллеров. Не важно в каком формате. И находите по этой табице нужный контроллер.
 
 Top
Hapson
Отправлено: 13 Августа, 2013 - 19:17:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


Ch_chov пишет:
Сделайте таблицу соответствия урлов и контроллеров. Не важно в каком формате. И находите по этой табице нужный контроллер.

У меня уже была мысль сделать таблицу в БД. Собственно и сейчас уже есть табличка. В ней хранится имя модуля, его позиция и переключатель активации (0 и 1). То есть в шаблоне у меня грубо три места под модули. В каждом месте прописано:
ModController::load("top")
ModController::load("content")
ModController::load("left")
То есть три раза вызывается метод load? который смотри по таблице - какие модули включены в позиции top, left, content

PS но это временно. Глупо при каждом обновлении страницы лезть в БД. Тем более позиции модулей могут не меняться месяцами, годами...

(Отредактировано автором: 13 Августа, 2013 - 19:25:27)



-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB