Разработка функциональной UCP для SA:MP - сервера. - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
Разработка функциональной UCP для SA:MP - сервера.
Radiance Дата: Вторник, 03.05.2016, 10:11 | Сообщение # 1
Боец
Сообщений: 209
Статус: Offline
Привет.
Виталик камбекается на СМ, и сразу же решил пильнуть масштабную тему, с достаточно интересной направленностью.

Сразу поясню - эта тема будет писаться не за раз и не за два. А по мере поступления времени и настроения.

Итак, сначала немного теории, потом чуть-чуть практики, следом ху*к-ху*к, и в продакшн.

Собственно, уже не один и не два раза ко мне обращзались с заказами по разработке UCP для самп-серверов.
Панельки разработаны, деньги уплачены, проекты... не запустились. Ну да ладно, и такое бывает.

Собственно, в чем суть вообще UCP? Как то посмотрев по потребностям заказчиков в последнее время вышло следующее:
1. Удобный менеджмент аккаунта со стороны пользователя - регистрация, управление балансом и безопасностью аккаунта, саппорт-система для общения с администрацией.
2. Удобныое такое, ласповое администрирование всех аккаунтов (для админов), с нужными функциями.
3. Архиохренительный и простой антиавторег со стороны UCP в виде различных квестов - от ответов на вопросы, до похода за хлебом для администратора.

Начнём с внутренней архитектуры проекта, и как оно все будет работать.

Для мелких проектов у меня давно готов простенький каркас, на основе MVC-архитектуры (что такое MVC и с чем его едят - гуляйте в вики).
Если в трех словах, мы имеем единую точку входа, которая вызывает маршрутизатор (роутер), тот на основе имеющихся маршрутов определяет нужный нам контроллер (интерфейс общения с пользователем), который в свою очередь, в соответствии нужным нам экшеном (методом) обрабатывает запросы пользователя и генерирует ту или иную страницу. Контроллер же использует методы модели, которые представляют собой всего лишь функции общения с базой данных.

Собственно, корень сайта выгляит следующим образом:

Код

index.php  // Точка входа
- core // Системная директория
--- models // Директория моделей
--- controllers // Директория контроллеров
--- views // Директория представлений (шаблонов)
--- classes // Директория со вспомогательными классами
- public // Директория с всяким открытым шлаком
--- css // Директория с файлами стилей
--- js // Директория с файлами жс-скриптов
--- img // директория с изображениями.


Приведу наглядную линейку работы сей системы

1. Пользователь обращается к точке входа
2. Вызывается класс роутера, который определяет текущий маршрут (URL)
3. Роутер проверяет наличие такого маршрута
3.1. Если такого маршрута нет - отдается 404 ошибка и останавливается обработка
3.2. Если такой маршрут есть переходим к шагу 4
4. На основе маршрута определяется нужный контроллер и экшен для обработки
5. Вызывается контроллер и экшен с нужными свойствами.
6. Производится обработка данных контроллером, генерируется готовый ответ
7. Ответ отдается пользователю.

Всё просто, в принципе.

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

Отдельно для генериции "морды", тобишь, конечного результата в виде хтмль страницы будет работать отдельный класс шаблонизатора. Нужно это для, во первых, упрощения кода, во вторых, для избежания попытки избеения нас верстальщиками на конечном этапе разработки и минимизации возможных косяков со стороны, опять же, верстальщиков на бэкенде, ибо эти гады могут и неправильно скопипиздить что нибудь.

На этом первую часть закончим.
Тема будет постепенно редактироваться и обновляться, до появления конечного результата.



Радик камбек :D

Niloka-CM Дата: Вторник, 31.05.2016, 07:59 | Сообщение # 2
Боец
Сообщений: 63
Статус: Offline
Отличная статья!
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума