PHP PHP | Анатомия больших проектов. Учим PHP

HellsCoder

Известный
Автор темы
Проверенный
235
242
Вступление
Дроу, рыбки) Первый вопрос который очевидно пришел к вам в голову - как это может быть полезно для сампа вообще?
Может быть, ведь Вы все так любите делать ваши ужасные привязки на PHP, о которых я уже говорил в прошлой статье)

Какого хрена ты можешь рассказывать о больших проектах, когда у тебя нет ни одного запущенного?
- Еще один вопрос который мог прийти вам в голову. Вы знаете, может быть я и не знаю толк в продвижении таких проектов, но поверьте, в создании очень даже знаю

20 симпатий и я пошагово растяну на несколько статей создание и запуск такого проекта)))

С чего все начинается?
Ничего примечательного, все как и на всех сайтах начинается с точки вхождения. Кстати движки для таких проектов пишутся сами, а не просто натягивается дизайн. Точка вхождения, и выбор необходимых инструментов. Например для вашей привязки целесообразно не использовать ООП в PHP, а для большого проекта целесообразнее его использование, чтобы не запутаться в функциях, и раскидать все по классам. Обычно для проектов с посещаемостью не больше 10К человек выбирается HaProxy как балансировщик нагрузки, хотя я и встречал проекты где нагрузку балансировал NGINX. Да-да, мало кто знает, но там тоже есть возможность настройки балансировки нагрузки. Закончим с технологиями и перейдем к коду. Начнем с точки вхождения, index.php:
upload_2019-1-4_15-7-41.png

тут на первых строчках мы видим инициализацию системных файлов, так же глобального который подтягивает роутер. Роутер отвечает за ЧПУ(Нормальные ссылки, vk.com/bytecode например, а не vk.com/profile.php?id=bytecode)
Дальше идет инициализация классов, инициализация общего регистра инициализированных классов(чтобы не инициализировать классы по два раза) и деспач роутера, вызывает метод внутри роутера, о котором поговорим внизу
Теперь немного о самом роутере, работает он с пинка файла .htaccessв котором включен модульRewriteRulesв настройку вдаваться не буду, это достаточно скучное занятие.
Давайте посмотрим на убогий код самого роутера, итак, router.php
upload_2019-1-4_15-19-45.png
Роутинг в проекте, который мы сейчас разбираем работает как на достаточно популярном IT проекте TOSTER.
домен.сру/контроллер/функция

у такого роутера есть ахуевший минус - это то, что если вы захотите добавить ссылки с префиксами(site.com/id1222; exmp.ru/ref99912), вам придется вносить лишние правки в этот обоссаный код. Казалось бы минус не большой, но когда вам понадобится ввести префикс вы почувствуете что этот минус ооочень большой, и он у вас в заднице. Как и ваш проект теперь))


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

Как строится дизайн
Обычно, нанимаются дизайнеры. Но это обычно. Мы с вами умеем все сами. Тут каждый выкручивается как может. Есть такие понятия как UiKit и единый стиль, этому надо будет посвятить отдельную статью, опять же, если кому-то интересно как стороится дизайн в больших проектах)


ВНИМАНИЕ! Код, который приведен выше не используется ни на одном из запущенных проектов. Пока...
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,698
1,443
темплейт-твекеры
Ты их так назвал?

Тема какой-то огрызок туториала по MVC.

20 симпатий и я пошагово растяну на несколько статей создание и запуск такого проекта)))
Такое не приветствуется. Понимаю ты смотришь фидбек, но попробуй его найти с помощью голосования.
 
  • Нравится
Реакции: AnWu и molimawka

HellsCoder

Известный
Автор темы
Проверенный
235
242
Ты их так назвал?
Все понятно из перевода) Да, это MVC и это не гайд по нему, а так, отрывок
Такое не приветствуется. Понимаю ты смотришь фидбек
Юзерам проще лайк клацнуть)

Щас бы учить пхп в 2019 году когда придумали NodeJS и ангуляр.
Скажи это Badoo) Разные технологии. Пых для одного хорош, нода для другого. Нода это асинхронность, кстати в новом пыхе асинхронность добавят
 

NarutoUA

NarutoUA
BH Team
696
1,528
Какая разница, вообще не врубаю, если он обновляется
Ну так то язык - дело вкуса. Мое сообщение было адресовано тем кто хочет делать привязки и не знает с чего начать (нода легче в изучении ну и привязку можно написать в пару строк).
 

HellsCoder

Известный
Автор темы
Проверенный
235
242
Ну так то язык - дело вкуса. Мое сообщение было адресовано тем кто хочет делать привязки и не знает с чего начать (нода легче в изучении ну и привязку можно написать в пару строк).
Кому как, но вроде как, новички обычно сначала на PHP смотрят. Эта статья не для привязок, а так, в общих чертах описать как работает биг прожект) она должна быть большая но мне стало внезапно лень ее писать, т.к понял что тут комьюнити не то)
 

cover

Известный
Проверенный
249
276
Почему не spl_autoload_register + namespace + use для создания удобной структуры проекта?

Щас бы учить пхп в 2019 году когда придумали NodeJS и ангуляр.
Все равно php будет жить еще очень много лет. так как как минимум 70% проектов разных масштабов написаны на php и их надо поддерживать. php в веб разработке - это как Джава в мире энтерпрайз.
 
  • Нравится
Реакции: HellsCoder