The Oro Cookbook - создание бандла

Ранее мы делали небольшой обзор установки Oro CRM, которая построена на Oro Platform. Нас как разработчиков интересует прежде всего сама платформа. Обзор платформы на русском языке от одного из ее разработчиков можно почитать здесь. Этим постом откроем цикл статей, который по сути будет являться вольным пересказом The Oro Cookbook.

Бандл можно создать двумя способами: в ручную и сгенерировать используя консольную команду Symfony.

Создание в ручную

Для начала мы должны указать название и пространство имен для нашего бандла.

Для Symfony уже есть документация описывающая лучшие практики для структуры и именования бандлов, рекомендуем следовать им.

Предположим, что мы хотим создать AmylabsAppBundle. Для этого создадим файл /src/Amylabs/Bundle/AppBundle/AmylabsAppBundle.php со следующим содержанием:

<?php
namespace Amylabs\Bundle\AppBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AmylabsAppBundle extends Bundle
{
}

Это обычный Symfony бандл, отличие только в том как он будет активирован, но об этом чуть позже.

Автоматическая генерация

Так же бандл может быть сгенерирован с помощью консольной команды generate:bundle

Находясь в корневой директории проекта выполните:

php app/console generate:bundle

Далее просто отвечайте на вопросы, но обратите внимание, что на следующие вопросы нужно ответить нет:

Confirm automatic update of your Kernel [yes]? no
Confirm automatic update of the Routing [yes]? no

Нам не нужно обновлять роуты и ядро, в Oro Platform это делается по другому, но об этом ниже.

Активация

Чтобы активировать бандл нам нужно:

1. Создать файл src/Amylabs/Bundle/AppBundle/Resources/config/oro/bundles.yml со следующим содержимым

bundles:
    - Amylabs\Bundle\AppBundle\AmylabsAppBundle

2. Очистить кэш приложения с помощью консольной команды cache:clear

 php app/console cache:clear

Если вы работаете в продакшен режиме добавьте параметр –env=prod.

Теперь если вы откроете свое приложение в режиме разработки и кликните по значку отладочной панели, то сможете увидеть свое творение в списке активных бандлов.