~ read.

Добавяне на Sonata Stuff

Продължаваме си серийката с уроци, като идва в момента да организираме и инсталираме няколко бъндъла, чрез които да си осигурим

  1. User control (register, login, logout, forgetpassword, etc)
  2. Администраторски панел

Let’s go! Отворите Вашият composer.json, той се намира в главната директория на проекта. Намерете секцията **require **и добавете отдолу следните бъндъли

"friendsofsymfony/user-bundle": "~1.3", "sonata-project/admin-bundle": "2.3.@dev", "sonata-project/datagrid-bundle": "~2.2@dev", "sonata-project/doctrine-orm-admin-bundle": "2.3.@dev", "sonata-project/user-bundle": "2.3.*@dev"

Важно е да кажа, хубаво е да описвате версиите, вместо да използвате **dev-master **,тъй като това ще Ви спести доста проблеми за в бъдеще, особено със Sonata Bundles.

Отворете app/AppKernel.php, и в масива **$bundles **добавете следните редове

new FOSUserBundleFOSUserBundle(), new SonataUserBundleSonataUserBundle('FOSUserBundle'), #new ApplicationSonataUserBundleApplicationSonataUserBundle(), new SonataAdminBundleSonataAdminBundle(), new SonataEasyExtendsBundleSonataEasyExtendsBundle(), new SonataDoctrineORMAdminBundleSonataDoctrineORMAdminBundle(), new SonataCoreBundleSonataCoreBundle(), new SonataBlockBundleSonataBlockBundle(), new KnpBundleMenuBundleKnpMenuBundle(), new ApplicationMainBundleApplicationMainBundle(),

Следват конфигурационните файлове, тъй като са доста големички, а и понеже табулацията в YAML файловете е от особена важност, ще се изхитрим и ще ползваме линкове от GitHub.

app/config/config.yml

app/config/security.yml

app/config/routing.yml

app/config/fos_user.yml

app/config/sonata/sonata_admin.yml

app/config/sonata/sonata_block.yml

app/config/sonata/sonata_user.yml

!!! Важно !!! Във fos_user.yml, има две променливи user_class и group_class на които трябва да зададете дефаултските стойности на Sonata, за да може да инсталирате бъндълите, като по-надолу ще ги върнете както са в GitHub репозиторито. За сега ги задайте така

user_class: SonataUserBundleEntityBaseUser group: group_class: SonataUserBundleEntityBaseGroup

Сега остана да си изтеглим и всичките bundles, които описахме в composer.json файла.

composer update

Сега остава да си генерираме собствено entity за юзърите, което Entity ще обърнем внимание в следващата статийка какво е то, и има ли то почва у фреймуорка :)

php app/console sonata:easy-extends:generate SonataUserBundle -d src

!!! Важно !!! Вече може да изкопирате съдържанието на fos_user.yml от GitHub-а и да го заредите в AppKernel.php файла, като откоментирате следният ред:

new ApplicationSonataUserBundleApplicationSonataUserBundle(),

Сега трябва да създадем таблиците, което става много лесно със следната команда:

php app/console doctrine:schema:update --force

като ако не сте създали и самата база данни, това също става много лесно

php app/console doctrine:database:create

Така, сега да си създадем един потребител и да тестваме администраторския панел

php app/console fos:user:create --super-admin

Командата приема и параметри, в следния ред – Username, Email, Password, но ако ги пропуснете Symfony2 ще Ви пита за всеки един от тях. Вече може да се логнете в админ-а, като ползвате следното URL (промените според Вашите нужди, разбира се) – **https://localhost/path/app_dev.php/admin
**