Добавяне на Sonata Stuff
Продължаваме си серийката с уроци, като идва в момента да организираме и инсталираме няколко бъндъла, чрез които да си осигурим
- User control (register, login, logout, forgetpassword, etc)
- Администраторски панел
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/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
**