Дмитрий Гаджиев, Как это не проверять на сервере?
Ну да, для бложика может и не надо, а в серьезных системах надо.
И не только проверять, а еще явно указывать тип и работать по средством DTO + Vallydate
В фреймворках вы пишите не функции а методы.
В принципе любой фреймворк. Я за 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 , где всего десяток параметров =)
Ну да, для бложика может и не надо, а в серьезных системах надо.
И не только проверять, а еще явно указывать тип и работать по средством DTO + Vallydate