Разработка функциональной 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
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
PUPS12124 [02:09]

Bioksit [00:15]

Dafdaf [23:27]

ячеченец [21:00]

balbesbizad [12:02]

cpark [11:40]

Mario_Imperator [11:33]

leonovichstas97 [22:40]

ubeyefudu [18:53]

zheniakuzma [17:47]

Moonberg [16:04]

tamararl6 [15:04]

consuelobm3 [08:03]