@symfony_php

Страница 251 из 1418
Borys
09.07.2017
08:02:36
я бы в сервис вынес

по документации сервис доступен из любой точки

vlad
09.07.2017
08:03:14
спасибо!

Sergey
09.07.2017
16:03:13
у кого докер в проде тут?

Google
Sergey
09.07.2017
16:14:25
на чем его держите в проде? swarm, kubernetes, docker-compose? на локалке разрабатываете под тем же Dockerfile или держите Dockerfile-dev? на проде сорсы подключаете через волюмы или забрасываете в image? cache:warmup на симфони в какой момент делаете? для прода только 1 образ приложения собираете или несколько?(fpm/cli/frontend/etc) используете ли multistage билды? какие проблемы/неудобства были в процессе эксплуатации?

Alan
09.07.2017
18:31:56
ух прямо завалил))

в проде пока маленькое не сильно активное приложение, большое к осени готовим там кубернетс в гуглклауде будет. digital ocean разочаровал его стиалами цпу, но пока тут нечего сказать сейчас обкатываем такую схему: базовый образ нжинкс и базовый образ пхп с зависимостями пакетами (модули пхп) собраны один раз и лежат в гуглклауде в его регистри, они же лежат в репо проекта если захочется использовать локально, на случае если без инета поднять разработку надо образ пхп для разработки наследуется от базового и в него волюмами прокидываем каталог с симфой, так же и нжинкс для разработки продакшн Dockerfile пхп лежит в гите и делает add . каталога с симфой и затем композером все ставит (тоже в dockerfile), чтоб скрипты композера не ломились в базу прописал doctrine: dbal: server_version: 5.7 продакшн образы собираются с drone ci, у него общий workspace и поэтому после сборки образа пхп следом в образ нжинкса просто копируются все файлы с предыдущего шага (код и установленные зависимости) и затем дрон пушает это дело в регистри а там уже разруливается, в случае с докерклаудом там стек редеплоился когда получал пуш в регистри от сборщика, с кубернетсом пока не докрутили

у кого докер в проде тут?
мультистейдж пока не смотрели, в докерклауде кажется докер 1.11 поэтому не до этого блоы) волюмов в продакшене не используем. волюм это сразу привязка к фс

для запуска локальной разработки docker-compose up просто

в проде у кубернетса кажется pods.yml у докерклауда stack файл схожий по синтаксису с композом

пхп-фпм отдельно образ, нжинкс отдельно, сборщик (drone) позволяет собрать первый и скопировать тоже самое в нжинкс

Riggi
09.07.2017
20:16:31
Hi there, I have a short QueryBuilder Question: Region (manytomany) Producer (onetomany) Availability I want to get all availabilities in Region. So I add to AvailabilityRepository.php: public function getAvailableForRegion(Region $region){ return $this->getQueryBuilder(‚availability‘) ->andWhere(‚???????‘); ? } How do I do that?

Alan
09.07.2017
20:18:55
по образам даже чуть больше их, так: - базовый пхп - базовый пхп-дев с хдебагом - базовый нжинкс-дев + nginx.conf с app_dev.php - dockerfile from базовый пхп - для продакшен сборки - dockerfile from nginx:stable + nginx.conf с app.php - для продакшен сборки - dockerfile from базовый пхп-дев - для разработки и в нем указан VOLUME - dockerfile from nginx-dev - для разработки тоже с VOLUME

?

Google
Sergey
09.07.2017
21:52:41
Alan спасибо за развернутые ответы)

докер на маке без dinghy уже сносно работает даже

всего 200мс оверхеда если включены волюмы. даже дебаг в пхпшторме для юнит тестов заработал

Sergey
09.07.2017
22:08:15
почему выбираете k8s, а не тот же swarm?
потому что сварм по сравнению с k8s намного меньше умеет например?)

докер на маке без dinghy уже сносно работает даже
у меня иногда докер демон зависает если с docker for mac(

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

Sergey
09.07.2017
22:25:59
etcd для сервис дискавери юзаете я так понимаю?

Alan
09.07.2017
22:57:22
докер файлы все в одном репосе с проектом лежат?
да, так удобнее что-нибудь добавить по ходу разработки, редис прикрутить когда понадобится например, pecl доставить + сервис в yml дописать

Константин
10.07.2017
07:09:10
@fes0r какие именно преимущества K8s перед swarm вас интересуют?

Sergey
10.07.2017
07:10:10
@fes0r какие именно преимущества K8s перед swarm вас интересуют?
деплоймент, в частности готовые стратегии для zero-downtime деплоя с учетом хелсчеков. Для swarm можно сделать все то же самое но мне показалось что сложнее

Константин
10.07.2017
07:12:06
А что сложнее? Для zero downtime достаточно проскалировать сервис до >1. Сварм смотрит на хелсчек, если за установленное время новая версия не стала healthy, то откатывает на старую. Если же healthy, то последовательно обновляет остальные контейнеры. Можно установки количество обновляемых контейнеров за раз.

Но я это только из документации знаю, пока с этими настройками не игрался. Но по дефолту он у меня второй контейнер сервиса не трогает, пока первый не станет healthy

Sergey
10.07.2017
07:24:52
надо будет попробовать

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

Константин
10.07.2017
07:29:17
у кого докер в проде тут?
У нас swarm на прод. Docker-compose только для dev. Dockerfile один для dev и prod. composer post-install-scripts выполняется при старте контейнера, но это рудимент, позже перенесу в Dockerfile, в symfony 4 папка /var/cache должна быть readonly

Sergey
10.07.2017
07:29:57
у вас только один image?

Константин
10.07.2017
07:30:13
один image на один сервис

Ну как один сервис. демоны тоже с него поднимаются

Google
Sergey
10.07.2017
07:30:42
хм. а фпм где?

демонам же не нужен фпм

Константин
10.07.2017
07:32:15
Ну так приложение собрано в один image. А с какой командой ты этот image запустиш, с тем он и запустится. fpm, bin/console daemon:start и тд

Sergey
10.07.2017
07:32:49
ну я про то что в image демона не нужен fpm в принципе, дело не в стартовой команде

а nginx и фронт как собираете?

Константин
10.07.2017
07:33:51
fpm не нужен, но зачем его оборачивать в другой image если код нужен один и тот же? От того что там установлен fpm, ещё не говорит, что его надо запускать во всех случаях

фронта для симфони у нас не собирается, но если бы собирался, то в CI. Фронт с react собирается в свой отдельный image

Sergey
10.07.2017
07:36:01
фронт в отдельном репосе отдельным приложением я так понимаю?

Константин
10.07.2017
07:36:43
Вообще да, как отдельное приложение. Но у нас всё в моно репе рядом лежит.

Sergey
10.07.2017
07:37:58
а в image фронта и пхп тянете композер, node/npm и остальные инструменты для сборки?

Константин
10.07.2017
07:38:36
На фронте react, зачем там php?

Там нода со своей кухней и всё

Sergey
10.07.2017
07:39:12
не. на пхп - композер, на фронте - нода. не все вместе)

но ведь после сборки на фронте нода не нужна, она после сборке остается в образе?

Константин
10.07.2017
07:41:19
У нас web сервер на ноде, для server side render, так что нужна. composer с php тоже вместе

Sergey
10.07.2017
07:45:17
окей, спасибо)

Dinar
10.07.2017
07:56:19
Как можно очистить HTML? Я хочу использовать WYSIWYG только с определенными тэгами, типа P, BR, LI, A. И strip_tags не удалит их аттрибуты, такие как onclick например.

Чем можно убедиться, что оставшиеся теги тоже чистые?

Google
Dinar
10.07.2017
10:03:44
Спасибо.

Тоже его в общем решил использовать.

Жалко конечно в нем нет пресета HTML5

Но в целом - пофиг

Спасибо еще раз.

Дмитрий
10.07.2017
11:14:56
ребята, а как создать сущность по уже существующей таблице? пробую doctrine:mapping:import AppBundle yml —filter=ldap_users в ответ Database does not have any mapping information.

Admin
ERROR: S client not available

Дмитрий
10.07.2017
11:15:39
в настройках orm orm: default_entity_manager: default entity_managers: default: connection: default mappings: AccidentBundle: ~ SqiBundle: ~ AppBundle: ~

Andrew
10.07.2017
11:56:56
ребята, а как создать сущность по уже существующей таблице? пробую doctrine:mapping:import AppBundle yml —filter=ldap_users в ответ Database does not have any mapping information.
посмотрел на https://github.com/doctrine/DoctrineBundle/blob/master/Command/ImportMappingDoctrineCommand.php#L132 - тут наверное три варианта — или проблема с конфигурацией или нет РК или еще что-то :)

Дмитрий
10.07.2017
12:34:49
кто работал с phpexcel на симфони, подключаете бандл https://github.com/liuggio/ExcelBundle или какой другой способ используете?

Sergey
10.07.2017
12:34:50
попробуй кеширование для волумов врубить, если у тебя версия самая новая
я правда на пустом проекте тестил. надо попробовать на основном еще.. но в любом случае, разрабатывать под докером не обязательно ведь

Дмитрий
10.07.2017
12:49:13
чет у меня ругается на namespace :) как правильно его инклюдить

использоваться будет в контроллере

Sergey
10.07.2017
12:53:09
бекслеш добавь)

Alan
10.07.2017
12:53:47
ну не так уж он тормозит докер этот че уж )

Sergey
10.07.2017
12:54:39
ну на пустом приложении app_dev 90мс без него открывается, а с ним 290мс

если dinghy юзать, тогда 200мс

но надо на большом проекте проверить, там без разогретого кеша все 40секунд на старт без докеров)

Google
Alan
10.07.2017
12:56:23
ну на пустом приложении app_dev 90мс без него открывается, а с ним 290мс
появляется больше времени подумать над дизайном ?

Дмитрий
10.07.2017
12:56:38
Sergey
10.07.2017
12:57:40
появляется больше времени подумать над дизайном ?
да и так когда пилишь сервисы на котлине, которые компилируются и стартуют за несколько секунд уже задумываешься над этим)

Aleksey [R10]
10.07.2017
13:44:51
ребзя, помогите

как аннотировать свиртуальное статическое поле ?

что бы проверка синтаксиса перестала ругаться

Dinar
10.07.2017
13:51:01
Что за виртуальные статические поля?

Aleksey [R10]
10.07.2017
13:51:08
)

class SampleClass extends ObjectMySQL { protected static $collection = "table_name";

и в родительском есть несколько статических методов

И там он использует static::$collection

Вот phpShtorm обоснованно ругается на это поле

было бы не статик просто бы прописал

/** * @property collection */ class ObjectMySQL

А как статик так же описать не знаю

Dinar
10.07.2017
13:54:43
Разве так же не прокатывает?

Aleksey [R10]
10.07.2017
13:54:51
нет

Dinar
10.07.2017
13:54:59
Collection у тебя импортирован?

Страница 251 из 1418