Commit Graph

309 Commits

Author SHA1 Message Date
Fabien Potencier
0168241014 [DependencyInjection] renamed NonExistentParameterException and NonExistentServiceException to ParameterNotFoundException and ServiceNotFoundException 2011-05-17 16:26:08 +02:00
Fabien Potencier
09cccf60c7 Merge remote branch 'stof/ParameterBagInterface'
* stof/ParameterBagInterface:
  [DependencyInjection] Removed the public keyword from interface
  [DependencyInjection] Added missing methods in the ParameterBagInterface
  [DependencyInjection] Fixed phpdoc
2011-05-17 10:29:19 +02:00
Fabien Potencier
e46e53daa0 Merge remote branch 'stof/graphviz'
* stof/graphviz:
  [DependencyInjection] Fixed a property visibility in GraphvizDumper and removed a useless instanciation in the test
2011-05-14 17:23:50 +02:00
Fabien Potencier
0b367b9489 [DependencyInjection] tweaked error messages 2011-05-13 12:52:44 +02:00
Christophe Coevoet
c2f074b7d5 [DependencyInjection] Fixed a property visibility in GraphvizDumper and removed a useless instanciation in the test 2011-05-13 12:18:09 +02:00
Martin Schuhfuss
9112d8c2d3 removed obsolete use-statement 2011-05-10 16:34:44 +02:00
Martin Schuhfuss
5387532ff2 [DependencyInjection] added phpdoc for property $container in ContainerAware
This should ease code-completion a little bit...
2011-05-10 16:30:58 +02:00
Christophe Coevoet
a54d6b7e58 [DependencyInjection] Removed the public keyword from interface 2011-05-10 13:55:08 +02:00
Christophe Coevoet
1bb6b97c1c [DependencyInjection] Added missing methods in the ParameterBagInterface
The Container relies on the resolve() value which was not part of
the interface.
2011-05-10 02:34:02 +02:00
Christophe Coevoet
b6c36de134 [DependencyInjection] Fixed phpdoc 2011-05-10 02:33:34 +02:00
Johannes Schmitt
2c287676fb [DependencyInjection] fixes a bug when requesting a definition that uses property injection 2011-05-03 23:46:02 +02:00
Fabien Potencier
0b165e13b2 [DependencyInjection] added public attribute when dumping a container to XML 2011-05-01 17:21:19 +02:00
Fabien Potencier
6fec656239 [DependencyInjection] forced anonymous services to always be private 2011-05-01 17:21:18 +02:00
Fabien Potencier
8b0450083a [DependencyInjection] removed unused vars 2011-05-01 17:21:17 +02:00
Pascal Borreli
391744719a Various typos 2011-04-30 19:40:15 +00:00
Fabien Potencier
2e9278993c added Definition::getArgument() (very useful when unit testing a Container) 2011-04-28 11:26:10 +02:00
Eriksen Costa
164ce5210d capitalized 'boolean' 2011-04-27 02:35:10 -03:00
Fabien Potencier
175f944f93 [DependencyInjection] added NonExistentParameterException that indicates where a non-existent parameter is being used 2011-04-26 12:36:25 +02:00
Pascal Borreli
8c0beea677 [Phpdoc] Cleaning/fixing 2011-04-23 15:18:47 +00:00
Lukas Kahwe Smith
d9491a743e removed support for interface injection as well as all relevant tests 2011-04-23 11:42:31 +02:00
Pascal Borreli
b5769c52d6 Fixed various typo 2011-04-22 23:12:50 +00:00
Fabien Potencier
8b2b8e16dc Merge remote branch 'schmittjoh/referenceValidation'
* schmittjoh/referenceValidation:
  [DependencyInjection] also check references of inlined services
  [DependencyInjection] adds emulation of "exception-on-invalid-reference" behavior
2011-04-21 22:44:20 +02:00
Bertrand Zuchuat
7ed8ea25d8 [Container] Added function array_unique on getServiceIds to return only one service name 2011-04-20 23:45:36 +02:00
Kris Wallsmith
470baaab9f [DependencyInjection] renamed ContainerBuilder::remove() as removeDefinition() to be more consistent with other definition-related methods 2011-04-20 04:48:19 -07:00
Kris Wallsmith
cdf706d357 [DependencyInjection] renamed Definition::setArgument() as replaceArgument() to be more specific 2011-04-20 04:47:44 -07:00
Brikou CARRE
e898445b94 removed empty lines/trailing spaces 2011-04-15 21:12:02 +02:00
Fabien Potencier
de390fd893 [DependencyInjection] removed timing info as it is useless 2011-04-15 10:42:56 +02:00
Fabien Potencier
0b563c32ac Merge remote branch 'schmittjoh/diLogging'
* schmittjoh/diLogging:
  [DependencyInjection] enable debug related passes only in debug environment
  [DependencyInjection] removed pass time
  [DependencyInjection] fixes a bug which might have occurred when using property injection under certain circumstances
  [DependencyInjection] fixed method name
  [FrameworkBundle] whitespace fix
  [DependencyInjection] refactored code a bit, added some more logging messages
  [DependencyInjection] dump a readable format
  [DependencyInjection] better logging
2011-04-15 10:38:54 +02:00
Johannes Schmitt
fd5caa9546 [DependencyInjection] also check references of inlined services 2011-04-15 08:47:28 +02:00
Johannes Schmitt
ff41541d45 [DependencyInjection] removed pass time 2011-04-15 08:19:28 +02:00
Johannes Schmitt
6d7a9d752d [DependencyInjection] adds emulation of "exception-on-invalid-reference" behavior
This pass requires that all of references are valid at the end of
the compilation process.
2011-04-15 00:55:18 +02:00
Johannes M. Schmitt
1992c3b96d [DependencyInjection] fixes a bug which might have occurred when using property injection under certain circumstances 2011-04-14 21:29:46 +02:00
Johannes M. Schmitt
75ac0f5dc3 [DependencyInjection] fixed method name 2011-04-14 21:07:16 +02:00
Johannes M. Schmitt
6ea9fb16c7 [DependencyInjection] refactored code a bit, added some more logging messages 2011-04-14 21:01:37 +02:00
Fabien Potencier
fa6961bb91 Revert "Merge remote branch 'lsmith77/prevent_redundant_DI_method_calls'"
This reverts commit 0d61ae06b4, reversing
changes made to 8e3d125902.
2011-04-13 14:30:06 +02:00
Lukas Kahwe Smith
c9be18a79f do not add method calls from interface injection if a method call has already been set manually 2011-04-13 14:11:56 +02:00
Johannes Schmitt
2397bcbe94 [DependencyInjection] better logging 2011-04-13 00:51:32 +02:00
Lukas Kahwe Smith
a4b04c4add use synthetic services instead of special exceptions 2011-04-12 10:07:46 +02:00
Ryan Weaver
b9883a3bad [Config] Improving the exception when a resource cannot be imported
This improves, for example, the exception one would receive if they tried to import a resource from a bundle that doesn't exist.
Previously, the deep "bundle is not activated" exception would be thrown. That has value, however there is no indication of where
the exception is actually occurring.

In this new implementation, we throw an exception that explains exactly which resource, and from which source resource, cannot be
loaded. The deeper exception is still thrown as a nested exception.

Two caveats:

  * The `HttpKernel::varToString` method was replicated
  * This introduces a new `Exception` class, which allows us to prevent lot's of exceptions from nesting into each other in the case
    that some deeply imported resource cannot be imported (each upstream import that fails doesn't add its own exception).
2011-04-01 18:59:54 -05:00
Ryan Weaver
65ac5ec7c0 [DependencyInjection] Fixing a bug where "ignore_errors" doesn't work in YAML and XML
Tests added, the arguments were simply mismatched.
2011-04-01 18:59:45 -05:00
Fabien Potencier
e4a3e0c2c7 [Config] moved from protected to private (WIP) 2011-03-23 19:34:00 +01:00
Fabien Potencier
68011c0dd6 [DependenInjection] fixed CS 2011-03-22 19:47:46 +01:00
Jan Prieser
67aaf5ce91 Fixed PhpDumper isSimpleService and changed test fixtures 2011-03-22 17:01:03 +01:00
Miha Vrhovnik
25e4193294 removed unused variable 2011-03-21 11:34:06 +01:00
Miha Vrhovnik
496280329b changing phpdoc parameter to array as all variables are used in foreach 2011-03-21 11:28:38 +01:00
Jan Prieser
60c1159b2e [DependecyInjection] fixed typo. Using InterfaceInjectors broke methodCalls. 2011-03-17 15:03:16 +01:00
Fabien Potencier
e6ebf4da4c fixed small bug in sub-request profiling 2011-03-16 19:33:55 +01:00
Fabien Potencier
ad3b7e912d merged noelg/profiler 2011-03-16 16:44:44 +01:00
Fabien Potencier
ae7a2df104 fixed CS 2011-03-16 14:45:34 +01:00
Fabien Potencier
ac49289451 Merge remote branch 'rrehbeindoi/master' 2011-03-16 14:44:44 +01:00
max
e2542962df reinitialize array so arguments dont stack up 2011-03-15 12:08:13 -07:00
Ray
c2908cdaa0 Allow collection's internal keys to be mixed case 2011-03-15 09:35:40 -05:00
Johannes M. Schmitt
98216a9af2 [DependencyInjection] refactored some more exceptions 2011-03-14 21:14:49 +01:00
Johannes M. Schmitt
a1fb717074 [DependencyInjection] loader fix 2011-03-14 17:45:27 +01:00
Johannes M. Schmitt
e624e27675 [DependencyInjection] refactored some exceptions 2011-03-13 20:35:15 +01:00
Fabien Potencier
a1fcbf4d5f Merge remote branch 'kriswallsmith/dic/false-circular-ref-fix'
* kriswallsmith/dic/false-circular-ref-fix:
  [DependencyInjection] fixed false positive when detecting circular references if a service throws an exception during creation
2011-03-11 19:58:54 +01:00
Fabien Potencier
cedf588e98 Revert "Merge remote branch 'kriswallsmith/dic/lazy-replace-ext-params'"
This reverts commit 32ac2e8709, reversing
changes made to 6e81c28ca4.
2011-03-11 15:35:09 +01:00
Fabien Potencier
f321fadad6 [DependencyInjection] moved most protected things to private 2011-03-11 14:50:46 +01:00
Fabien Potencier
9dadcff13e [DependencyInjection] removed obsolete code 2011-03-11 14:36:44 +01:00
Fabien Potencier
a8d05746ff Merge remote branch 'schmittjoh/propertyAnnotations'
* schmittjoh/propertyAnnotations:
  [DependencyInjection] added some tests
  [DependencyInjection] adds property injection
2011-03-11 13:12:12 +01:00
Fabien Potencier
32ac2e8709 Merge remote branch 'kriswallsmith/dic/lazy-replace-ext-params'
* kriswallsmith/dic/lazy-replace-ext-params:
  [DependencyInjection] added test for lazy param replacement
  Removed replacement of parameter placeholders at load time since they're now replaced at compile time. Extensions should be written to expect parameter placeholders.
2011-03-11 10:41:22 +01:00
Amal Raghav
517735e581 fix for ignoring abstract definition 2011-03-11 10:36:48 +01:00
Kris Wallsmith
f33cf0ba5d Removed replacement of parameter placeholders at load time since they're now replaced at compile time. Extensions should be written to expect parameter placeholders.
Revert "[DependencyInjection] Allow parameter replacement within extension configurations."

This reverts commit ab7ad4808b.

Conflicts:

	src/Symfony/Component/DependencyInjection/ContainerBuilder.php
2011-03-10 12:59:00 -08:00
Johannes M. Schmitt
d9848f38ac [DependencyInjection] added some tests 2011-03-10 15:31:00 +01:00
Kris Wallsmith
8c45a21637 [DependencyInjection] fixed false positive when detecting circular references if a service throws an exception during creation 2011-03-09 06:38:02 -08:00
Kris Wallsmith
de6c353b40 [DependencyInjection] made compiler lazy again since there are many temporary ContainerBuilder objects that don't use it 2011-03-08 05:34:07 -08:00
Fabien Potencier
8c423edfef replaced symfony-project.org by symfony.com 2011-03-06 12:40:06 +01:00
Johannes Schmitt
eb2eb2e47a [DependencyInjection] adds property injection 2011-03-05 13:03:28 +01:00
Kris Wallsmith
bf0553c23a [DependencyInjection] extensions should only load if called during configuration 2011-03-03 13:53:29 +01:00
ornicar
6790e45911 [DependencyInjection] Fix variable name in ExtensionInterface 2011-03-01 16:20:26 -08:00
Fabien Potencier
fd53035c8d Merge remote branch 'schmittjoh/inlinePassFix'
* schmittjoh/inlinePassFix:
  [DependencyInjection/Compiler] fixes a bug which silently changed the scope of services
2011-03-01 20:38:48 +01:00
Pascal Borreli
b84999ac33 [DependencyInjection] Fixed Typo 2011-03-01 18:58:08 +01:00
Johannes M. Schmitt
67c886f3df [DependencyInjection/Compiler] fixes a bug which silently changed the scope of services 2011-03-01 13:47:34 +01:00
Fabien Potencier
cdf6851eb3 fixed merge 2011-02-27 21:16:13 +01:00
Christophe Coevoet
92bfbf575c Fixed CS 2011-02-27 20:56:29 +01:00
Pascal Borreli
66f4d8bf6d [DependencyInjection] Removed useless else 2011-02-27 18:36:37 +01:00
Pascal Borreli
1a8ce933e1 [DependencyInjection] Fixed typo 2011-02-26 20:02:05 +01:00
noel guilbert
a8eff2b154 Improved profiler to store and retrieve sub requests data 2011-02-26 17:24:02 +01:00
Fabien Potencier
f54cedfe5e added LICENSE files for the subtree repositories 2011-02-22 18:58:15 +01:00
Fabien Potencier
6b12c21261 moved DependencyInjection\Configuration to Config\Definition 2011-02-17 16:03:48 +01:00
Ryan Weaver
c5e4dfb5a6 [DependencyInjection] Adding to InvalidArgumentException messages to clarify when a service is given an invalid "tags" value. 2011-02-17 15:59:39 +01:00
Christophe Coevoet
ee8ad0c4e9 Fixed previous commit to handle the case of arrays 2011-02-16 23:07:11 +01:00
Christophe Coevoet
27e2ec139d Added the possibility to add the value in the exception message 2011-02-16 23:07:11 +01:00
Christophe Coevoet
6b4538a1c4 Added the test ifNotInArray 2011-02-16 23:07:11 +01:00
Christophe Coevoet
ef045a9433 Added missing license header in the DependenciInjection\Configuration classes 2011-02-16 23:07:11 +01:00
Christophe Coevoet
077d1921b3 Added the support of the validation in the Builder 2011-02-16 23:07:10 +01:00
Christophe Coevoet
a5bac4b5a3 Fixed xmlloader 2011-02-15 22:41:29 +01:00
Fabien Potencier
a29a413c48 made DIC extensions members of the Container instead of static members 2011-02-15 22:22:32 +01:00
Fabien Potencier
62e3053769 refactored previous commit, fixed tests
How to upgrade?

For XML configuration files:

 * All extensions should now use the config tag (this is just a convention as
   the YAML configurations files do not use it anymore):

 * The previous change means that the doctrine and security bundles now are
   wrapped under a main "config" tag:

        <doctrine:config>
            <doctrine:orm />
            <doctrine:dbal />
        </doctrine:config>

        <security:config>
            <security:acl />
            ...
        </security:config>

For YAML configuration files:

 * The main keys have been renamed as follows:

        * assetic:config -> assetic
        * app:config -> framework
        * webprofiler:config -> web_profiler
        * doctrine_odm.mongodb -> doctrine_mongo_db
        * doctrine:orm -> doctrine: { orm: ... }
        * doctrine:dbal -> doctrine: { dbal: ... }
        * security:config -> security
        * security:acl -> security: { acl: ... }
        * twig.config -> twig
        * zend.config -> zend
2011-02-15 22:22:28 +01:00
Lukas Kahwe Smith
7f182bd877 implicitly load all registered bundles, all loading is now handled by load(), disable loading of an extension explcitly via setting the extension config to false (for now only Yaml is implemented) 2011-02-15 22:11:08 +01:00
Fabien Potencier
391e00c1de [DependencyInjection] fixed a bug when xpath() returns false 2011-02-15 22:06:52 +01:00
Fabien Potencier
81765f8b6a [DependencyInjection] fixed XML loader 2011-02-15 10:09:58 +01:00
Fabien Potencier
4972bf6350 [DependencyInjection] made getXsdValidationBasePath() and getNamespace() methods from DIC Extension class optional
This has been changed so that people that do not use XML for their own extensions do
not need to bother implementing these two methods.
2011-02-15 04:14:48 +01:00
Tim Nagel
7173764dc1 [Dependency Injection] PHPDoc 2011-02-14 11:16:04 +01:00
Fabien Potencier
5c905beb13 moved common configuration classes to a new Config component 2011-02-13 22:31:50 +01:00
Johannes M. Schmitt
d4d2d60f7b [DependencyInjection] minor interface change 2011-02-13 10:38:10 +01:00
Johannes Schmitt
a5cfc2207c [Security/DependencyInjection] updated SecurityBundle's configuration, some bug fixes in DIC config classes 2011-02-12 22:05:54 +01:00
Jordi Boggiano
98e035b963 [DepdenencyInjection] Prevent self-referencing aliases 2011-02-12 21:58:00 +01:00
Christophe Coevoet
ccd630981f Moved the exception to setDefaultValue 2011-02-12 21:56:21 +01:00
Christophe Coevoet
142212e2ba Added a way to define the default value of a prototype for array nodes 2011-02-12 21:56:21 +01:00
Fabien Potencier
b588caf467 [DependencyInjection] made a small change to mimic a similar change in Routing 2011-02-11 00:13:02 +01:00
Fabien Potencier
b91f082be5 Revert "moved Resource to the Config component"
This reverts commit f53080860a.

Revert "[Router] config fixes"

This reverts commit 51beecc6f2.

Revert "moved duplicated files to a new Config component"

This reverts commit a8ec9b27f0.
2011-02-10 16:14:12 +01:00
Fabien Potencier
f53080860a moved Resource to the Config component 2011-02-10 16:07:42 +01:00
Christophe Coevoet
1305728502 Fixed ExprBuilder to really use the parameter when replacing a key with an attribute 2011-02-10 15:33:14 +01:00
Christophe Coevoet
fa32adb9a3 Added phpdoc for the configuration builder 2011-02-10 15:33:14 +01:00
Fabien Potencier
a8ec9b27f0 moved duplicated files to a new Config component 2011-02-10 03:43:36 +01:00
Fabien Potencier
e58a84eb09 added a FileLocator to DIC so that we can load resources like @BundleName/Resources/... 2011-02-10 00:44:02 +01:00
Johannes M. Schmitt
2b256a0804 [DependencyInjection] allow null for scalar nodes 2011-02-06 20:50:03 +01:00
Johannes M. Schmitt
c7ef8d98d6 [DependencyInjection] append new elements for prototype nodes without a key attribute 2011-02-06 20:11:08 +01:00
Johannes Schmitt
0b8fef2347 [Security/DependencyInjection] adds support for merging security configurations
The merging is done in three steps:

    1. Normalization:
    =================
    All passed config arrays will be transformed into the same structure
    regardless of what format they come from.

    2. Merging:
    ===========
    This is the step when the actual merging is performed. Starting at the root
    the configs will be passed along the tree until a node has no children, or
    the merging of sub-paths of the current node has been specifically disabled.

       Left-Side       Right-Side      Merge Result
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       -nothing-       array           Right-Side will be taken.
       scalar          scalar          Right-Side will be taken.
       array           false           Right-Side will be taken if ->canBeUnset()
                                       was called on the array node.
       false           array           Right-Side will be taken.
       array           array           Each value in the array will be passed to
                                       the specific child node, or the prototype
                                       node (whatever is present).

    3. Finalization:
    ================
    The normalized, and merged config will be passed through the config tree to
    perform final validation on the submitted values, and set default values
    where this has been requested.

You can influence this process in various ways, here is a list with some examples.
All of these methods must be called on the node on which they should be applied.

  * isRequired(): Node must be present in at least one config file.
  * requiresAtLeastOneElement(): PrototypeNode must have at least one element.
  * treatNullLike($value): Replaces null with $value during normalization.
  * treatTrueLike($value): Same as above just for true
  * treatFalseLike($value): Same as above just for false
  * defaultValue($value): Sets a default value for this node (only for scalars)
  * addDefaultsIfNotSet(): Whether to add default values of an array which has not
                           been defined in any configuration file.
  * disallowNewKeysInSubsequentConfigs(): All keys for this array must be defined
                                          in one configuration file, subsequent
                                          configurations may only overwrite these.
  * fixXmlConfig($key, $plural = null): Transforms XML config into same structure
                                        as YAML, and PHP configurations.
  * useAttributeAsKey($name): Defines which XML attribute to use as array key.
  * cannotBeOverwritten(): Declares a certain sub-path as non-overwritable. All
                           configuration for this path must be defined in the same
                           configuration file.
  * cannotBeEmpty(): If value is set, it must be non-empty.
  * canBeUnset(): If array values should be unset if false is specified.

Architecture:
=============
The configuration consists basically out of two different sets of classes.

  1. Builder classes: These classes provide the fluent interface and
                      are used to construct the config tree.

  2. Node classes: These classes contain the actual logic for normalization,
                   merging, and finalizing configurations.

After you have added all the metadata to your builders, the call to
->buildTree() will convert this metadata to actual node classes. Most of the
time, you will not have to interact with the config nodes directly, but will
delegate this to the Processor class which will call the respective methods
on the config node classes.
2011-02-06 20:11:08 +01:00
Jeremy Mikola
743f25a287 [DependencyInjection] Create explicit factoryClass property for Definitions
Previously, the Definition class was used both for type inference and factory construction (if factoryService was absent). This is fine for cases where classes create instances of themselves (e.g. getInstance() or create()), but leads to ambiguity when we have a separate factory class.
2011-02-05 20:39:42 +01:00
Fabien Potencier
37537e3e8c fixed previous commit 2011-02-04 19:38:42 +01:00
Lukas Kahwe Smith
dd71501f54 some fixes by just "blindly" trying to make phpStorm code analysis happier 2011-02-04 19:30:28 +01:00
Fabien Potencier
b6f400a2bc [DependencyInjection] made an optimization on dumped DIC
When dumping a Container, and if it is frozen, we use a plain
PHP array for parameters instead of a ParameterBag.
2011-02-04 00:17:51 +01:00
Johannes Schmitt
b484763a7a [DependencyInjection] added first version of the config normalizer
This is mainly intended for complex configurations to ease the work you
have with normalizing different configuration formats (YAML, XML, and PHP).

First, you have to set-up a config tree:

    $treeBuilder = new TreeBuilder();
    $tree = $treeBuilder
        ->root('security_config', 'array')
            ->node('access_denied_url', 'scalar')->end()
            ->normalize('encoder')
            ->node('encoders', 'array')
                ->key('class')
                ->prototype('array')
                    ->before()->ifString()->then(function($v) { return array('algorithm' => $v); })->end()
                    ->node('algorithm', 'scalar')->end()
                    ->node('encode_as_base64', 'scalar')->end()
                    ->node('iterations', 'scalar')->end()
                ->end()
            ->end()
        ->end()
        ->buildTree()
    ;

This tree and the metadata attached to the different nodes is then used
to intelligently transform the passed config array:

    $normalizedConfig = $tree->normalize($config);
2011-02-01 16:07:04 +01:00
Victor Berchet
cb445b9ca0 [Container] Tweak code 2011-02-01 13:21:10 +01:00
Johannes M. Schmitt
62d52d8015 enables normalizeConfig() to handle irregular plural forms, e.g. factory -> factories 2011-01-28 18:22:17 +01:00
Johannes Schmitt
803dd58002 add definition inheritance support 2011-01-28 09:12:29 +01:00
Johannes M. Schmitt
f3c2e98b25 lazy-load the compiler, and related objects 2011-01-27 21:06:49 +01:00
Fabien Potencier
0219ec3dbc [DependencyInjection] added missing methods in ContainerInterface 2011-01-27 08:42:22 +01:00
Johannes Schmitt
40dec8831f adds helper method to normalize keys 2011-01-25 15:59:51 +01:00
Fabien Potencier
3e71c2c76e [DependencyInjection] made a small speed optimization 2011-01-25 08:41:58 +01:00
Johannes Schmitt
f29a5f74a1 made the DI config validation more strict to catch errors early 2011-01-24 21:15:48 +01:00
Bulat Shakirzyanov
04e16e433d [DependencyInjection] fixed ResolveInterfaceInjectorsPass, as services might not have a class defined due to a scope (e.g. 'request') 2011-01-24 17:55:09 +01:00
Johannes M. Schmitt
e55f150fb7 adds hasTag() to Definition 2011-01-24 17:46:22 +01:00
Johannes M. Schmitt
0144dd86da adds synthetic attribute to definitions
This attribute can be used to hint that the service is being injected
dynamically at runtime, and not constructed by the DIC.
2011-01-23 21:11:50 +01:00
Fabien Potencier
4909987e23 [DependencyInjection] fixed strict flag propagation to aliases 2011-01-22 16:05:51 +01:00
Fabien Potencier
959438ee81 [DependencyInjection] fixed CS + tweaked error messages 2011-01-22 15:35:59 +01:00
Johannes M. Schmitt
1d5b6ed908 adds scope to the DI container 2011-01-22 15:20:50 +01:00
Johannes M. Schmitt
8d19136a55 refactors extensions to call XXXLoad only once with all config sections 2011-01-21 17:04:18 +01:00
Fabien Potencier
0b0c15b7b6 made XSD less strict when possible 2011-01-21 10:53:13 +01:00
Ryan Weaver
17f9162b89 [Standards] Changing many instances of "boolean" to "Boolean". 2011-01-21 09:53:24 +01:00
Johannes M. Schmitt
84fa4b50db adds setArgument to Definition 2011-01-19 21:48:56 +01:00
Kris Wallsmith
8d6da86016 [DependencyInjection] moved loading stack from static to object scope 2011-01-19 07:28:42 +01:00
Lukas Kahwe Smith
ddea635a51 fixes else -> } else 2011-01-19 07:20:23 +01:00
Dominique Bongiraud
64fb94c725 normalized license messages in PHP files 2011-01-18 08:07:46 +01:00
Fabien Potencier
c5f2ec8d2d made DIC tags only available during "compilation"
Now that we have a compilation phase for the DIC, using tags after compilation
is not needed anymore.

Tags were introduced to allow several independant bundles to be able to
interact which each others (remember that each extension knows nothing about
the others).

But during the compilation phase, the container has been merged ans so, all
the information from all bundles are available. This is then the right place
to deal with tags. That way, less work is needed at runtime and the DIC class
in the cache is also much smaller.

For simple cases, it means that you need to process the tag in a compiler pass
and store the information you need in a DIC parameter (have a look at the
TranslatorPass for a very simple example).

So, the PHP dumper does not add tags to the dumped PHP class anymore (it does
not implements TaggedContainerInterface anymore). But tags are still available
on ContainerBuilder instances.
2011-01-17 11:40:04 +01:00
Fabien Potencier
b7d2528384 added a way for any extension to add classes to the class cache 2011-01-16 11:32:17 +01:00
Fabien Potencier
612dce873b [DependencyInjection] added the possibility to pass the type of compiler pass in ContainerBuilder::addCompilerPAss 2011-01-16 10:20:13 +01:00
Fabien Potencier
d5c9f37982 [DependencyInjection] added compiler passes as resources 2011-01-16 10:20:10 +01:00
Fabien Potencier
5c64ca8a30 renamed Container::freeze() to Container::compile() 2011-01-16 08:12:36 +01:00
Johannes Schmitt
f1b7bc1fe9 some refactorings/improvements 2011-01-15 21:07:35 +01:00
Igor Wiedler
d1bc959fc6 [DependencyInjection] Typo in Container
"freezed" should be "frozen".
2011-01-15 15:22:04 +01:00
Martin Hason
6011073e7c [DependencyInjection] fixed XmlDumper (corrected validity) 2011-01-14 18:16:11 +01:00
Fabien Potencier
ea6342413c [DependencyInjection] fixed CS 2011-01-14 17:00:43 +01:00
Martin Hason
5ee48c4963 [DependencyInjection] fix XML entities in XmlDumper 2011-01-14 16:56:44 +01:00
Martin Hason
2a3d94a6d0 [DependencyInjection] added support for anonymous services in XmlDumper 2011-01-14 08:25:18 +01:00
Victor Berchet
0bc6d814c3 [DI Compiler] Make processArguments() process arguments only 2011-01-11 20:29:44 +01:00
Victor Berchet
22f04f50a6 [DI XmlLoader] Add missing type hints 2011-01-11 20:29:29 +01:00
Johannes Schmitt
f1e41a9671 [DependencyInjection] made some improvments to the container compiler
- inline private services which are references multiple times, but where all references originate from the same definition
- bug fix for non-shared services which were considered shared within the scope in which they were inlined
2011-01-09 19:58:51 +01:00