PHPackages                             20steps/drupal-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. 20steps/drupal-bundle

ActiveSymfony-bundle

20steps/drupal-bundle
=====================

Integrate Symfony2 with Drupal

1.0.0(10y ago)0221MITPHPPHP &gt;=5.3.2

Since Jan 14Pushed 9y ago4 watchersCompare

[ Source](https://github.com/20steps/EkinoDrupalBundle)[ Packagist](https://packagist.org/packages/20steps/drupal-bundle)[ Docs](https://github.com/ekino/EkinoDrupalBundle)[ RSS](/packages/20steps-drupal-bundle/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (4)Versions (5)Used By (0)

Bridge Bricks by 20steps inc. Symfony 3 to Drupal 7.x
=====================================================

[](#bridge-bricks-by-20steps-inc-symfony-3-to-drupal-7x)

The bundle deeply integrates Bricks by 20steps including Symfony 3 with Drupal7 and vice versa. This is done without altering Drupal's core.

When this bundle is activated, the Symfony 3 console will have the Drupal 7.x libraries autoloaded. So, it makes possible the use of Drupal libraries from your Symfony 3 command.

Install
-------

[](#install)

### Download the Bricks by 20steps Drupal 7 edition

[](#download-the-bricks-by-20steps-drupal-7-edition)

### Configuration

[](#configuration)

Adapt the `etc/config/cms.yml` file to your needs:

```
parameters:
    session.flashbag.class:       Ekino\Bundle\DrupalBundle\Port\DrupalFlashBag
    session.attribute_bag.class:  Ekino\Bundle\DrupalBundle\Port\DrupalAttributeBag

framework:
    # ... configuration options
    session:
        # ... configuration options
        storage_id:     ekino.drupal.session.storage

ekino_drupal:
    root:          %kernel.root_dir%/../web
    logger:        ekino.drupal.logger.watchdog
    strategy_id:   ekino.drupal.delivery_strategy.symfony
    # attach a security token to the following provider keys
    provider_keys: [main, admin]

    # not required
    entity_repositories:
        # 3 equivalent examples of configuration:
        - { bundle: page }
        - { type: node, bundle: page }
        - { type: node, bundle: page, class: Ekino\Bundle\DrupalBundle\Entity\EntityRepository }
        # you can also define an entity repository:
        - { type: node, class: Application\Ekino\Bundle\DrupalBundle\Entity\Node\NodeRepository }

    # switch to true if you want to prefix the name of Symfony tables
    table_prefix:
        enabled: false
        prefix:  symfony__
        exclude: [users]

    # optional
    session:
        refresh_cookie_lifetime: true # default value: false

# declare 2 required mapping definition used by Drupal
doctrine:
    dbal:
        driver:   %database_driver%
        dbname:   %database_name%
        user:     %database_user%
        host:     %database_host%
        port:     %database_port%
        password: %database_password%
        charset:  UTF8

        mapping_types:
            longblob: object
            blob: object

        # Tips: this allows Doctrine to consider only tables starting with
        # "symfony__" during a migration generation.
        # Think to add Doctrine migrations table here or configure it in
        # the doctrine_migrations section (table_name)
        schema_filter: ~^(symfony__|migration_versions)~

```

The bundle comes with 3 delivery strategies:

- ekino.drupal.delivery\_strategy.background: Drupal never returns the response, Symfony does
- ekino.drupal.delivery\_strategy.drupal: Drupal always returns the response, even if the page is 404
- ekino.drupal.delivery\_strategy.symfony: Drupal returns the response only if the page is not 404

The (optional) section `entity_repositories` allows you to easy interact with Drupal 7.x API to retrieve contents and handle it from Symfony code. The configuration offers default values:

- default entity type is `node`
- default repository class is `Ekino\Bundle\DrupalBundle\Entity\EntityRepository`, feel free to configure yours

Update Queries
--------------

[](#update-queries)

```
UPDATE users SET `emailCanonical` = `mail`, `usernameCanonical` = `name`, `roles` = 'b:0;';
```

Usage
-----

[](#usage)

Symfony services can be used from within Drupal:

```
