ФорумПрограммированиеPHP для идиотов → правильно ли я пишу систему? Много вопросов, задаю их по очереди.

правильно ли я пишу систему? Много вопросов, задаю их по очереди.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 3:48, спустя 9 минут 38 секунд

    Абырвалг, да нет, просто все еще спят :)

    мы то тут до 6мск сидим (я по крайней мере)
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 21 января 2010 г. 6:36, спустя 2 часа 47 минут 37 секунд

    ну на всякий случай вот UML'ка. Хотя я не особо умею их рисовать.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 9:06, спустя 2 часа 30 минут 43 секунды

    стало совсем непонятно :)
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 9:35, спустя 29 минут 1 секунду


    стало совсем непонятно :)
    +1

    я не понял одного - где вход в это кольцо)))))))))) да и выходов с виду дхуя :-D
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 21 января 2010 г. 9:44, спустя 8 минут 31 секунду

    блин, что же это я такой непонятный?) artoodetoo, ты код смотрел? Так это не диаграмма состояний. Вход и выход это Module_Blogs_Reader_Entry::process.

    Блоги. Можно читать конкретную запись (Blogs_Reader_Entry) или список записей. Общие части блога объединены в _Common.
    Комментарии. Их можно писать (*_Writer) и читать (*_Reader). Общие части комментариев объединены в _Common.

    Нам нужно понять что это за блогозапись: общая или приватная из группы. Соответственно URL на просмотр этой записи может быть /blogs/41 или /groups/13/blogs/41. За это отвечают _External классы. Для блогов группы/комментариям к этой группе я подсуну свой соответствующий _External, который вернет Token и urlPrefix. Как я его подсуну? Унаследую.
    Blogs_Comments_Reader extends Comments_Reader
    protected $external = 'Название класса External';
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 9:59, спустя 14 минут 41 секунду

    Ты уверен что надо непременно наследовать чтобы использовать какие-то данные? Когда ты писал про множественное наследование, я не понял зачем скрещивать именно эти классы. Не стало понятней и сейчас.

    И мне кажется, что везде использовать префикс /groups/{$id} будет очень накладно. Везде где упоминается блог или отдельный пост из блога придется узнать про его группу. Какие бы диаграммы ты не рисовал в конечном счете блог это блог. Он уникально адресуется одним ид-ом. И для уникальности темы блога тоже хватит одного числа. Может быть проще приземлить блоги на первый уровень адресов? Тогда запросы на SQL не надо будет усложнять лишними джойнами. Или не понадобится второй запрос.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 10:02, спустя 3 минуты 24 секунды

    и правда перемудрил, будьте проще )

    я бы artoodetoo, показал адский роутер, который даже без рулов, да вы все обидетесь что я такое "незасветил" :))))))) поэтому не стану
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 21 января 2010 г. 10:14, спустя 11 минут 37 секунд

    Ты уверен что надо непременно наследовать чтобы использовать какие-то данные?

    Нет, не уверен. Вот я ж вас всех и спрашиваю: правильно ли это?

    /groups/:num/blogs/:num для удобства чтения URL как бы. Кроме того запросы не усложняются, я просто проверяю: есть ли пользователь в группе или нет (и то, если она закрытая).

    Окей, допустим, что я черезмерно много наследую. А что если в блогах группы будут какие-то свои поля, которых нет в общих блогах? Я просто перепишу 1 метод checkForm. Удобно же.

    Пишу запись: /blogs/write. Как понять куда я ее пишу? Добавлять ?group_id=3 или делать выпадающий список? А можно так /groups/6/blogs/write - и все сразу понятно. "Приземлять" блоги не буду.

    phpdude, че это за роутер такой? /module/action/id? гыгыгы. Я так в админке делаю. Там не нужны сверхгибкие УРЛы.
    Спустя 133 сек.
    Кстати, вдогонку: узнавать группу сообщения на форуме да, фигово. Поэтому я при формировании списков ссылок делаю так: /go/post/929 -> а там уже редирект на нужную группу, тему и тд.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 10:14, спустя 50 секунд

    phpdude, че это за роутер такой? /module/action/id? гыгыгы. Я так в админке делаю. Там не нужны сверхгибкие УРЛы.
    чтото похожее
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 11:05, спустя 50 минут 11 секунд

    при формировании списков ссылок делаю так: /go/post/929 -> а там уже редирект на нужную группу, тему и тд.

    вот это мне нравится ;) 301 Permanent Redirect.
    в принципе на обработчике редиректа даже необязательно проверять права. все-равно их будет проверять целевая страница.

    phpdude прячет что-то неебически крутое. человекий мозг пока не готов к этому.
    Спустя 211 сек.
    почти все можно описать одной строкой правил
    {$controller}/{$action}/{$id}
    можно свернуть 100 правил в пару-тройку. только это не ЧеловекоПонятныеУрлы, а МашинноПонятныеУрлы. я все-таки болею за человеков
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 11:08, спустя 3 минуты 26 секунд

    {$controller}/{$action}/{$id}
    позволю себе продолжить строчку

    {$controller}/{$action}-{$param1}-{$param2}-{$param3}-{$param4}…


    в общем то я про это говорил, прелесть данного "роутера" в его "скорости" - 2 explode и жизнь удалась как гвоорится :)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 12:19, спустя 1 час 10 минут 54 секунды

    ну вобщем да. это просто способ прямого обращения к методу в адресной строке. красткость с.т.

    остается только один аргумент: "мне нравятся другие варианты" :)
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 12:23, спустя 4 минуты 25 секунд


    ну вобщем да. это просто способ прямого обращения к методу в адресной строке. красткость с.т.

    остается только один аргумент: "мне нравятся другие варианты" :)
    для некоторых целей мне надо более человекопонятный роутер, поэтому и согласился на "игру" :)
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 21 января 2010 г. 12:51, спустя 27 минут 12 секунд

    я ж говорю: такой простой роутер в админке можно использовать.

    А где все остальные? Может Эдво/Мавр мне посоветуют че-нить?
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 13:00, спустя 8 минут 57 секунд

    я даже график суровой реальности нарисовал. чем больше и сложнее приложение, тем сильнее кривая жмется к осям координат.
    C'est la vie
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!