Андрей Воробьев @SakhalinDDF
Web разработчик
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Backend Developer, Fullstack Developer
Lead
От 500 000 ₽
PostgreSQL
Linux
Docker
Git
PHP
Symfony
React
NextJS
Несколько раз сталкивался с подобной задачей - сначала использовал старичка phpQuery, но в какой то момент наткнулся на компонент из симфони - DomCrawler. У нее чуть больше функционала, чем просто парсить контент, но с этим она справляется на ура.
Парсить DOM структуру можно как с помощью xpath, так и css селекторов
уже на автомате открываю терминал и набираю нечто подобное, когда надо "придумать новый пароль к новому уникальному сервису"
pwgen -y 24 1
MVP, minimum viable product
https://ru.wikipedia.org/wiki/Минимально_жизнеспособный_продукт
На самом деле на yii2 можно сделать довольно гибкую архитектуру под проект, разнести код на разные модули, сделать разные точки входа (например разные для обычного пользователя и для убер админа), разнести код приложения по доменам если следовать DDD и тд. Есть конечно и приколоченный гвоздями функционал. Например расположение контроллеров, которые всегда должны лежать в одном неймспейсе, указанном в их модуле в свойстве $controllerNamespace и содержать в названии контроллера то что отражено в роуте. Или зависимость от jQuery (который зачем то надо ставить через composer, а не npm или yarn) в стандартных виджетах. Но даже тут есть гибкость в более тонкой настройке роутера и в переписывании стандартных ассетов на нестандартные.
Мне кажется что никакой фиксированной архитектуры в случае yii2 нет, но есть предложенные от разработчиков 2 шаблона приложения, yiisoft/yii2-app-basic и yiisoft/yii2-app-advanced, и 95% проектов на yii2 следуют этим шаблонам с минимальными расхождениями, поэтому появляется ощущение "жесткой" архитектуры. И не исключено что с yii3 ситуация не повторится, так что не стоит заранее сокрушаться =) Остается только дождаться релиза
1. webserver (nginx)
2. php
3. events (nodejs)
4. db
5. cache (redis)
При этом я честно говоря не смог с наскока вынести почтовый сервер в отдельный контейнер, поэтому подсадил его рядом с php (каюсь). Но обещаю исправиться =)
А сокращение команды из 5-7 символов до двух например — по моему это какой то перебор. И кстати да, как уже написали выше — у гита есть собственный механизм алиасинга, дабы не засирать глобальное пространство комманд своими гениальными поделками