- 235
- 242
Вступление
Дроу, рыбки) Первый вопрос который очевидно пришел к вам в голову - как это может быть полезно для сампа вообще?
Может быть, ведь Вы все так любите делать ваши ужасные привязки на PHP, о которых я уже говорил в прошлой статье)
Какого хрена ты можешь рассказывать о больших проектах, когда у тебя нет ни одного запущенного?
- Еще один вопрос который мог прийти вам в голову. Вы знаете, может быть я и не знаю толк в продвижении таких проектов, но поверьте, в создании очень даже знаю
20 симпатий и я пошагово растяну на несколько статей создание и запуск такого проекта)))
С чего все начинается?
Ничего примечательного, все как и на всех сайтах начинается с точки вхождения. Кстати движки для таких проектов пишутся сами, а не просто натягивается дизайн. Точка вхождения, и выбор необходимых инструментов. Например для вашей привязки целесообразно не использовать ООП в PHP, а для большого проекта целесообразнее его использование, чтобы не запутаться в функциях, и раскидать все по классам. Обычно для проектов с посещаемостью не больше 10К человек выбирается HaProxy как балансировщик нагрузки, хотя я и встречал проекты где нагрузку балансировал NGINX. Да-да, мало кто знает, но там тоже есть возможность настройки балансировки нагрузки. Закончим с технологиями и перейдем к коду. Начнем с точки вхождения, index.php:
тут на первых строчках мы видим инициализацию системных файлов, так же глобального который подтягивает роутер. Роутер отвечает за ЧПУ(Нормальные ссылки, vk.com/bytecode например, а не vk.com/profile.php?id=bytecode)
Дальше идет инициализация классов, инициализация общего регистра инициализированных классов(чтобы не инициализировать классы по два раза) и деспач роутера, вызывает метод внутри роутера, о котором поговорим внизу
Теперь немного о самом роутере, работает он с пинка файла .htaccessв котором включен модульRewriteRulesв настройку вдаваться не буду, это достаточно скучное занятие.
Давайте посмотрим на убогий код самого роутера, итак, router.php
Так же есть темплейт-твекеры, это то, что отрисовывает вам дизайн. Самая вкусная часть, ее я покажу в следующей части статьи, если эта вообще кому нибудь зайдет. Теперь еще к теории...
Как строится дизайн
Обычно, нанимаются дизайнеры. Но это обычно. Мы с вами умеем все сами. Тут каждый выкручивается как может. Есть такие понятия как UiKit и единый стиль, этому надо будет посвятить отдельную статью, опять же, если кому-то интересно как стороится дизайн в больших проектах)
ВНИМАНИЕ! Код, который приведен выше не используется ни на одном из запущенных проектов. Пока...
Дроу, рыбки) Первый вопрос который очевидно пришел к вам в голову - как это может быть полезно для сампа вообще?
Может быть, ведь Вы все так любите делать ваши ужасные привязки на PHP, о которых я уже говорил в прошлой статье)
Какого хрена ты можешь рассказывать о больших проектах, когда у тебя нет ни одного запущенного?
- Еще один вопрос который мог прийти вам в голову. Вы знаете, может быть я и не знаю толк в продвижении таких проектов, но поверьте, в создании очень даже знаю
20 симпатий и я пошагово растяну на несколько статей создание и запуск такого проекта)))
С чего все начинается?
Ничего примечательного, все как и на всех сайтах начинается с точки вхождения. Кстати движки для таких проектов пишутся сами, а не просто натягивается дизайн. Точка вхождения, и выбор необходимых инструментов. Например для вашей привязки целесообразно не использовать ООП в PHP, а для большого проекта целесообразнее его использование, чтобы не запутаться в функциях, и раскидать все по классам. Обычно для проектов с посещаемостью не больше 10К человек выбирается HaProxy как балансировщик нагрузки, хотя я и встречал проекты где нагрузку балансировал NGINX. Да-да, мало кто знает, но там тоже есть возможность настройки балансировки нагрузки. Закончим с технологиями и перейдем к коду. Начнем с точки вхождения, index.php:
тут на первых строчках мы видим инициализацию системных файлов, так же глобального который подтягивает роутер. Роутер отвечает за ЧПУ(Нормальные ссылки, vk.com/bytecode например, а не vk.com/profile.php?id=bytecode)
Дальше идет инициализация классов, инициализация общего регистра инициализированных классов(чтобы не инициализировать классы по два раза) и деспач роутера, вызывает метод внутри роутера, о котором поговорим внизу
Давайте посмотрим на убогий код самого роутера, итак, router.php
Роутинг в проекте, который мы сейчас разбираем работает как на достаточно популярном IT проекте TOSTER.
домен.сру/контроллер/функция
у такого роутера есть ахуевший минус - это то, что если вы захотите добавить ссылки с префиксами(site.com/id1222; exmp.ru/ref99912), вам придется вносить лишние правки в этот обоссаный код. Казалось бы минус не большой, но когда вам понадобится ввести префикс вы почувствуете что этот минус ооочень большой, и он у вас в заднице. Как и ваш проект теперь))
домен.сру/контроллер/функция
у такого роутера есть ахуевший минус - это то, что если вы захотите добавить ссылки с префиксами(site.com/id1222; exmp.ru/ref99912), вам придется вносить лишние правки в этот обоссаный код. Казалось бы минус не большой, но когда вам понадобится ввести префикс вы почувствуете что этот минус ооочень большой, и он у вас в заднице. Как и ваш проект теперь))
Так же есть темплейт-твекеры, это то, что отрисовывает вам дизайн. Самая вкусная часть, ее я покажу в следующей части статьи, если эта вообще кому нибудь зайдет. Теперь еще к теории...
Как строится дизайн
Обычно, нанимаются дизайнеры. Но это обычно. Мы с вами умеем все сами. Тут каждый выкручивается как может. Есть такие понятия как UiKit и единый стиль, этому надо будет посвятить отдельную статью, опять же, если кому-то интересно как стороится дизайн в больших проектах)
ВНИМАНИЕ! Код, который приведен выше не используется ни на одном из запущенных проектов. Пока...