@symfony_php

Страница 787 из 1418
Pavel
28.03.2018
09:14:11
фак

Alexey
28.03.2018
09:14:25
ясно

?
28.03.2018
10:03:57
как заставить translation:update находить ключи, которые формируются динамически? есть какой-нибудь тру вэй для этого?

darkwoolf
28.03.2018
10:05:47
оффтоп

Google
Sergey
28.03.2018
10:06:11
оффтоп
можешь просто скинуть ссылку на хабр, хотя вчера ее скидывали

Konstantin
28.03.2018
10:16:11
как заставить translation:update находить ключи, которые формируются динамически? есть какой-нибудь тру вэй для этого?
во-первых, можно написать свой дампер и его результаты склеивать с основными

у меня где-то был пример на nikic/php-parser, который из какой-то жопы достает ключи по какой-то относительно хитрой схеме

если хочешь, я в течение дня тебе его скину и попробую разъяснить

там от силы 200 loc

?
28.03.2018
10:17:43
скинь :3

я попробую сперва сам разобраться

Konstantin
28.03.2018
10:17:59
чуть попозже, ок? только собираюсь в офис

?
28.03.2018
10:18:03
окок

Konstantin
28.03.2018
10:18:09
если к 16 часам по мск не пришлю, пингани тут, плз

?
28.03.2018
10:18:19
хорошо

Sergey
28.03.2018
10:46:15
там Фаулер собирается новое издание Рефакторинга выпустить

отрефакторит Рефакторинг

Google
Konstantin
28.03.2018
10:46:36
кто то еще и старое не дочитал

кто где книжки кстати покупает?

Bohdan
28.03.2018
10:51:02
торренты наше все

700 человек гет

keyed
28.03.2018
10:53:40
Hi

Konstantin
28.03.2018
12:19:15
хорошо
https://gist.github.com/sc0rp10/90a3f516ca3c4456f464b18cc886d0af в общем виде оно как-то так выглядит. в визиторе разбираешь свой кусок AST и достаешь всё что нужно из него

там в целом не особо сложно, максимум за полчаса можно разобраться

Konstantin
28.03.2018
12:23:50
вот еще если чо

http://symfony.com/doc/current/reference/dic_tags.html#translation-extractor

Konstantin
28.03.2018
12:26:18
скорее всего найдет, но если нет - то translation.extractor

?
28.03.2018
12:26:18
есть где-нибудь дока про экстрактор этот?

Konstantin
28.03.2018
12:26:32
вот выше ссылка

там прям минимальная дока нужна, оно всё очень простое и тупое. тебе единственное что надо - из своего экстрактора вернуть список строк. где ты его возьмешь - ваще неважно, хоть регулярками из джаваскрипта напарсишь

?
28.03.2018
12:38:34
вот выше ссылка
спасибо, ага

Konstantin
28.03.2018
12:43:14
но ваще, не знаю, насколько тебе это релевантно, но мало ли кому-то пригодится: всегда избегайте динамических строк, пусть даже ценой дублирования кода

{{ 'foo.' ~ bar ~ '.message' | trans }} - плохо

{% if bar == 'bar' %} {{ 'foo.bar.message' | trans }} {% elseif bar == 'baz' %} {{ 'foo.baz.message' | trans }} {% elseif bar == 'abc' %} {{ 'foo.abc.message' | trans }} {% endif %} лучше

Dinar
28.03.2018
12:44:22
Потому что..?

Google
Konstantin
28.03.2018
12:45:24
потому что очень легко выстрелить себе в ногу, тк тут не работает тулинг в виде экспорта, поиска пропущенных, непереведенных итд. т.е. в таком случае разработчики сами гарантируют, что все строки есть в проекте и никак это достоверно проверить нельзя

у меня, допустим, падает билд, если среди т.н. "критических" строк есть пропуски - это очень удобно

Dinar
28.03.2018
12:45:51
Ну если это того стоит :)

Вообще больше выглядит как подстравивание под инструмент.

Konstantin
28.03.2018
12:46:10
если использовать вот такие конкатенации, физически нереально будет что-то гарантировать

Dinar
28.03.2018
12:46:11
Но я понимаю.

Konstantin
28.03.2018
12:46:26
да нет никакой другой возможности это сделать, увы

и не инструменты плохие, инструменты можно свои написать

оверхед тут не особо большой - ну чуть больше строк в шаблонах, ну ладно. кто там их считает, взамен получаются надежные гарантии того, что ты на сайте не напишеь 10М пользователей app.hello.message, %username%

Pavel
28.03.2018
13:35:40
Кто-нибудь сталкивался в compiller pass с тем что не отрабатывает $definition->addMethodCall('addApiHandler', [new Reference($id)]);

Никаких ошибок и эксепшенов

Трото метод не вызывается

Vladislav
28.03.2018
13:39:21
Почисть кеш

И компайлер пас делает билд сервиса. Он его не инстанциирует

И когда у тебя компайлер пас вызывается ? Там 4 состояния

Vladislav
28.03.2018
13:41:47
Почитай доку )) там есть до оптимизации и после

Как ты знаешь что метод не вызывается ?

Google
Konstantin
28.03.2018
13:43:40
Pavel
28.03.2018
13:44:31
Konstantin
28.03.2018
13:45:08
какой именно метод должен вызваться?

Pavel
28.03.2018
13:45:09
в аналогичных работает вызов

Konstantin
28.03.2018
13:45:20
addApiHandler?

Konstantin
28.03.2018
13:45:34
он должен вызваться, когда ты затребуешь этот сервис из контейнера

Admin
ERROR: S client not available

Konstantin
28.03.2018
13:45:42
а не в момент компиляции контейнера

Konstantin
28.03.2018
13:48:10
слушай, если я тебе отвечу "потому что это так работает" - это не покажется грубостью?

Pavel
28.03.2018
13:48:18
lazy load?

Konstantin
28.03.2018
13:48:29
типа того

ты можешь открыть скомпилированный файл контейнера (валяется в кеше - там просто пхп-класс читаемый)

и увидеть, в каком месте появились вызовы твоего метода

Bohdan
28.03.2018
13:49:02
Почитай доку )) там есть до оптимизации и после
а еще есть вроде 3 других варианта, про которые в доке не написано :D

Konstantin
28.03.2018
13:49:03
и сразу все станет ясно

Bohdan
28.03.2018
13:49:09
как-то напоролся

Konstantin
28.03.2018
13:51:10
стоит один раз просто понять как это работает и дальше интуитивно будешь понимать, где компайл-тайм, а где ран-тайм

Google
smile
28.03.2018
13:54:34
Всем привет, может кто подсказать какой-то годный агрегатор/менеджер кронов? - хз как это правильно назвать. Что хотелось бы от него: - смотреть аналитику чё когда реально запускалось, чё сколько работало - смотреть аналитику чё сколько выжирало памяти/сколько запросов делалось - посмотреть какие кроны работали одновременно - устанавливать время запуска (от интерфейса вебмина и залипания опций выбора часов/минут у меня уже кровоточат глаза и дергается рука) и т.д.

Konstantin
28.03.2018
13:56:13
мы свой написали, прям почти под все требования подходит, кроме редактирования из веб-морды

но, к сожалению, его отчуждать будет сложно, поэтому, не поделюсь

smile
28.03.2018
13:56:44
мы свой написали, прям почти под все требования подходит, кроме редактирования из веб-морды
ну вот тоже думаем писать свой, но надеемся что может чё готовое есть)

Konstantin
28.03.2018
13:57:17
но могу сказать, что кода там не особо много - 500 строк в сумме на silex-е но правда часть кода - это сам супервайзор и много чего делает паппет и консул

smile
28.03.2018
13:58:26
а то чёт я погуглил, ничего готового адекватного не нашел.... неужели всё так печально.... казалось задача которую точно уже должен был ктото решить

Konstantin
28.03.2018
14:04:53
Pavel
28.03.2018
14:05:32
стандартный кто?
Не не про копилятор говорил?

Pavel
28.03.2018
14:06:37
? туплю сегодня

Dmitriy
28.03.2018
14:06:58
можете извратиться и jenkins заюзать )

Konstantin
28.03.2018
14:07:49
как по дезигну лучше сделать - /shops/150/categories или /categories?shop=150 ?

не могу решить что выбрать

smile
28.03.2018
14:10:06
можете извратиться и jenkins заюзать )
ты имеешь в виду для запуска? аналитику/метрики всеравно прийдется писать =(

Konstantin
28.03.2018
14:11:10
как по дезигну лучше сделать - /shops/150/categories или /categories?shop=150 ?
path params - это позиционные аргументы, а query params - именованные

что выбирать - сам решай, исходя из ситуации

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