ardteam/cms-project

CMS Bundle

安装: 11

依赖: 0

建议: 0

安全: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

语言:HTML

类型:symfony-bundle

dev-master / 1.0.x-dev 2015-08-26 14:42 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:38:35 UTC


README

安装

在 composer.json 文件中添加对包的依赖

# composer.json
{
    // ...
    require:{
        // ...
        "ardteam/cms-project" : "1.0.x@dev",
        "friendsofsymfony/user-bundle": "@dev",
        "ardteam/user-project" : "@dev"
    }
}

在应用内核中注册包

// app/AppKernel.php

public function registerBundles()
{
    return array(
        // ...
        new AT\CmsBundle\ATCmsBundle(),
        new FOS\UserBundle\FOSUserBundle(),
        new AT\UserBundle\ATUserBundle(),
        // ...
    );
}

在 "parameters.yml.dist" 中添加默认参数

    # ...
    universal_analytics: ~

安装包

$ composer update

配置

编辑应用配置文件 config.yml, security.yml 和 routing.yml,添加以下配置

# Add to app/config/config.yml

# Twig Configuration
twig:
    # ...
    globals:
        google_analytics_ua: "%universal_analytics%"
        base_template: "ATCmsBundle:Core:base.html.twig"

doctrine:
    dbal:
        # ...
        types:
            json: Sonata\Doctrine\Types\JsonType

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: AT\UserBundle\Entity\User
# Add to app/config/security.yml

security
    encoders:
        AT\UserBundle\Entity\User: sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        # ...

        main:
           pattern: ^/
           anonymous:    true
           form_login:
               provider: fos_userbundle
               login_path: fos_user_security_login
               check_path: fos_user_security_check
           logout:
                path: fos_user_security_logout
                target: / # route après logout
            remember_me:
                key: %secret% # %secret% est un paramètre de parameters.yml

    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 } # exemple de route à sécuriser
        # ...

导入 FOSUser 路由

# Add to app/config/routing.yml

# Sécurité & Connexion
fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

声明主要 Bundle,扩展 ATCmsBundle

    # xxxBundle.php
    public function getParent()
    {
        return 'ATCmsBundle';
    }

并创建一个 DefaultController,扩展 "AT\CmsBundle\Controller\CoreController"

    <?php

    namespace AppBundle\Controller;

    use AT\CmsBundle\Controller\CoreController;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;

    class DefaultController extends CoreController
    {
    }

生成数据库模式。

别忘了在 "parameters.yml" 文件中设置数据库参数

$ php app/console doctrine:database:create
$ php app/console doctrine:schema:update --force

使用方法

创建一个用户。例如

$ php app/console fos:user:create <user_name> <user_email> <user_password> --super-admin