Symfony

Как проверить существует ли Many-To-Many связь у расширяемой сущности

Пример кода, который проверяет, существует ли Many-To-Many связь и если она не существует - создает ее:

<?php

namespace Acme\Bundle\FavoriteBundle\Migrations\Schema\v1_0;

use Doctrine\DBAL\Schema\Schema;
use Oro\Bundle\EntityExtendBundle\EntityConfig\ExtendScope;
use Oro\Bundle\EntityExtendBundle\Migration\Extension\ExtendExtension;
use Oro\Bundle\EntityExtendBundle\Migration\Extension\ExtendExtensionAwareInterface;
use Oro\Bundle\EntityExtendBundle\Tools\ExtendDbIdentifierNameGenerator;
use Oro\Bundle\MigrationBundle\Migration\Extension\NameGeneratorAwareInterface;
use Oro\...
Benya

Как изменить form_type и form_options у поля, добавленного к расширяемой сущности

Пример кода, который изменяет form_type и form_options у поля:

<?php

namespace Acme\Bundle\MarketBundle\Migrations\Schema\v1_0;

use Acme\Bundle\MarketBundle\Form\Type\MarketSelectType;
use Doctrine\DBAL\Schema\Schema;
use Oro\Bundle\CustomerBundle\Entity\Customer;
use Oro\Bundle\EntityConfigBundle\Migration\UpdateEntityConfigFieldValueQuery;
use Oro\Bundle\MigrationBundle\Migration\Migration;
use Oro\Bundle\MigrationBundle\Migration\QueryBag;

/**
 * Class UpdateFormTypeForCustomerMarketsField.
 *
 * @package Acme\Bundle\MarketBundle\Migrations\Schema\v1_0
 */
class...
Benya

Пример создания и использования сервисов с кастомными тегами и атрибутами в Symfony

Создаем CompilerPass в котором получаем список сервисов помеченых кастомным тегом acme.filter_provider и регистрируем их в registry сервисе:

<?php

namespace Acme\Bundle\AcmeBundle\DependencyInjection\CompilerPass;

use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Exception\LogicException;
use Symfony\Component\DependencyInjection\Reference;

/**
 * Class FilterProviderRegistryCompilerPass.
 *
 * @package Acme\Bundle\AcmeBundle\DependencyInjection\...
Benya

Как добавить новую колонку и уникальный индекс для нее в непустую таблицу

Пример кода, который добавляет новую колонку и уникальный индекс для нее:

<?php

namespace Acme\Bundle\ShippingBundle\Migrations\Schema\v1_0;

use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Schema\Comparator;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Schema\Table;
use Doctrine\DBAL\Types\Types;
use Oro\Bundle\EntityBundle\EntityConfig\DatagridScope;
use Oro\Bundle\EntityExtendBundle\EntityConfig\ExtendScope;
use Oro\Bundle\EntityExtendBundle\Migration\OroOptions;
use Oro\Bundle\...
Benya