Skip to content

Commit

Permalink
updating to Dependency Injection
Browse files Browse the repository at this point in the history
  • Loading branch information
pablodip committed May 17, 2011
1 parent c43981f commit 4abcdb3
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 44 deletions.
4 changes: 2 additions & 2 deletions DependencyInjection/Compiler/MandangoMondatorPass.php
Expand Up @@ -34,8 +34,8 @@ public function process(ContainerBuilder $container)
// core
$definition = new Definition('Mandango\Extension\Core');
$definition->addArgument(array(
'metadata_class' => $container->getParameter('mandango.metadata.class'),
'metadata_output' => $container->getParameter('mandango.metadata.output'),
'metadata_factory_class' => $container->getParameter('mandango.metadata_factory.class'),
'metadata_factory_output' => $container->getParameter('mandango.metadata_factory.output'),
));
$container->setDefinition('mandango.extension.core', $definition);

Expand Down
9 changes: 6 additions & 3 deletions Form/ChoiceList/MandangoDocumentChoiceList.php
Expand Up @@ -11,8 +11,9 @@

namespace Mandango\MandangoBundle\Form\ChoiceList;

use Mandango\Query;
use Symfony\Component\Form\Extension\Core\ChoiceList\ArrayChoiceList;
use Mandango\Query;
use Mandango\Mandango;

/**
* MandangoDocumentChoiceList.
Expand All @@ -21,15 +22,17 @@
*/
class MandangoDocumentChoiceList extends ArrayChoiceList
{
protected $mandango;
protected $class;
protected $field;
protected $query;
protected $choices;

protected $documents;

public function __construct($class, $field = null, Query $query = null, array $choices = array())
public function __construct(Mandango $mandango, $class, $field = null, Query $query = null, array $choices = array())
{
$this->mandango = $mandango;
$this->class = $class;
$this->field = $field;
$this->query = $query;
Expand All @@ -56,7 +59,7 @@ protected function load()
} elseif ($this->query) {
$documents = $this->query->all();
} else {
$documents = call_user_func(array($this->class, 'getRepository'))->createQuery()->all();
$documents = $this->mandango->getRepository($this->class)->createQuery()->all();
}
$this->documents = $documents;

Expand Down
14 changes: 7 additions & 7 deletions Form/MandangoTypeGuesser.php
Expand Up @@ -14,7 +14,7 @@
use Symfony\Component\Form\FormTypeGuesserInterface;
use Symfony\Component\Form\Guess\Guess;
use Symfony\Component\Form\Guess\TypeGuess;
use Mandango\Metadata;
use Mandango\MetadataFactory;

/**
* MandangoTypeGuesser
Expand All @@ -23,28 +23,28 @@
*/
class MandangoTypeGuesser implements FormTypeGuesserInterface
{
private $metadata;
private $metadataFactory;

/**
* Constructor.
*
* @param Mandango\Metadata $metadata The Mandango's metadata.
* @param Mandango\MetadataFactory $metadata The Mandango's metadata.
*/
public function __construct(Metadata $metadata)
public function __construct(MetadataFactory $metadataFactory)
{
$this->metadata = $metadata;
$this->metadataFactory = $metadataFactory;
}

/**
* @inheritDoc
*/
public function guessType($class, $property)
{
if (!$this->metadata->hasClass($class)) {
if (!$this->metadataFactory->hasClass($class)) {
return;
}

$metadata = $class::getMetadata();
$metadata = $this->metadataFactory->getClass($class);

// field
if (isset($metadata['fields'][$property])) {
Expand Down
15 changes: 15 additions & 0 deletions Form/Type/MandangoDocumentType.php
Expand Up @@ -17,6 +17,7 @@
use Mandango\MandangoBundle\Form\EventListener\MergeGroupListener;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\AbstractType;
use Mandango\Mandango;

/**
* MandangoDocumentType.
Expand All @@ -25,6 +26,18 @@
*/
class MandangoDocumentType extends AbstractType
{
private $mandango;

/**
* Constructor.
*
* @param Mandango $mandango The mandango.
*/
public function __construct(Mandango $mandango)
{
$this->mandango = $mandango;
}

/**
* {@inheritdoc}
*/
Expand All @@ -49,6 +62,7 @@ public function getDefaultOptions(array $options)
'template' => 'choice',
'multiple' => false,
'expanded' => false,
'mandango' => $this->mandango,
'class' => null,
'field' => null,
'query' => null,
Expand All @@ -60,6 +74,7 @@ public function getDefaultOptions(array $options)

if (!isset($options['choice_list'])) {
$defaultOptions['choice_list'] = new MandangoDocumentChoiceList(
$options['mandango'],
$options['class'],
$options['field'],
$options['query'],
Expand Down
26 changes: 0 additions & 26 deletions MandangoBundle.php
Expand Up @@ -11,7 +11,6 @@

namespace Mandango\MandangoBundle;

use Mandango\Container as MandangoContainer;
use Mandango\MandangoBundle\DependencyInjection\Compiler\MandangoMondatorPass;
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
use Symfony\Component\DependencyInjection\ContainerBuilder;
Expand All @@ -24,23 +23,6 @@
*/
class MandangoBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function boot()
{
MandangoContainer::setLoader('default', array($this, 'loadMandango'));
MandangoContainer::setDefaultName('default');
}

/**
* {@inheritdoc}
*/
public function shutdown()
{
MandangoContainer::clear();
}

/**
* {@inheritdoc}
*/
Expand All @@ -50,12 +32,4 @@ public function build(ContainerBuilder $container)

$container->addCompilerPass(new MandangoMondatorPass());
}

/**
* Loads the mandango.
*/
public function loadMandango()
{
return $this->container->get('mandango');
}
}
12 changes: 6 additions & 6 deletions Resources/config/mandango.xml
Expand Up @@ -7,10 +7,10 @@
<parameters>
<!-- mandango -->
<parameter key="mandango.class">Mandango\Mandango</parameter>
<parameter key="mandango.metadata.class">Model\Mapping\Metadata</parameter>
<parameter key="mandango.metadata_factory.class">Model\Mapping\MetadataFactory</parameter>

<parameter key="mandango.model_dir">%kernel.root_dir%/../src/Model</parameter>
<parameter key="mandango.metadata.output">%mandango.model_dir%/Mapping</parameter>
<parameter key="mandango.metadata_factory.output">%mandango.model_dir%/Mapping</parameter>

<!-- cache -->
<parameter key="mandango.cache.filesystem_cache.class">Mandango\Cache\FilesystemCache</parameter>
Expand All @@ -33,11 +33,11 @@
<services>
<!-- mandango -->
<service id="mandango" class="%mandango.class%">
<argument type="service" id="mandango.metadata" />
<argument type="service" id="mandango.metadata_factory" />
<argument type="service" id="mandango.query_cache.filesystem" />
</service>

<service id="mandango.metadata" class="%mandango.metadata.class%">
<service id="mandango.metadata_factory" class="%mandango.metadata_factory.class%">
</service>

<!-- query cache -->
Expand All @@ -63,12 +63,12 @@
<!-- form -->
<service id="form.type.mandango_document" class="%form.type.mandango_document.class%">
<tag name="form.type" alias="mandango_document" />
<argument type="service" id="mandango.metadata" />
<argument type="service" id="mandango" />
</service>

<service id="form.type_guesser.mandango" class="%form.type_guesser.mandango.class%">
<tag name="form.type_guesser" />
<argument type="service" id="mandango.metadata" />
<argument type="service" id="mandango.metadata_factory" />
</service>
</services>
</container>

0 comments on commit 4abcdb3

Please sign in to comment.