CMS-project
Installation
Require the bundle in your composer.json file:, (*1)
# composer.json
{
// ...
require:{
// ...
"ardteam/cms-project" : "1.0.x@dev",
"friendsofsymfony/user-bundle": "@dev",
"ardteam/user-project" : "@dev"
}
}
Register the bundle in your application kernel:, (*2)
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new AT\CmsBundle\ATCmsBundle(),
new FOS\UserBundle\FOSUserBundle(),
new AT\UserBundle\ATUserBundle(),
// ...
);
}
Add default parameters to "parameters.yml.dist", (*3)
# ...
universal_analytics: ~
Install the bundle:, (*4)
$ composer update
Configuration
Edit your application config.yml, security.yml and routing.yml files adding following configuration:, (*5)
``` yaml, (*6)
Add to app/config/config.yml
Twig Configuration
twig:
# ...
globals:
google_analytics_ua: "%universal_analytics%"
base_template: "ATCmsBundle:Core:base.html.twig", (*7)
doctrine:
dbal:
# ...
types:
json: Sonata\Doctrine\Types\JsonType, (*8)
fos_user:
db_driver: orm
firewall_name: main
user_class: AT\UserBundle\Entity\User, (*9)
``` yaml
# 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
# ...
Import FOSUser routes, (*10)
``` yaml, (*11)
Add to app/config/routing.yml
Sécurité & Connexion
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml", (*12)
Declare your main Bundle extending the ATCmsBundle
``` php
# xxxBundle.php
public function getParent()
{
return 'ATCmsBundle';
}
and create a DefaultController extending "AT\CmsBundle\Controller\CoreController", (*13)
``` php
<?php, (*14)
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
{
}
Generate the database schema.
> Don't forget to setup database parameters in "parameters.yml" file
$ php app/console doctrine:database:create
$ php app/console doctrine:schema:update --force, (*15)
## Usage
Create a user. For example :
$ php app/console fos:user:create --super-admin
```, (*16)