Symfony 3 FOSUserBundle Kurulumu

makale.baslik

Bu yazı ile Symfony de kullanıcı yönetimi (User Management) için kullanabileceğiniz çok kullanışlı bir paket olan FOSUserBundle’ın nasıl kurulacağını ve nasıl yönetebileceğinizi göstereceksiniz.

Bu bundle Symfony projelerinde çok kullanılan ek bir pakettir.  Kullanıcı girişi ve güvenlik açısından kullanışlı bir yapısı vardır. Birçok uygulamada kullanabilirsiniz. Aynı zamanda kullanıcıları sistemler arasında da rahatça taşıyabilirsiniz. Güvenlik konusunda size çok yardımcı olacaktır.

fos user bundel kurulumu

 

Çeviri özelliğinin aktif ederek kuruluma başlıyoruz.

# app/config/config.yml
framework:
    translator:      { fallbacks: ["%locale%"] }

 

Kuruluma geçmeden önce daha önce paylaştığım Symfony 3 projesi kurulumu yazımı okumanızı tavsiye ederim.

 

1. Adım: Konsol ekranında composer kullanarak bundle ı kuruyoruz. 

composer require friendsofsymfony/user-bundle "~2.0"

 

2. Adım: app/AppKernel.php dosyasında bundle aktifleştiriyoruz.

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new FOS\UserBundle\FOSUserBundle(),
        // ...
    );
}

 

3. Adım: Kendi kullanıcı sınıfınızı oluşturmanız gerekiyor. Burada alternatif çözümler çok fazla ben Doctrine ORM User sınıfını tercih ediyorum.

<?php
// src/AppBundle/Entity/User.php

namespace AppBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    public function __construct()
    {
        parent::__construct();
        // your own logic
    }
}

 

4. Adım: security.yml dosyasında gerekli yapılandırmaları yapabilirsiniz. 

access_control kısmından istediğiniz adresler için güvenlik seviyesi belirleyebilirsiniz. 

# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager
                # if you are using Symfony < 2.8, use the following config instead:
                # csrf_provider: form.csrf_provider

            logout:       true
            anonymous:    true

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }

 

5. Adım: Config.yml dosyasında gerekli ayarlamaları yapıyoruz.

# app/config/config.yml
fos_user:
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: AppBundle\Entity\User
    from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%"

 

6. Adım: Routing dosyasını import ediyoruz.

# app/config/routing.yml
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"

 

7. Adım: Konsole ekranında veri tabanını güncelliyoruz ve kullanıma hazırlıyoruz.

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

 

app/Resources/FOSUserBundle/views/layout.html.twig yolu ilede FOSUserBundle’ı Override yapabilirsiniz.

Daha fazla bilgi için FOSUserBundle'ın kendi sayfasını ziyaret edebilirsiniz.

 

Paylaş:

Yorumlar

    Bu yazı için hiç yorum yok. İlk yorumu yapmak ister misiniz?