symfony4 Пример использования ORMPurger для WebTestCase

В случае, если нам нужно протестировать экшены контроллера, при этом предварительно очистив данные из базы данных, можно использовать класс ORMPurger. Он является частью пакета doctrine/data-fixtures, который в свою очередь является зависимостью doctrine/doctrine-fixtures-bundle.

Таким образом, для использования ORMPurger нужно установить либо:

composer require --dev doctrine/doctrine-fixtures-bundle

Скорее всего doctrine-fixtures-bundle вам и нужен, чтобы можно было создавать fixtures.

Либо хотя-бы:

composer require --dev doctrine/data-fixtures

Теперь можно добавить код в тест, который является наследником WebTestCase.

self::bootKernel();

// returns the real and unchanged service container
$container = self::$kernel->getContainer();
$entityManager = $container->get('doctrine.orm.entity_manager');

$purger = new ORMPurger($entityManager);
$purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
$purger->purge();

 

KnpMenuBundle: строим меню для категорий и подкатегорий в symfony 4

Меню-билдер в лучших традициях симфони лучше объявить как сервис.

Создаем сервис "объявим сервис app.knp.sidebar_menu в файле config/packages/knp_menu.yaml:

Содержимое config/packages/knp_menu.yaml:

knp_menu:
    twig:
        template: custom_knp_menu.html.twig

parameters:
    knp_menu.renderer.twig.options:
        currentClass: sel

services:
    app.knp.sidebar_menu:
        class: Knp\Menu\MenuItem
        factory: ['@App\Menu\MenuBuilder', createSidebarMenu]
        arguments: ["@request_stack"]
        tags:
            - { name: knp_menu.menu, alias: sidebar_menu }

 

Jenkins job для генерации swagger API

Пример jenkins джобы для генерации swagger-API. 

Это bash-код, который нужно добавить в секцию "execute shell".

Анализ производительности MySQL с использованием performance_schema

performance_schema — мощный встроенный в MySQL инструмент, который вы можете использовать для анализа запросов, производительности и, как следствие, для улучшения производительности базы данных.

По своей сути, performance_schema, это автоматически созданная MySQL база данных, которая внутри себя содержит множество служебных таблиц, в которые MySQL любезно пишет данные.

Подключаем PHP code sniffer (phpcs) в PHPStorm

Чтобы использовать PHP code sniffer в phpstorm, перво-наперво его нужно установить.

phpcs --version

Если в системе php-codesniffer не установлен, нужно его установить.

MacOS сбросить root пароль для MySQL

Я установил mysql-сервер на свою macOS Mojave, скачав .dmg пакет с официального сайта MySQL.

При установке mysql, установщик не запрашивал никакого root пароля, но в конце выдал сообщение, что пароль для root - dufQqAt00Z, и сообщение сохранить этот пароль.

Я сохранил себе этот пароль (возможно, не скопировав его полностью?). 

Запись видео с экрана на Linux — утилита obs-studio

Я начал пользоваться утилитой obs (obs-studio) для записи видео с экрана моего компьютера.

Установка в моём Linux Mint:

sudo apt-get install obs-studio

Полезные bash_aliases для docker

В моём файле ~/.bash_aliases присутствуют следующие алиасы, которые упрощают работу с docker.

MongoDB Basics курс Final exam

В этой статье я запощу вопросы финального экзамена Basic mongodb курса, который можно было пройти в августе 2018.

Final Exam: Question 1

Problem: 

Connect to our class Atlas cluster from Compass and view the citibike.trips collection. Use the schema view and any filters you feel are necessary to determine the range of values for the usertype field. Which of the following are values found in this collection for the field usertype?

Ответ:

Подключаемся к кластеру mongodb. Переключаемся на базу данных citibike командой "use citibike". Достаем список различных значений поля usertype командой "db.trips.distinct("usertype")"

DAO vs Active Record vs Data Mapper паттерны при работе с базой данных

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

В зависимости от фреймворка, ORM может реализовывать паттерн Active Record (например, kohana framework) или Data Mapper (например, doctrine в symfony). ORM фреймворка также может реализовывать другой паттерн или гибрид.

ORM  Object Relational Mapping. Говоря самым простым языком, ряды из таблиц в базе данных, будут представлены в виде объектов, проперти которых соответствуют именам полей из таблиц, а значения пропертей объекта - значениям из базы данных.

НОВЫЕ ПОЛЬЗОВАТЕЛИ