А справка об отсутствии судимости нужна для подачи на ВНЖ через ИП? Я понимаю, что в тексте статьи она не упоминается, значит как бы не нужна. Просто во многих странах на digital nomad'а, например, такая справка нужна. Вот хочу уточнить.
С неподдельным интересом наблюдаю за этим полным драматизма тредом, пытаясь понять, что за хитрый use case решается то одним методом хитрых приседаний, то другим. Уже много лет как: на линухе — remote_connect_back = On, на маке — Off, но добавляем remote_host = docker.что-то.internal (вроде так, не помню). И всё работает! Естественно, эти специфичные для ОС вещи вытаскиваются на уровень env для Docker Compose, протягиваются на этап билдинга имиджей и на выходе получаем нужным образом сконфигурированный PHP с xdebug'ом. Нужно CLI? Ну запускайте CLI из шторма, указывая ему remote interpreter в нужном контейнере. Что я делаю не так всё это время?
Но в таком случае, как я понимаю, нужно 1) отключить autowiring в бандловом services.xml, 2) явно указать mock-реализации как argument для моего бандлового сервиса, 3) добавить интерфейсы как alias'ы для mock-реализаций. Но что в таком случае произойдет после компиляции контейнера, когда бандл будет установлен в приложение и подгрузится бандловый же services.xml? Алиасы для интерфейсов будут же указывать на mock-реализации! Или для тестов нужен какой-то отдельный services.xml?
А что делать, если мой бандловый контроллер использует сервисы и репозитории из «родительского» приложения? Я экстрактировал интерфейсы из этих сервисов и репозиториев и сложил их в отдельный Composer пакет, который в свою очередь рекуайрится и в «родительское» приложение, и в бандл. Соответственно, бандл программируется к этим интерфейсам. И в составе всего приложения бандл работает прекрасно. А как теперь протестировать это в изолированном состоянии в бандле? Ибо при запуске тестов получаем:
Symfony\Component\DependencyInjection\Exception\RuntimeException: Cannot autowire service «bundle_controller_service_id»: argument "$eventStore" of method «My\Bundle\Namespace\CallbackController::__construct()» references interface «Vendor\Contracts\BundleEventStoreInterface» but no such service exists. Did you create a class that implements this interface?
phpstorm не хотел запускаться при запущенном pycharm
Это потому что, если пользуются 2+ IDE от JetBrains, то не надо лохматить бабушку, а переходить сразу на IntelliJ IDEA :) И по деньгам экономия, и не надо хоткеи настраивать по нескольку раз.
Спасибо за развернутый ответ! Про тестирование приватных пропертей я понял. Только почему именно «без рефлексии»? Мы тестируем что-то в PHP 4, где нет рефлексии? Ну так там и нету closures! «Рефлексия — это медленно!». Лишняя секунда (ок, 10 секунд!) на выполнение тестов причиняет такие велики боль и страдания, что надо вот заморачиваться с хитрыми трюками? Это не к Вам, levchik, вопрос. Это так просто, мысли вслух. Еще раз спасибо за ответ!
А зачем нужна вся эта история с получением доступа к приватным пропертям без рефлексии? Каков use case использования этого трюка в реальном продакшене?
Вот не холивора ради, а просветления для. Просто приходится, как ни странно, сейчас, после 1-2-3-4… 9 лет в DVCS, учиться SVN в энтерпрайзе. От одной мысли, что куда-то на сервер нужно заливать коммит, например, в один символ (конечно же, я не буду делать такой коммит! и в этом-то и проблема ибо я могу это запросто сделать на локальной машине ни кого не трогая!), просто как-то вот подкатывает к горлу… Зачем вот это вот всё СЕГОДНЯ? Какой в этом великий смысл? От чего это защищает в этом самом энтерпрайзе?
Camunda вообще красавица! Делаешь из Maven'овского архетипа проект. Там уже все разложено по папочкам. Открываешь в Camunda Modeler файлик src/main/resources/process.bpmn. Рисуешь процесс как тебе надо. На Start Event и/или User Task можешь добавить форму. Форму можешь сделать тут же в Modeler'е. Это будет Generated Form и ее описание будет храниться тут же в .bpmn файле. Если нужна понавороченней и с загрузкой файлов — то делаешь отдельно ручками (Embedded Form) и кладешь в директорию src/main/webapp/forms. Как "привязывать" формы в Modeler'е — это уже в документацию. Завершил работу в моделере, делаешь
$ mvn clean package
В директории target теперь появился .war файл, который теперь копируешь в папочку деплоя веб-приложений. В Tomcat, например, это webapps. Заходишь в Task List и видишь свой процесс и можешь его запускать.
Есть PHP SDK — сейчас как раз "скрещиваю" Camunda с SuiteCRM. Есть JS SDK c Angular 1.2 и без, чтобы встраивать Embedded Forms в свое веб-приложение.
Можешь делать Service Task и писать свои классы на Java. Можешь делать Script Task и писать на скриптовых языках.
Кроме Camunda ничего другого BPM'ного руками не трогал. Поэтому мнение субъективное. Но имхо Camunda очень хороша. От одного чтения документации уже хорошо на душе становится! :)
Не в 2017, но году в 2013 там еще и квест целый был с токенами и т.д. На маке вообще не заводилось. Особенно смеха добавляли ключи, распечатанные на бумаге.
Честно говоря, буквально недавно столкнулся когда администраторы достаточно серьезной бизнес-системы, столкнувшись с продолжительной и ресурсно-затратной генерацией отчетов, на мое предложение использовать реплику, спросили «а что это такое». Это я к тому, что таки да, не все даже знают, что СУБД могут самостоятельно «копировать» данные с одного сервера на другой. С другой стороны, смотреть как в настоящее время люди мучаются с SQL запросами вместо того, чтобы использовать современные и доступные инструменты, основанные на in-memory и прочих Tabular model, тоже как-то грустно. Да, требуются определенные скилы. Но это точно, не rocket science и гораздо проще в плане «интеллекто-емкости» работы разработчика по проектированию.
А почему бы не сделать отчет с реплики? Или вообще получать отчеты с OLAP модели? И не с помощью «SQL запросов в меру своего опыта», а с помощью специальных инструментов генерации отчетов.
Без всяких подковык вопрос. Мне правда интересно. А что не так с Тиньковым-то самим? Много раз уже слышал вокруг «человек-г**но, человек-г**но». А почему именно никто не в курсе.
А справка об отсутствии судимости нужна для подачи на ВНЖ через ИП? Я понимаю, что в тексте статьи она не упоминается, значит как бы не нужна. Просто во многих странах на digital nomad'а, например, такая справка нужна. Вот хочу уточнить.
Это потому что, если пользуются 2+ IDE от JetBrains, то не надо лохматить бабушку, а переходить сразу на IntelliJ IDEA :) И по деньгам экономия, и не надо хоткеи настраивать по нескольку раз.
Сугубо мое имхо, но у MS SQL просто восхитительный BI-стек
Camunda вообще красавица! Делаешь из Maven'овского архетипа проект. Там уже все разложено по папочкам. Открываешь в Camunda Modeler файлик src/main/resources/process.bpmn. Рисуешь процесс как тебе надо. На Start Event и/или User Task можешь добавить форму. Форму можешь сделать тут же в Modeler'е. Это будет Generated Form и ее описание будет храниться тут же в .bpmn файле. Если нужна понавороченней и с загрузкой файлов — то делаешь отдельно ручками (Embedded Form) и кладешь в директорию src/main/webapp/forms. Как "привязывать" формы в Modeler'е — это уже в документацию. Завершил работу в моделере, делаешь В директории target теперь появился .war файл, который теперь копируешь в папочку деплоя веб-приложений. В Tomcat, например, это webapps. Заходишь в Task List и видишь свой процесс и можешь его запускать.
Есть PHP SDK — сейчас как раз "скрещиваю" Camunda с SuiteCRM. Есть JS SDK c Angular 1.2 и без, чтобы встраивать Embedded Forms в свое веб-приложение.
Можешь делать Service Task и писать свои классы на Java. Можешь делать Script Task и писать на скриптовых языках.
Кроме Camunda ничего другого BPM'ного руками не трогал. Поэтому мнение субъективное. Но имхо Camunda очень хороша. От одного чтения документации уже хорошо на душе становится! :)