[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: В продолжении о том как лучше поступить
Страницы: 1, 2, 3, 4
brevis
Сколько времени ушло на "собрать 1109 не числовых значений" и тд?

_____________
Чатик в телеге
Astin
В зависимости конечно от проекта, но я бы скорее пользовался одной точкой входа
В act передал бы что запросили первым делом - фото, видео, аудио
Далее, если запрошено фото то подключаем модуль для фото или роутер, кому как удобнее
Если аудио - то так же моду для аудио. И уже в модуле разгребаем, что это плейлист, или отдельный файл запрошен. Ну это все если чисто серверная сторона, если писать на аяксе то здесь немного нужно продумать логику другую.
А так ВК да, там бардак. Там скорее модулями сделано и акшенами, в зависимости от параметра подключен определеный модуль который обрабатывает акшен - плейлист или запись отдельная и т.д.
Эли4ка
Цитата (brevis @ 26.08.2019 - 12:07)
Сколько времени ушло на "собрать 1109 не числовых значений" и тд?

один вечер.
miketomlin
Цитата (Эли4ка @ 25.08.2019 - 21:56)
Кто что думает?

Я после слов «Поэтому должен быть один файл являющий чем то единой точкой входа но только для одного модуля. Например на сайте будет аудио, видео, фото соответственно будут следующие единые точки входа для этих модулей: site.ru/audio.php; site.ru/video.php; site.ru/photo.php.» читать не стал. Это типичные множественные точки входа со всеми вытекающими. У нас в конторе адресации и т.п. уделяется большое внимание, т.к. часто делаем различные API. По виду ваших адресов могу предположить, что входные точки в модули вы намерены размещать прямо в корне сайта. Это даже хуже, чем просто факт использование множественных точек входа. Какой нафиг рерайт! Сделайте уже сводную таблицу модулей и по ней выполняйте первичный роутинг в единой точке входа. А еще лучше – таблицу соответствия первых компонентов путей и модулей. У нас оба названных мной способа поддерживаются даже в самых простейших поделках (если нет отдельного поля module или в нем установлено спец. значение, то в качестве имени модуля используется первый компонент пути).

Еще для инфы: экшины можно задавать без их явного указания в адресе, прежде всего при помощи различных HTTP-методов (для вэба, конечно, в основном GET/POST) и комбинаций «сущностных» параметров (см. REST). AJAX-экшины вообще при помощи спец. заголовка задаются, например можно сделать двойственное API AJAX/не AJAX на абсолютно идентичных адресах.
miketomlin
Как насчет одного экшина для абсолютно всех таблиц, включая сводную? Слабо?! У нас есть полные CRUD'ы (включающие переименование, множественное удаление и т.п.), состоящие всего лишь из 10 интерфейсных ф-ций.

Пока что не увидел явной нужды в уник. представлениях и т.п. Оч. многое можно сделать при помощи конструкторов представлений и т.п.
miketomlin
Цитата (miketomlin @ 29.08.2019 - 12:24)
состоящие всего лишь из 10 интерфейсных ф-ций

Две из которых относятся к авторизации (вывод формы выхода и ее обработчик).

Правда, есть гибриды: 1) создание/(множественное) удаление; 2) вывод списка объектов (есть еще отдельная ф-ция вывода списка «коллекций» объектов)/вывод формы создания-удаления; 3) загрузка файлов, вывод оглавления ФС, используя AJAX, и прочая работа с «вложениями».
Эли4ка
Расписано много, но есть где это почитать более расширенно?
miketomlin
Цитата (Эли4ка @ 29.08.2019 - 13:42)
Расписано много, но есть где это почитать более расширенно?

Вы ко мне обращаетесь?

Вроде бы писал достаточно конкретные вещи. Если что-то не понятно, спрашивайте.
Эли4ка
Да, есть.

Что же делать то в итоге laugh.gif
miketomlin
Цитата (Эли4ка @ 29.08.2019 - 18:41)
Да, есть.

???

Про «соответствие» вам Astin уже писал, когда показывал, как можно при помощи ассоциативного массива связать первый компонент пути с файлом. Можно для этого использовать и полноценную базу, объединяя первичный роутинг с извлечением доп. полезных данных из БД:

id module
------ ------
biznes relpath/to/mod
eli4ka profile

Или гляньте первую таблицу тут.

Тему можно развивать, используя для адресов [/]cat/obj таблицы второго уровня. Гляньте статью там же. Уже на основе этого можно начинать строить REST-интерфейс:
GET /cat – получить список объектов категории (без пагинации);
POST /cat – создать/удалить объект(ы) категории;
GET /cat/obj – отредактировать объект (вывести форму редактирования);
POST /cat/obj – сохранить объект;
и т.п. Если «не хватает» методов и таких простых адресов, чтобы различать все необходимые экшины, начинаете вводить доп. параметры, например путем добавления строки параметров, только не с параметрами вроде action=show, а по-прежнему с «сущностными» вроде page=1 (ваши act=albums и проч. в общем-то «сущностные», только название act тут не к месту).

Таблицы второго уровня не обязательно должны существовать для всех веток. Где-то могут быть только простые адреса вроде /eli4ka, где-то при использовании сложного адреса данные могут браться не из базы, а, например, из ФС и т.п. Начиная со второго компонента пути (включая или нет строку параметров) может работать вторичный обобщенный или индивидуальный для каждого модуля роутинг.

Что касается универсальных экшинов для всех таблиц, то ничего не мешает к примеру при администрировании описанной выше двухуровневой структуры БД иметь общий для всех таблиц экшин редактирования, сохранения и т.д. (Трюк, позволяющий работать с «коллекциями» (записями корневой таблицы) точно так же, как и с другими объектами, описан в конце статьи по второй ссылке.)
Эли4ка
Цитата (miketomlin @ 29.08.2019 - 18:07)
Про «соответствие» вам Astin уже писал, когда показывал, как можно при помощи ассоциативного массива связать первый компонент пути с файлом. Можно для этого использовать и полноценную базу, объединяя первичный роутинг с извлечением доп. полезных данных из БД:

Массив да. БД категорично против.
Цитата (miketomlin @ 29.08.2019 - 18:07)
GET /cat – получить список объектов категории (без пагинации);
POST /cat – создать/удалить объект(ы) категории;
GET /cat/obj – отредактировать объект (вывести форму редактирования);
POST /cat/obj – сохранить объект;

фу, только не это! Терпеть не могу ссылки вида /one/two/the/... бесят они меня.
Я еще раз перечитаю ваши сообщения. Просто что-то они мне сложно даются. не могу понять что же вы донести то хотите
brevis
Offtop
miketomlin
Не люблю такое писать, но персонаж Эли4ка -- это местный дурачок. А, как известно, дурака учить -- что мертвого лечить. Странно, что ты это еще не заметил. Учитывая то, что в более чем 10% твоих сообщений на этом форуме так или иначе был упомянут этот персонаж. Фетиш у тебя такой что-ли smile.gif


_____________
Чатик в телеге
Эли4ка
brevis, ну своими выводами чего мою тему то загрязняешь, умный ты наш?
miketomlin
Цитата (Эли4ка @ 29.08.2019 - 21:36)
Массив да. БД категорично против.

Mля, я ж говорю, что можно совместить полезное с приятным. Давай сразу захардкодим и данные твоего профиля в тот же массив mad.gif Короче не возьмут тебя работать даже в ВК smile.gif

Цитата (Эли4ка @ 29.08.2019 - 21:36)
фу, только не это! Терпеть не могу ссылки вида /one/two/the/... бесят они меня.
Я конечно понимаю, что /photo.php?act=albums симпатичнее, чем /photo/albums smile.gif Но там осн. смысл не в формате ссылок был. Хотя о каком смысле можно говорить после аргумента «бесят они меня»!

brevis, он(а) часто пишет на форуме. Это еще странно, что только 10% процентов моих сообщений адресовано этому автору. Я уже привык видеть от него ответы вроде «чЁ?!» Может, еще кому-то будет полезно.
miketomlin
Цитата (miketomlin @ 30.08.2019 - 00:34)
Давай сразу захардкодим и данные твоего профиля в тот же массив mad.gif

А за одно и десятки миллионов профилей др. юзеров smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.