В данной статье я расскажу (на англ.), как настроить полезнейший бандл FOSOAuthServerBundle.
Наверное первым делом разумнее всего создать бандл:
php app/console generate:bundle --namespace=Acme/ApiBundle --format=yml
И если на все вопросы отвечать кнопкой Enter, а далее:
1. убедимся в наличии
# app/config/config.yml есть
framework:
translator: { fallback: en }
2. в файл composer.json добавим:
{
"require": {
// ...
"friendsofsymfony/oauth-server-bundle": "dev-master"}
}
3. выполним команду
$ composer update friendsofsymfony/oauth-server-bundle
это загрузит бандл в наш репозиторий.
4. включим бандл в ядре:
<?php
// app/AppKernel.phppublic function registerBundles()
{
$bundles = array(
// ...
new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
);
}
5. создадим модуль:
создадим папку src/Acme/ApiBundle/Entity
и в ней создайте следующие файлы
6. в файл app/config/config.yml добавляем:
fos_oauth_server:
db_driver: orm
client_class: Acme\ApiBundle\Entity\Client
access_token_class: Acme\ApiBundle\Entity\AccessToken
refresh_token_class: Acme\ApiBundle\Entity\RefreshToken
auth_code_class: Acme\ApiBundle\Entity\AuthCode
7. в файл composer.json добавим:
{
"require": {
// ...
"willdurand/propel-typehintable-behavior": "*"}
}
8. выполним команду
$ composer update willdurand/propel-typehintable-behavior
если возникнут ошибки, просто почистите кэш.
9. создайте файл app/config/propel.ini с следующим содержимым:
propel.behavior.typehintable.class = vendor.willdurand.propel-typehintable-behavior.src.TypehintableBehavior
продолжение следует...