Генерация бандла в Symfony

Для автоматической генерации бандла нужно выполнить в консоли: 

для копипастеров:

php bin/console generate:bundle 

для тех кто пишет ручками есть короткий вариант:

php bin/console gen:bun 


Welcome to the Symfony bundle generator!

Are you planning on sharing this bundle across multiple applications? [no]: 


если хотите что бы бандл был доступен для использования в других приложениях отвечаем yes 


Your application code must be written in bundles. This command helps

you generate them easily.

Each bundle is hosted under a namespace (like Acme/BlogBundle).

The namespace should begin with a "vendor" name like your company name, your

project name, or your client name, followed by one or more optional category

sub-namespaces, and it should end with the bundle name itself

(which must have Bundle as a suffix).

See http://symfony.com/doc/current/cookbook/bundles/be... for more

details on bundle naming conventions.

Use / instead of \ for the namespace delimiter to avoid any problem.

Bundle namespace:


дальше рекомендации о том какое имя дать бандлу, используя подпространство имён, например Страна/Город, Производитель/Бренд или Марка/Модель...

а так же напоминание об использовании обычного слэша "/" (косой черты, ASCII #47)

Если пишет The namespace must end with Bundle. то название должно заканчиваться на Bundle -> "Страна/ГородBundle"


Bundle namespace: Welcome/MessageBundle

In your code, a bundle is often referenced by its name. It can be the

concatenation of all namespace parts but it's really up to you to come

up with a unique name (a good practice is to start with the vendor name).

Based on the namespace, we suggest WelcomeMessageBundle.


по умолчанию имя бандла для Welcome/MessageBundle предлагает WelcomeMessageBundle, но можно и своё, например:

Bundle name [WelcomeMessageBundle]: HelloWorldBundle


Bundles are usually generated into the src/ directory. Unless you're

doing something custom, hit enter to keep this default!

Target Directory [src/]:


если хотим сохранить бандл в каталоге в отличном от "src" то можем указать другой...


What format do you want to use for your generated configuration?

Configuration format (annotation, yml, xml, php) [xml]:


теперь нужно выбрать каким форматом конфигурационных файлов будем пользоваться (по умолчанию xml) 

я выберу annotation


Configuration format (annotation, yml, xml, php) [xml]: annotation

Bundle generation

> Generating a sample bundle skeleton into B:\veras.by\symfony-blog\app/../src/Welcome/MessageBundle

created .\app/../src/Welcome/MessageBundle/

created .\app/../src/Welcome/MessageBundle/HelloWorldBundle.php

created .\app/../src/Welcome/MessageBundle/DependencyInjection/

created .\app/../src/Welcome/MessageBundle/DependencyInjection/HelloWorldExtension.php

created .\app/../src/Welcome/MessageBundle/DependencyInjection/Configuration.php

created .\app/../src/Welcome/MessageBundle/Controller/

created .\app/../src/Welcome/MessageBundle/Controller/DefaultController.php

created .\app/../src/Welcome/MessageBundle/Tests/Controller/

created .\app/../src/Welcome/MessageBundle/Tests/Controller/DefaultControllerTest.php

created .\app/../src/Welcome/MessageBundle/Resources/views/Default/

created .\app/../src/Welcome/MessageBundle/Resources/views/Default/index.html.twig

created .\app/../src/Welcome/MessageBundle/Resources/config/

created .\app/../src/Welcome/MessageBundle/Resources/config/services.yml

> Checking that the bundle is autoloaded

> Enabling the bundle inside B:\veras.by\symfony-blog\app\AppKernel.php

updated .\app\AppKernel.php

> Importing the bundle's routes from the B:\veras.by\symfony-blog\app\config\routing.yml file

updated .\app/config/routing.yml

Everything is OK! Now get to work :).


генерация прошла успешно :)

в ..\app\config\routing.yml указан машрут запуска приложения:

hello_world:
    resource: "@HelloWorldBundle/Controller/"
    type:     annotation
    prefix:   /

"prefix: /"  - адрес запуска приложения ("/" - так сказать корневая папка)

правим до нужного расположения, например "prefix: /world/hi"

если чуть-чуть подправить src/Welcome/MessageBundle/Resources/views/Default/index.html.twig

и запустить в консоли php bin/console server:run


 [OK] Server running on http://127.0.0.1:8000

// Quit the server with CONTROL-C.


и теперь в барузере по адресу http://localhost:8000/world/hi можно порадоваться запущенному приложению =)

Symfony bundle

просмотров: 2048