В фреймворках вы пишите не функции а методы.
В принципе любой фреймворк. Я за Symfony/Laravel/Lumen/Silex
Четвертый пункт к фреймворку не имеет отношения. Это отдельные зависимости, которые вы ставите на свое усмотрение. Опять же, есть под все популярные фреймворки.
Вопрос не совсем по теме.
У вас в подписи PHP developer, каким боков вы относитесь к фронтендеру?
Это головная боль фронтенда, как реализовать объект который будет все распределять.
Вы же отдаете список ролей в jwt токене и соответственно каждый API объект имеет пермишены на то или иное действие.
При реализации RESTful API, советую для разработки/документации использовать swagger
Так же на git есть куча готовых решений.
P.S.
JWT - проще говоря токен с суммой данных внутри.
Вы запрашиваете токен на сервере и используя его, обращаетесь к API.
На сервере идет его проверка, если все ок, то выполняется какой-либо код.
Жизнь (ttl) токена и др. параметры так же настраиваются.
avr1972: Обычно в проектах в главном публичном файле (точка входа index.php) идет сначала autoload, где подгружаются основные классы (чаще из vendor директории). Далее идет вызов какого либо bootstrap объекта/кеша и т.д. и в конце вызов ядра (чаще объект называется Kernel ) и главного метода.
Возьмите к примеру микрофреймворк (что бы много не копаться) lumen, silex или slim - посмотрите как там все устроенно.
Большинство фреймворком, cms имеют схожую архитектуру.
avr1972:
Зачем писать столько ответом, когда можно в один?
Пришлось объединить все ваши ответы в один, а то читать трудно.
1) Плохо вы знаете студию Лебедева. Сейчас вакансия закрыта, но год-полтора назад была Senior PHP (Symfony). У них под разные проекты свои системы. Крайняя писалась на Go (ну это веяние тренда).
Вы представляете объемы работ по крупным проектам?
К примеру butik.ru писали 5-6 человек в течении полугода. И это по моему мнению маленький проект.
Сейчас я работаю в команде, где 12 разработчиков, 2 тестера, юзеркейсер, тесткейсер, продуктонер и еще несколько людей на разных должностях, делают проект 8 месяцев и бета-релиз только на конец Августа.
2) Заказчиков которые готовы отдать за хороший проект много сотен, полно. К примеру крайний заказ у меня был на 1.5 миллиона за 6 месяцев работы. Далее проект стал меняться а инвестиции перестали поступать в нормальном объеме. Пришлось разорвать договор. Что бы найти подобных заказчиков/инвестором, надо конечно иметь хороший опыт, знания и иногда рекомендации.
3) Студии Лебедева и Горбунова, это миллионные заказы, всегда новый код и новый подход. И зачастую это не веб проекты. Сначала изучите деятельность тех о ком говорите.
4) Битрикс, выбирают те, кому сели на уши. Ни одна компания, которая изначально имеет штат разработчиков, не возьмет Битрикс. И отвечая на ваш вопрос - да, это полное дерьмо (хотя сейчас исправляются, переписывают мясо с каждым релизом.)
5) Я встречал людей которые довольны кодом. Но чаще встречаю тех, кто говорит что код говно а сам не может банально реализовать DTO объект и подцепить на хендлер.
6) Цены:
в интернете нет регионов, областей и т.д. Я работал с инвестором из Нидерландов 4 месяца за 10к евро (2013г.), находясь за 1200км от Москвы
Его цены низкие, т.к. он делает на opensource решениях, тупо подправляя конфиг и выдавая сырой продукт. Скажем интернет магазин - тупо prestashop. Для Васи который продает что то простое, вполне хватит.
7) те кто хотят Мерседес, берут его но в поддержанном состоянии. А те кто берут ОКА, обычно долго не ездят. Понятно сравнение? Нет? - Вам сделали проект за копейки, но дальше вы не можете его развивать и/или он валится от 10 пользователей. Запомните - нормальный бизнес не будет экономить на самом важном.
Подробнее о изучении ООП?
Сначала стоит хотя бы по документации и видео - урокам с youtube по PHP7 OOP.
Получить понимание принципов и взаимодействия. Написать простые рабочие примеры, но не с урока а придумать самому. Если что то не понятно, гуглите и смотрите запросы в ютубе. Ответы будут найдены.
Изучите автолоадеры и композер.
Когда подготовитесь, вооружитесь PHPStorm + xdebug. Ставите останову на начальный вызов ядра (index.php, app.php -> Kernel) и по клавише F7 путешествуете по всем объектам, смотря где, что и как вызывается.
P.S.
Жалко вы не упомянули mail.ru - я бы много "хорошего" об этом написал. Работал там Perl а затем и php разработчиком.
По поводу моего опыта - проекты которые я разрабатывал соло или в команде, имеются в профайле.
Могу сказать, что текущий проект намного сложнее и объемнее чем booking.com и он является всего лишь очередным нашим клиентом по получению информации о отелях/квота/номерах и т.д.
manwe_ru: Вот и я о чем.
Сайт под ключ, на текущий момент - это целая экосистема, на несколько месяцев разработки и сотни тысяч рублей. Правда гастарбайтеры всегда будут.
avr1972: Конечно нет. Статья вероятно из начала нулевых .
1) Писал человек который совершенно не разбирается в вопросе.
2) Там нет ни одного реального минуса. Какая нафиг веб-студия?
3) Системы пишутся под конкретный проект а не для всех сразу.
4) Я говорил не о "самописных CMS" в вашем понимании.
5) Любой нормальный программист разберется в хорошем и грамотном коде проекта. Т.к. для основы выбирается фреймворк, то и программиста берут с знанием конкретного фреймворка.
... и еще сотня пунктов.
P.S.
Вы скинули статью и это говорит о вашем уровне - который нулевой.
По этому в моем основном ответе смысла для вас на текущий момент нет.
Вы не сможете разобраться с ядром и архитектурой. Следует начать с изучения полноценной разработки на PHP ООП.
Arris: Читаем второе и третье сообщение а не кусками. Перестаем выдергивать из контекста.
Для более глубокого понимания:
6 -7 лет назад писал CRM для финансовых проводок банка. Сначала потратил время на реализацию микрофреймворка (что то типа slim/microCMF/Yii (ублюдский singelton сделал свое дело) под те реалии php. (бизнес это стерпел как то)), затем в ключе DDD нарастил бизнес логику. Далее по накатанной. (как жалко, что тогда не было какой либо документации по DDD, костылей наделал. Правда ее и сейчас толком нет)
Если код пишется с чистого листа, на выходе у вас получится все равно один из существующих фреймворков. Плюс/минус какой то индивидуальный функционал.
huwesu: На Go делал микросервис по обработки сообщения (типа месседжера в VK), но на текущем проекте это не пойдет.
У нас одновременно и API и работа из интерфейса.
Опять же, вы говорите о Go а я о PHP.
huwesu: Для разработки 8 библиотек (фикстуры, тесты, дебаги, сваггер и т.д.).
Для работы две всего библиотеки. От FOS (friends of symfony). RESTful и Redis.
8к запросов в секунду, это банальный post/get.
А реализовать 8к запросов в сек. на террабайтном хранилище (хоть и разбитом) с множеством тяжелых поисковых логик (один запрос на поиск свободного номера, это около 20 связанных сущностей и примерно столько же параметров), слишком проблематично.
Это не https://www.booking.com , где всего десяток параметров =)
Смотря что вам требуется.
В принципе любое железо с i5, 8gb DDR3+, SSD
Так же вы на данное железо без проблем сможете поставить OSX (PC Intel hackintosh)
Судя по огульной рекомендации взять и все написать самому вы являетесь еще студентом, "заготовкой программиста".
Как скажите. Правда мой первый новостной сайт вышел на perl в 1999г.
Вообще убило.
Нормальные системы не пишут с нуля. Они всегда базируются на тоннах уже готового чужого кода.
Всегда пишутся с нуля и/или на основе фреймворка. (о чем я в прошлом ответе упомянул, но вы ведь не читали а только оскорбляли.).
Простые примеры которые написаны с нуля за последние два года, на Symfony в стеке DDD/CommandBus/CQRS практически без микросервисов.
hotelbook.ru hotelbook.pro androguide.com
И закрытая ЧМ система с оборотом в 10 000 тяжелых запросов API в минуту для агрегатов букинг платформ. Конечно с использованием материализованных и горячих данных, на десятках стоек.
Сразу видно, что вы только начинаете свой путь в программировании. Что видно по ответам.
Jimmy Neutron: Любая CMS зло. Код открыт и всем известен. Конечно людям которые в программировании полный ноль, CMS то что надо, тут спору нет. Но если есть мозги в программировании, то лучше делать свою реализацию. Банально можно взять фреймворк, нужные пакеты и дописать что необходимо.
Александр +: Ну git ставится так же как и svn. На OSX уже идет в комплекте. К тому же все равно надо делать ветки, если лезешь в код проекта. Иначе когда то наткнешься на косяк.
WP - успешный, ага. Даже не спорю. У нас модели автоваза тоже успешные, вон сколько их на дороге.
Joomla - вообще прошлый век =)
Jimmy Neutron
WP - это одно из самых ужасных творений программистов для современного мира.
Дыры в WP или плагинах, находят ежедневно, чего уж тут удивляться про вирусы в коде.
Если нет, то обратите свое внимание на phpfmt