• Где сохранять изображения, чтобы они были доступны из backend и frontend?

    ppokrovsky
    @ppokrovsky
    Симлинки не самое удачное решение имхо, тк привязка к операционной системе. Т.е. в других условиях (другая ОС) такой код не взлетит. И на уровне yii лучше тоже этого не делать, так как концепция шаблона advanced - три приложения с общим codebase, но различным контентом.

    Оптимально настраивать конфигурацией веб-сервера. Сохраняйте все в frontend или в backend, затем на уровне конфига веб-сервера прописывайте пути и алиасы.

    Вот здесь я приложил пример конфига nginx для похожей задачки
    stackoverflow.com/a/30999482/472203
    Ответ написан
  • Как сделать что бы некоторые таблицы перед стартом тестов очищались в Codecption (yii)?

    ppokrovsky
    @ppokrovsky
    Мое личное мнение - нужно по возможности избегать создания тестовых данных в базе для юнит-тестов и все, что можно сделать заглушками - делать заглушками.
    Во-первых, это сильно облегчает и ускоряет тесты;
    Во-вторых, цель юнит-тестирования - проверка логики работы метода. В данном случае операции чтения-записи в БД не относятся к функционалу метода, а относятся к функционалу фреймворка. Т.е. такие юнит-тесты по факту тестируют методы фреймворка, в чем как правило нет необходимости.
    В-третьих, методы должны тестироваться изолированно. Наличие тестовых данных в БД для теста создает связанность.

    Для меня юнит-тесты, в которых много операций с БД, это запашок.

    Но если так уж хочется - то можно либо в tearDown вызывать очистку всех созданных данных через deleteAll(), либо пользоваться фикстурами (см ActiveFixture), либо каждый раз загружать дамп базы (см unit.suite.yml)
    Ответ написан
    Комментировать
  • Почему codeception не видит temporary table?

    ppokrovsky
    @ppokrovsky
    Если речь про Yii2, Codeception для подключения БД наследует конфиг Yii, переопределяя только dsn (имя тестовой базы, см tests/codeception/config/config.php). В таком случае самое простое - воткнуться дебаггером после CREATE TEMPORARY TABLE и посмотреть, где создается таблица.
    Ответ написан
    Комментировать