Опять про "фонарные" ЧПУ

dark-demon

d(^-^)b
если я начну подробнее, то ты скажешь, что у тебя всё не так ;-)
лучше скажи, что у тебя выполняют модули по мере всплытия и я скажу в чём заключается жёсткость.
 

tf

крылья рулят
boombick, очень интересно, у тебя и поинтересуюсь :)
 

Духовность™

Продвинутый новичок
Я так понимаю, что для организации ЧПУ нужно сделать следующее:

1. Создать связь модуль-виртуальный путь
2. Создать правила парсинга для каждого модуля

Так?
 

jonjonson

Охренеть
Автор оригинала: dark-demon
jonjonson, допустим есть задача: "считать количество просмотров картинки". что нам говорит на это рест? правильно, "вы не должны этого хотеть" ^_^
любые логи действий пользователя совершенно не вписываются в принципы реста.
REST никоим боком не запрещает подсчёт запросов ресурса (например логи апача пропарсить). Правда с учётом возможности наличия промежуточных проксей результат может быть искажён :)

рест умер, да здравствует веб2.0 с обучаемыми социальными сетями ^_^
Если учесть, что веб2.0 сейчас строится на основе REST, то тогда да, они оба мертвы :)
 

dark-demon

d(^-^)b
> REST никоим боком не запрещает подсчёт запросов ресурса

рест запрещает изменение состояния ресурса при get запросе. или не запрещает? тогда можно смело послать всякие put и delete на йух, и пользоваться только get да post.
 

jonjonson

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

HraKK

Мудак
Команда форума
dark-demon
/news/sport/

news
Передается управление в ArticleController который описывает и поднимает окружение публикаций.
sport
перелает управление в ArticleCategoryController который устанавливает и получает данные о область действия sport.
Дальше идет неявный переход управления в ArticleItemsController где по умолчанию выводятся N-последних новостей.
 

Crys

Двинутый новичок
У меня в базе хранятся пути к разделам и имена скриптов, которые за них отвечают.


пример:

путь - скрипт
/newses/index.php - news.php
/newses/top_news/index.php - topnews.php


В самих скриптах происходит подключение необходимых модулей.
То есть по ссылке:

/newses/page:1/ - у меня отработает скрипт news.php, который может вывести новости на первой странице, а по ссылке
/newses/top_news/ - у меня отработает скрипт topnews.php
 

dark-demon

d(^-^)b
jonjonson, конечно другое, не вписывающееся в стройную rest архитектуру ^_^

HraKK, я ж говорил, у тебя совсем не так :) какой смысл в выделении этих трёх контроллеров, если ArticleController не зависимо от запроса вызывает ArticleCategoryController ?

то, как ты сначала описал предполагало вызов NewsController, который бы вызывал NewsSportController. и если бы потом по урлу /news/stats/ понадобилось бы вызывать NewsStatsController, то не зависимо от его желания NewsController подгрузил бы окружение используемое NewsSportController, но совершенно не нужное NewsStatsController.
из этих соображений гораздо лучше по урлу /news/stats/ сразу вызвать NewsStatsController, который бы в случае необходимости вызвал бы NewsController для инициализации окружения, или любой(ые) другой(ые).
 

dark-demon

d(^-^)b
не суть. он вызывает один из жёстко предопределённых контроллеров. а сами эти подконтроллеры кроме как из ArticlesController скорее всего не вызвать, ибо они требуют определённого окружения, которое сами добывать не умеют.
 

QQQ

Новичок
GET - запрос ресурса (нельзя через этот метод ресурс изменять)
а как мы будем количество кликов на ссылку например считать? :)
ты бы ещё слово НЕЛЬЗЯ жирным шрифтом выделил. нельзя! а то расстрел :)


URL не должен содержать никаких action, как это пытаются реализовать в ZF и некоторых других фреймвоках.
то-есть так безапеляционно? ты решил - всем выполнять, всем бояться? :) а разработчики ZF - полное ламьё и не понимают нифига? :)

просто всегда добивало, что некоторые люди свои личные предпочтения пытаются возвести во вселенскую истину. так и только так! :)
 

HraKK

Мудак
Команда форума
dark-demon
ибо они требуют определённого окружения, которое сами добывать не умеют.
Не верно. Обьекты это черный ящик с выставленной на ружу жопой. Так что нечего этот ящик не знает о окружении кроме того что ты ему засунешь в жопу.
 

DIG

Новичок
Партнер клуба
Автор оригинала: triumvirat
Я понимаю, что нужно хранить связь "виртуальный_путь-модуль", но понять, каким образом и по какой логике должен работать код, отвечающий за парсинг URL, не могу!

Допустим, у нас есть 3 модуля: новости, статьи, гостевая книга.

Нужно создать три гипотетических вида URL-адресов, у каждого вида будут подвиды:
[skip]

Т.е. по-видимому нужно для каждого модуля хранить свои какие-то правила парсинга? Как это делается вообще? (
Я последнее время пользую codeigniter, там это реализовано на мой взгляд очень удобно.
Кратко: первый сегмент урла - название класса, второй - функция этого класса, третий и последующий - аргументы функции.
Например : /news/edt/15 - класс news, метод edt, 15 - аргумент который передается edt. Сумбурно както написал :/
Лучше посмотрите как там это реализовано: http://codeigniter.com/user_guide/general/routing.html
 

HraKK

Мудак
Команда форума
DIG
Это удобно для простенких приложений.
 
Сверху