Как стать автором
Обновить
1
0
Андрей Воробьев @SakhalinDDF

Web разработчик

Отправить сообщение

Несколько раз сталкивался с подобной задачей - сначала использовал старичка phpQuery, но в какой то момент наткнулся на компонент из симфони - DomCrawler. У нее чуть больше функционала, чем просто парсить контент, но с этим она справляется на ура.

Парсить DOM структуру можно как с помощью xpath, так и css селекторов

уже на автомате открываю терминал и набираю нечто подобное, когда надо "придумать новый пароль к новому уникальному сервису"

pwgen -y 24 1

На самом деле на yii2 можно сделать довольно гибкую архитектуру под проект, разнести код на разные модули, сделать разные точки входа (например разные для обычного пользователя и для убер админа), разнести код приложения по доменам если следовать DDD и тд. Есть конечно и приколоченный гвоздями функционал. Например расположение контроллеров, которые всегда должны лежать в одном неймспейсе, указанном в их модуле в свойстве $controllerNamespace и содержать в названии контроллера то что отражено в роуте. Или зависимость от jQuery (который зачем то надо ставить через composer, а не npm или yarn) в стандартных виджетах. Но даже тут есть гибкость в более тонкой настройке роутера и в переписывании стандартных ассетов на нестандартные.

Мне кажется что никакой фиксированной архитектуры в случае yii2 нет, но есть предложенные от разработчиков 2 шаблона приложения, yiisoft/yii2-app-basic и yiisoft/yii2-app-advanced, и 95% проектов на yii2 следуют этим шаблонам с минимальными расхождениями, поэтому появляется ощущение "жесткой" архитектуры. И не исключено что с yii3 ситуация не повторится, так что не стоит заранее сокрушаться =) Остается только дождаться релиза

Вы еще не успели ничего нажать, а мы уже подключили вам новую услугу всего за 15 рублей в сутки!
Ну на самом деле в одном из моих проектов размер /upload/ директории растет очень активно, и идея прикрутить GFS в таком случае вполне имеет смысл. На счет второго варианта не очень понял в чем проблема, данные же не копируются, а монтируются, никакого перерасхода дискового пространства и не будет. Но в таком случае php и nginx должны жить на одной физической машине, да
На данный момент этот вопрос решается монтированием как volume, вы правы. До k8s пока не дорос, и проблемы, связанные с этим еще не осмыслил. Я так понимаю в общем проблема в том, что я могу разнести свои контейнеры на разные физические машины и возможности монтирование одних и тех же разделов в этом случае не будет, верно? Первая возникшая мысль как их подружить почему то — распределенные фс, типа гластерфс, монтирующиесе в оба контейнера. Или я не понял суть проблемы?
Ну как минимум у вас в одном контейнере одновременно находится и nginx и php. А докер подход состоит в том, что бы каждый контейнер выполнял всего одну конкретную задачу, тоесть как минимум nginx и php должны разбиты на отдельные контейнеры. Если подразумевается использование каких то второстепенных сервисов — типа кэшируеющего или почтового сервера — то на них так же предлагается заводить свой отдельный сервис. К примеру на одном из поддерживаемых мной проектов вот такой список сервисов на текущий момент

1. webserver (nginx)
2. php
3. events (nodejs)
4. db
5. cache (redis)

При этом я честно говоря не смог с наскока вынести почтовый сервер в отдельный контейнер, поэтому подсадил его рядом с php (каюсь). Но обещаю исправиться =)
Не понимаю в чем смысл сокращать и без того короткие команды, типа git, ls, df и иже с ними. Лично у меня алиасы используются для сокращения множественных аттрибутов, которые очень неудобно набирать руками, например что то типа вот этого

alias rdp_win='xfreerdp /u:username /p:password /v:192.168.10.2 /drive:workspace,/home/www /drive:downloads,/home/user/Downloads /w:1920 /h:1200 -grab-keyboard +clipboard'
alias docker_clean_images='docker rmi $(docker images -a --filter=dangling=true -q)'
alias docker_clean_ps='docker rm $(docker ps --filter=status=exited --filter=status=created -q)'


А сокращение команды из 5-7 символов до двух например — по моему это какой то перебор. И кстати да, как уже написали выше — у гита есть собственный механизм алиасинга, дабы не засирать глобальное пространство комманд своими гениальными поделками
Тоже подумал про вариант с псевдоселектором :empty первым делом, жаль только он не сработает если есть хотя бы пробел или перенос строки в тэге

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Lead
От 500 000 ₽
PostgreSQL
Linux
Docker
Git
PHP
Symfony
React
NextJS