sfDoctrineActAsActivablePlugin - 0.1.1

Allows use of the doctrine behavior actAsActivable

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


« Back to the Plugins Home

Signin


Forgot your password?
Create an account

Tools

Stats

advanced search
Information Readme Releases Changelog Contribute
Show source

sfDoctrineActAsActivablePlugin

The sfDoctrineActAsActivablePlugin is a symfony plugin that allows use of the doctrine behavior actAsActivable.

This behavior provides methods on your model for setting "is active"/"is not active" state to doctrine records.

This plugin allow cascade activate/desactivate between doctrine relation

Installation

  • Install the plugin

    $ symfony plugin:install sfDoctrineActAsActivablePlugin
    
  • Activate the plugin in your project configuration file (in config/ProjectConfiguration.class.php) and enable the Doctrine callbaks.

    class ProjectConfiguration extends sfProjectConfiguration
    {
        public function setup()
        {
            //...
            $this->enablePlugins('sfDoctrineActAsActivablePlugin');
        }
        public function configureDoctrine(Doctrine_Manager $manager) 
        {
            // Enable callbacks so that Activable behavior can be used
            $manager->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, true);
        }
    }
    

    }

  • Apply the behavior to your model in your schema file config/doctrine/schema.yml, ie:

    # simple
        [yml]
        model:
          actAs: [Activable]
    
    # advenced
        [yml]
        model:
          actAs: 
            Activable:
              name: is_active
              alias: ~
              options:
                default: true
              indexName: activable
              cascade: 
                down: true
    
  • (optional): If you prefer apply a general config for all your activable model, leave activable declaration in your schema with "~" and set the default config in your app.yml

    # config/doctrine/schema.yml
        Mymodel:
          actAs: 
            Activable: ~
    
    # app/myapp/config/app.yml
        all:
          activable:
            name: is_active
            alias: null
            type: boolean
            length: 1
            options:
              default: true
            indexName: activable
            cascade:
              down: false
              up: false
    
  • Rebuild your models and database

    $ symfony doctrine:build-all-reload
    

    alternatively you could build the models, the sql, then run the sql manually

  • Clear your cache

    $ symfony cc
    
  • when working with activale behavior , you will probably want to show all your records (active and non-active) to be able to enable the "non-active" items. To do that without adding a condition in your DQL, you can force the behavior with:

    // put this line before building your Doctrine Query
    sfConfig::set('activable_dql_select', FALSE);
    

(comming soon)

Available schema options:

    [yml]
    model:
      actAs: 
        Activable:
          cascade: 
            up: true

Available Record Methods

  • activate

    $record->activate();
  • desactivate

    $record->deactivate();
  • fullActivate

    $record->fullActivate();
  • fullDesactivate

    $record->fullDeactivate();