Unable to change model builder settings

I am trying to get symfony to use its own class jsDoctrineRecordinstead sfDoctrineRecordfor its models. Here is the code for the overriding class:

<?php
abstract class jsDoctrineRecord extends sfDoctrineRecord
{
  public function foo()
  {
    echo 'foo';exit;
  }
}

Here's what I have config/ProjectConfiguration.class.phpin accordance with the instructions here :

<?php

require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->enablePlugins('sfDoctrinePlugin');
    $this->enablePlugins('sfDoctrineGuardPlugin');
    $this->enablePlugins('jsDoctrineSchemaOverriderPlugin');
  }

  public function configureDoctrine(Doctrine_Manager $manager)
  {
    $options = array('baseClassName' => 'jsDoctrineRecord');
    sfConfig::set('doctrine_model_builder_options', $options);
  }
}

Unfortunately this does not work. My models continue to inherit from sfDoctrineRecordinstead jsDoctrineRecord. The method is foo()not recognized. I still have a problem when I clear my cache.

I am sure that I am following the instructions correctly, so what could be wrong?

+3
source share
2 answers

, . : build-model.

+3

, BC, , sfDoctrinePlugin, : symfony (. 83 - 89 SF_LIB_DIR/plugins/sfDoctrinePlugin/config/sfDoctrinePluginConfiguration.class.php):

projectConfiguration:

public function setup()
{
   $this->enablePlugins('sfDoctrinePlugin');
   $this->enablePlugins('sfDoctrineGuardPlugin');
   $this->enablePlugins('jsDoctrineSchemaOverriderPlugin');

   $this->dispatcher->connect(
     'doctrine.filter_model_builder_options', 
     array($this, 'configureDoctrineBuildOptions')
   );
}

public function configureDoctrineBuildOptions(sfEvent $event, $options)
{
   $options['baseClassName'] = 'jsDoctrineRecord';

   return $options;
}

, .

+4

All Articles