Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (84)

Лучшие ответы пользователя

Все ответы (197)
  • Как отправлять письма через swiftMailer в Yii2?

    @matperez
    Ответ конечно устарел, но многим может быть полезным. Вот так можно получить лог всего процесса отправки сообщения, а там уж ясно становится в чем проблема.

    $mailer = Yii::$app->get('mailer');
    $message = $mailer->compose() ... ;
    $logger = new Swift_Plugins_Loggers_ArrayLogger();
    $mailer->getSwiftMailer()->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));
    if (!$message->send()) {
           echo $logger->dump();
    }
    Ответ написан
    5 комментариев
  • Почему модель не находит таблицу?

    @matperez
    Имя таблицы берется из статического метода tableName(). Если он в модели не определен, Yii пытается сгенерировать имя таблицы самостоятельно, что у вас и происходит.
    Странно, что у вас модель Country получилась пустая. Допишите имя таблицы и все заработает.
    /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return 'country';
        }
    Ответ написан
    Комментировать
  • Продвинутая литература по тестированию?

    @matperez
    Как не смешно звучит, сам я эти книжки не читал, но, когда собирал подобную же вашей коллекцию, заметил, что их во многих местах рекомендовали безотносительно языка:
    The-Art-Unit-Testing-examples
    xUnit-Test-Patterns-Refactoring-Code
    ActiveRecord нормально тестируется с помощью частичных моков. Даже запросы нормально тестируются, если их выносить в отдельный класс, а ActiveRecord::find() использовать только как фасад для получения инстанса нужно класса с запросами.
    П.С. Поделитесь потом что нашли и что реально оказалось полезным.
    П.П.С. А вот еще книжка хорошая The Clean Architecture in PHP. Она вроде бы не сложная, но очень хорошо описывает как можно IoC использовать, а это прямой путь к хорошим тестам.
    Ответ написан
    1 комментарий
  • Как настроить mysql в Docker?

    @matperez
    1. Почитайте раздел "Where to Store Data" в документации по контейнеру. Если вы хотите использовать общую базу, то каталог с ней нужно монтировать в контейнер. Как это сделать в документации написано.

    2. Dockerfile - это рецепт подготовки контейнера, yaml - это наверное от docker-compose (утилита, нужная для запуска нескольких связанных между собой контейнеров)

    3. Правильно.

    4. Папку с исходниками можно подмонтировать с вашей машины, либо скопировать в контейнер в момент его подготовки.

    Имхо, если у вас таки машина на Ubuntu и PHP, Mysql, Apache, Nignx гораздо проще и быстрее это все настроить прямо на самой машине.
    Ответ написан
    2 комментария
  • Когда использовать static метода?

    @matperez
    К примеру есть такой класс "Человечество". У человечества есть характеристика "средний рост", она не применима к отдельному человеку. Метод рассчитывающий средний рост и саму переменную которая его хранит нужно сделать статической.

    Экземпляром класса "Человечество", является отдельный человек. Отдельный человек можно иметь свой конкретный рост, вес, цвет волос и так далее, он может ходить, есть, разговаривать - вот эти методы и переменные должны быть динамическими.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (18)