Commit Graph

709 Commits

Author SHA1 Message Date
Fabien Potencier
68d340b845 [FrameworkBundle] removed translator.fallback_locale parameter 2011-03-30 19:16:13 +02:00
Fabien Potencier
40606edd1c [FrameworkBundle] removed templating.assets.version and templating.assets.base_urls parameters 2011-03-30 19:05:22 +02:00
Fabien Potencier
ce4a8de789 [FrameworkBundle] removed the session.default_locale parameter 2011-03-30 17:34:23 +02:00
Fabien Potencier
5e0c046abd [FrameworkBundle] removed %error_handle.level% parameter 2011-03-30 17:02:38 +02:00
Sven Paulus
601d3f5d95 Add a configuration option to restrict profiler storage to the master request
We a currently working on a project were a single requested URL typically
leads to some hundred controller calls. Using the dev controller got
incredibly slow since recent Symfony2 changes because for each controller
invocation a new entry gets added to the profiler storage (totalling over
100mb of data on each request in our case).

With the new configuration attribute "only-master-requests" it is possible
to limit the profiler storage to the master requests, keeping the profiler
usable for us.
2011-03-29 16:58:34 +02:00
Bernhard Schussek
a58cfab37d [Form] Removed form.type.loader tag and according compiler pass to simplify configuration. Custom types that are not in the DIC can be instantiated manually and passed wherever a type is desired. 2011-03-26 18:48:55 +01:00
Bernhard Schussek
fae319e77a [Form] Renderers are now created explicitely using FormFactory::createRenderer(). This improves performance on requests where a form does not need to be rendered 2011-03-26 16:03:34 +01:00
Bernhard Schussek
eb18676354 Merge branch 'master' into experimental 2011-03-25 09:24:38 +01:00
Bernhard Schussek
7b412cc762 [Form] Removed FormFactory::addGuessers() and moved guessers to constructor arg instead 2011-03-25 02:26:14 +01:00
Bernhard Schussek
9c4095a356 [FrameworkBundle] AddFormTypesPass now uses the service ID as alias if no alias is given 2011-03-25 02:18:21 +01:00
Kris Wallsmith
2f8d5cd1c0 [FrameworkBundle] fixed build of config for asset packages 2011-03-24 15:18:50 -07:00
Bernhard Schussek
1211d77f49 [Form] Introduced renderer theme factories so that themes can be changed during runtime 2011-03-24 14:27:21 +01:00
Bernhard Schussek
5b41810b6d Revert "[Form] Changed naming of Themes to ThemeEngines. Theme templates are now 'themes'"
This reverts commit 1efd680b68.
2011-03-24 10:55:12 +01:00
Bernhard Schussek
1efd680b68 [Form] Changed naming of Themes to ThemeEngines. Theme templates are now 'themes' 2011-03-23 22:34:58 +01:00
Bernhard Schussek
9839aafb7d Merge remote branch 'symfony/master' into experimental 2011-03-23 19:18:38 +01:00
Fabien Potencier
20245da86d [FrameworkBundle] fixed cache_warmer configuration 2011-03-22 22:56:46 +01:00
Bernhard Schussek
270a98e413 [Form] Added support for types that are not registered in the DIC. These are identified by their FQ class name. 2011-03-22 12:33:15 +01:00
Benjamin Eberlei
39c2d3f166 [Form] Add PhpTheme that relies on no Template Engine, generalize tests to use for PhpTheme and PhpEngineTheme. Fixed some bugs 2011-03-19 17:47:18 +01:00
Benjamin Eberlei
32e1a7c8f9 Merge bschussek/experimental into branch forms. 2011-03-19 15:18:52 +01:00
Bernhard Schussek
8742cafc21 [FrameworkBundle] Fixed DI configuration for field types 2011-03-19 14:00:27 +01:00
Bernhard Schussek
89215d167d Merge remote branch 'symfony/master' into experimental 2011-03-19 13:25:41 +01:00
Benjamin Eberlei
d44e2264ba Merge branch 'experimental' of git://github.com/bschussek/symfony into forms 2011-03-19 09:36:30 +01:00
Fabien Potencier
f97006f738 [FrameworkBundle] fixed IDE setting for exceptions 2011-03-18 15:47:44 +01:00
Fabien Potencier
0d052201fe [FrameworkBundle] fixed class load order 2011-03-18 12:07:42 +01:00
Fabien Potencier
3627eee3c6 Merge remote branch 'vicb/cfg_rebase'
* vicb/cfg_rebase:
  [Config] Ability to add and override node types without having to subclass NodeBuilder
  [DoctrineBundle] Fix some typos
  [SwiftMailerBundle] Fix a merge issue in the configuration
  Tweak PHPDocs in the extension configuration files
  [Config] Component refactoring
2011-03-18 11:41:43 +01:00
Bernhard Schussek
3f70f89339 Merge remote branch 'symfony/master' into experimental
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Debug/TraceableEventDispatcher.php
	src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
	src/Symfony/Component/HttpFoundation/File/UploadedFile.php
2011-03-18 10:39:40 +01:00
Fabien Potencier
060f34fca9 [FrameworkBundle] fixed class loading order 2011-03-18 09:24:07 +01:00
Fabien Potencier
a71f63e61d [FrameworkBundle] fixed class loading order 2011-03-18 07:36:02 +01:00
Bernhard Schussek
52f382a859 Merge branch 'event-manager' into experimental 2011-03-18 01:55:37 +01:00
John Wards
7c0fe6a3df [FrameworkBundle] Fixed order of the classes to compile for EventDispatcher 2011-03-18 01:54:57 +01:00
Benjamin Eberlei
3bc825bbd4 Merge branch 'experimental' of git://github.com/bschussek/symfony into forms 2011-03-17 19:05:59 +01:00
Benjamin Eberlei
85b61fe1e2 First attempt of PhpTheme. 2011-03-17 19:05:48 +01:00
Victor Berchet
0e84757d94 Tweak PHPDocs in the extension configuration files 2011-03-17 16:29:03 +01:00
Victor Berchet
1e0ed22c55 [Config] Component refactoring
The Config component API have changed and the extension configuration files must be updated accordingly:

1. Array nodes must enclosed their children definition in ->children() ... ->end() calls:

Before:

    $treeBuilder->root('zend', 'array')
        ->arrayNode('logger')
            ->scalarNode('priority')->defaultValue('INFO')->end()
            ->booleanNode('log_errors')->defaultFalse()->end()
        ->end();

After:

    $treeBuilder->root('zend', 'array')
        ->children()
            ->arrayNode('logger')
                ->children()
                    ->scalarNode('priority')->defaultValue('INFO')->end()
                    ->booleanNode('log_errors')->defaultFalse()->end()
                ->end()
            ->end()
        ->end();

2. The 'builder' method (in NodeBuilder) has been dropped in favor of an 'append' method (in ArrayNodeDefinition)

Before:

    $treeBuilder->root('doctrine', 'array')
        ->arrayNode('dbal')
            ->builder($this->getDbalConnectionsNode())
        ->end();

After:

    $treeBuilder->root('doctrine', 'array')
        ->children()
            ->arrayNode('dbal')
                ->append($this->getDbalConnectionsNode())
            ->end()
        ->end();

3. The root of a TreeBuilder is now an NodeDefinition (and most probably an ArrayNodeDefinition):

Before:

    $root = $treeBuilder->root('doctrine', 'array');
    $this->addDbalSection($root);

    public function addDbalSection(NodeBuilder $node)
    {
        ...
    }

After:

    $root = $treeBuilder->root('doctrine', 'array');
    $this->addDbalSection($root);

    public function addDbalSection(ArrayNodeDefinition $node)
    {
        ...
    }

4. The NodeBuilder API has changed (this is seldom used):

Before:

    $node = new NodeBuilder('connections', 'array');

After:

The recommended way is to use a tree builder:

    $treeBuilder = new TreeBuilder();
    $node = $treeBuilder->root('connections', 'array');

An other way would be:

    $builder = new NodeBuilder();
    $node = $builder->node('connections', 'array');

Some notes:

- Tree root nodes should most always be array nodes, so this as been made the default:

    $treeBuilder->root('doctrine', 'array') is equivalent to $treeBuilder->root('doctrine')

- There could be more than one ->children() ... ->end() sections. This could help with the readability:

    $treeBuilder->root('doctrine')
        ->children()
            ->scalarNode('default_connection')->end()
        ->end()
        ->fixXmlConfig('type')
        ->children()
            ->arrayNode('types')
                ....
            ->end()
        ->end()
2011-03-17 16:26:15 +01:00
Fabien Potencier
1219b98ec5 renamed some methods in the event dispatcher 2011-03-17 15:27:42 +01:00
Bernhard Schussek
1c9a00733f Merge branch 'event-manager' into experimental
Conflicts:
	src/Symfony/Component/Security/Http/Firewall/AbstractAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php
2011-03-17 13:38:24 +01:00
Bernhard Schussek
5f14d8d6aa Merge remote branch 'symfony/master' into event-manager
Conflicts:
	src/Symfony/Bundle/AsseticBundle/CacheWarmer/AssetWriterCacheWarmer.php
	src/Symfony/Bundle/AsseticBundle/Tests/CacheWarmer/AssetWriterCacheWarmerTest.php
	src/Symfony/Bundle/FrameworkBundle/Profiler/ProfilerListener.php
	src/Symfony/Bundle/FrameworkBundle/Resources/config/profiling.xml
	src/Symfony/Component/HttpKernel/HttpKernel.php
	src/Symfony/Component/Security/Http/Firewall/AbstractAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php
2011-03-17 12:34:12 +01:00
Bernhard Schussek
de5748070d [FrameworkBundle] Removed EventSubscriber support for DI tags because it currently cannot be implemented 2011-03-17 12:22:49 +01:00
Fabien Potencier
005287ac88 Merge remote branch 'kriswallsmith/templating/asset-packages' 2011-03-16 16:18:45 +01:00
Bernhard Schussek
f64f55002b Merge remote branch 'symfony/master' into experimental
Conflicts:
	src/Symfony/Component/Security/Http/Firewall/AbstractAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php
2011-03-16 16:00:54 +01:00
Fabien Potencier
28d9b331bd [FrameworkBundle] made the profiler easily configurable 2011-03-16 15:58:56 +01:00
Martin Hason
cef70893df [HttpKernel], [FrameworkBundle] added method getContainerClass and parameter kernel.container_class 2011-03-15 09:16:02 +01:00
Fabien Potencier
f4e4a2aa1b refactored ConfigCache and optimized container:debug task 2011-03-14 18:37:25 +01:00
Bernhard Schussek
0bf566310c Merge branch 'event-manager' into experimental
Conflicts:
	src/Symfony/Component/Form/BirthdayField.php
	src/Symfony/Component/Form/CheckboxField.php
	src/Symfony/Component/Form/ChoiceField.php
	src/Symfony/Component/Form/ChoiceList/TimeZoneChoiceList.php
	src/Symfony/Component/Form/CollectionField.php
	src/Symfony/Component/Form/DateField.php
	src/Symfony/Component/Form/DateTimeField.php
	src/Symfony/Component/Form/EntityChoiceField.php
	src/Symfony/Component/Form/Events.php
	src/Symfony/Component/Form/FieldFactory/FieldFactory.php
	src/Symfony/Component/Form/FieldFactory/FieldFactoryInterface.php
	src/Symfony/Component/Form/FileField.php
	src/Symfony/Component/Form/Filters.php
	src/Symfony/Component/Form/FormContext.php
	src/Symfony/Component/Form/FormContextInterface.php
	src/Symfony/Component/Form/FormFactoryInterface.php
	src/Symfony/Component/Form/HybridField.php
	src/Symfony/Component/Form/IntegerField.php
	src/Symfony/Component/Form/LanguageField.php
	src/Symfony/Component/Form/LocaleField.php
	src/Symfony/Component/Form/MoneyField.php
	src/Symfony/Component/Form/NumberField.php
	src/Symfony/Component/Form/PasswordField.php
	src/Symfony/Component/Form/PercentField.php
	src/Symfony/Component/Form/RepeatedField.php
	src/Symfony/Component/Form/TextField.php
	src/Symfony/Component/Form/TimeField.php
	src/Symfony/Component/Form/ToggleField.php
	src/Symfony/Component/Form/UrlField.php
	src/Symfony/Component/HttpFoundation/File/UploadedFile.php
	tests/Symfony/Tests/Component/Form/FileFieldTest.php
	tests/Symfony/Tests/Component/Form/FormContextTest.php
	tests/Symfony/Tests/Component/Form/HiddenFieldTest.php
2011-03-13 21:04:24 +01:00
Bernhard Schussek
06c682b4fb Switched from Doctrine's EventManager implementation to the EventManager clone in Symfony2 (now called EventDispatcher again) 2011-03-13 19:49:10 +01:00
Bernhard Schussek
25931caeab Merge remote branch 'symfony/master' into event-manager
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Debug/TraceableEventManager.php
	src/Symfony/Bundle/WebProfilerBundle/WebDebugToolbarListener.php
	src/Symfony/Component/Security/Http/Firewall.php
	src/Symfony/Component/Security/Http/Firewall/AbstractAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php
	src/Symfony/Component/Security/Http/Firewall/AccessListener.php
	src/Symfony/Component/Security/Http/Firewall/AnonymousAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/BasicAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/ChannelListener.php
	src/Symfony/Component/Security/Http/Firewall/ContextListener.php
	src/Symfony/Component/Security/Http/Firewall/DigestAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/ExceptionListener.php
	src/Symfony/Component/Security/Http/Firewall/ListenerInterface.php
	src/Symfony/Component/Security/Http/Firewall/LogoutListener.php
	src/Symfony/Component/Security/Http/Firewall/RememberMeListener.php
	src/Symfony/Component/Security/Http/Firewall/SwitchUserListener.php
	tests/Symfony/Tests/Component/Security/Http/Firewall/RememberMeListenerTest.php
2011-03-13 19:15:25 +01:00
Ryan Weaver
a495fa3dce [FrameworkBundle] Adding a container:debug console
This command uses a new container pass which dumps the ContainerBuilder into a cache file by serializing it. It's possible that we don't want this to run when kernel.debug = false, but I don't see the harm of generating the file and running the container:debug in, for example, the prod environment seems to make sense.
2011-03-12 14:44:21 -06:00
Kris Wallsmith
6904e0e1e2 [FrameworkBundle] implemented asset packages 2011-03-08 09:22:25 -08:00
Fabien Potencier
5c82db1d60 Merge remote branch 'stof/assets_url_fix'
* stof/assets_url_fix:
  [FrameworkBundle] fixed tests to conform to new xsd
  Fixed assets_base_urls configuration
2011-03-08 15:38:43 +01:00
Ryan Weaver
69ad4e4f77 [FrameworkBundle] Adding an exception to help with bad configuration and filling in some missing tests 2011-03-07 21:10:01 -06:00
Bernhard Schussek
2cf3779a2c Renamed EventArgs classes and adapted remaining code to EventManager
The only missing part is ContainerAwareEventManager::addEventSubscriberService(),
because I'm not sure how to find out the class name of a service in the DIC.

Also, inline documentation of this code needs to be finished once it is accepted.
2011-03-07 19:16:05 +01:00
Bernhard Schussek
a54d3e6fb0 Merge remote branch 'symfony/master' into event-manager 2011-03-07 19:15:57 +01:00
Fabien Potencier
8c423edfef replaced symfony-project.org by symfony.com 2011-03-06 12:40:06 +01:00
Bernhard Schussek
f1393d7b1f Replaced EventDispatcher by Doctrine's EventManager implementation
Doctrine's EventManager implementation has several advantages over the
EventDispatcher implementation of Symfony2. Therefore I suggest that we
use their implementation.

Advantages:

 * Event Listeners are objects, not callbacks. These objects have handler
   methods that have the same name as the event. This helps a lot when
   reading the code and makes the code for adding an event listener shorter.
 * You can create Event Subscribers, which are event listeners with an
   additional getSubscribedEvents() method. The benefit here is that the
   code that registers the subscriber doesn't need to know about its
   implementation.
 * All events are defined in static Events classes, so users of IDEs benefit
   of code completion
 * The communication between the dispatching class of an event and all
   listeners is done through a subclass of EventArgs. This subclass can be
   tailored to the type of event. A constructor, setters and getters can be
   implemented that verify the validity of the data set into the object.
   See examples below.
 * Because each event type corresponds to an EventArgs implementation,
   developers of event listeners can look up the available EventArgs methods
   and benefit of code completion.
 * EventArgs::stopPropagation() is more flexible and (IMO) clearer to use
   than notifyUntil(). Also, it is a concept that is also used in other
   event implementations

Before:

    class EventListener
    {
        public function handle(EventInterface $event, $data) { ... }
    }

    $dispatcher->connect('core.request', array($listener, 'handle'));
    $dispatcher->notify('core.request', new Event(...));

After (with listeners):

    final class Events
    {
        const onCoreRequest = 'onCoreRequest';
    }

    class EventListener
    {
        public function onCoreRequest(RequestEventArgs $eventArgs) { ... }
    }

    $evm->addEventListener(Events::onCoreRequest, $listener);
    $evm->dispatchEvent(Events::onCoreRequest, new RequestEventArgs(...));

After (with subscribers):

    class EventSubscriber
    {
        public function onCoreRequest(RequestEventArgs $eventArgs) { ... }

        public function getSubscribedEvents()
        {
            return Events::onCoreRequest;
        }
    }

    $evm->addEventSubscriber($subscriber);
    $evm->dispatchEvent(Events::onCoreRequest, new RequestEventArgs(...));
2011-03-05 15:30:34 +01:00
Christophe Coevoet
db168cc40d Fixed assets_base_urls configuration 2011-03-02 20:04:12 +01:00
Bernhard Schussek
5705f74bd0 [Form] Refactored FieldFactory and moved new implementation into the DIC. FormTest fails now. 2011-03-02 14:58:19 +01:00
Pascal Borreli
1dca1ea002 [FrameworkBundle] Fixed typo 2011-02-26 20:02:05 +01:00
Fabien Potencier
23e9386a0e changed all extensions to use the default Extension::getAlias() impl 2011-02-20 08:58:37 +01:00
Ryan Weaver
2d94f2d8d0 [FrameworkBundle] Removing the "namespace" key when it's defined in its own weird location in XML. This prevents that key, which we move in this same location, from looking like an invalid option during validation. 2011-02-18 07:43:36 -06:00
Fabien Potencier
6b12c21261 moved DependencyInjection\Configuration to Config\Definition 2011-02-17 16:03:48 +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
14aa95ba21 added the concept of a main DIC extension for bundles
This allows for better conventions and better error messages if you
use the wrong configuration alias in a config file.

This is also the first step for a bigger refactoring of how the configuration
works (see next commits).

 * Bundle::registerExtensions() method has been renamed to Bundle::build()

 * The "main" DIC extension must be renamed to the new convention to be
   automatically registered:

      SensioBlogBundle -> DependencyInjection\SensioBlogExtension

 * The main DIC extension alias must follow the convention:

      sensio_blog for SensioBlogBundle

 * If you have more than one extension for a bundle (which should really
   never be the case), they must be registered manually by overriding the
   build() method

 * If you use YAML or PHP for your configuration, renamed the following
   configuration entry points in your configs:

      app -> framework
      webprofiler -> web_profiler
      doctrine_odm -> doctrine_mongo_db
2011-02-15 22:11:07 +01:00
Victor Berchet
af81bcabf0 [Templating] Refactor the component 2011-02-14 21:11:44 +01:00
Fabien Potencier
5c905beb13 moved common configuration classes to a new Config component 2011-02-13 22:31:50 +01:00
Kris Wallsmith
1292925702 [AsseticBundle] initial entry of assetic integration 2011-02-13 22:21:30 +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
Jeremy Mikola
fc3f56d17c [FrameworkBundle] Small fixes to FrameworkExtension and its configuration
* Remove redundant null/true equivalent array() values for array nodes
 * Profiler matcher should not be deep merged; subsequent configs can simply overwrite its array
 * Per lsmith's suggestion, change "isset(x) && x" to "!empty(x)"
 * Templating engines node should be required, which is necessary to ensure requiresAtLeastOneElement() applies to its prototype children
2011-02-12 21:59:25 +01:00
Jeremy Mikola
b3cb02adf2 [FrameworkBundle/Routing] Add "type" option for main Router resource (and expose this in FrameworkExtension config)
In routing files, import statements allow an optional "type" option to hint the resources' type (e.g. for ambiguous file extensions). This adds the same type option to the FrameworkExtension config, which defines the main routing resource.
2011-02-12 21:57:27 +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
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
Lukas Kahwe Smith
44e6a5d45f added exception_controller config option 2011-02-06 21:42:51 +01:00
Fabien Potencier
86631a9fee [FrameworkBundle] fixed template loaders in configuration 2011-02-06 21:39:30 +01:00
Jeremy Mikola
099b9dee1f [FrameworkBundle] Integrate Configuration\Builder class for config merging and normalization
This fixes some BC problems introduced in f9138d313b. Some top-level can now be simply enabled by providing true/null in PHP/YAML. Additionally, the Configuration\Builder allows options to be unset by providing "false" (helpful for overriding activation in a previous config file). All options supporting these behaviors can be found in the Configuration.php file (look for canBeUnset() and treatNull/TrueLike()).

Major changes:

 * Removed "enabled" option for profiler config. Profiler is now enabled if its config is true, null or a map.
 * Restore original config structure for validation namespaces. In PHP/YAML, namespaces are defined under annotations as an alternative to false (disabled) and true/null (enabled). For XML, annotation remains a boolean attribute for validation and a one or more optional namespace tags may appear within <app:validation />. During config normalization, namespace tags under validation will be moved to annotations to conform to the PHP/YAML structure (this occurs transparently to the user).
 * Restore behavior for router/templating config sections being optional (as shown in changes to session/validation test fixtures). If either top-level section is unset in the configuration, neither feature will be enabled and the user will no longer receive exceptions due to missing a resource option (router) or engines (templating). Resource/engines will still be properly required if the respective feature is enabled.
 * Remove unused router type option from XML config XSD. Type is only relevant for import statements, so this option is likely useless.

Additional small changes:

 * Added isset()'s, since config options may be unset
 * Wrap registerXxxConfiguration() calls in isset() checks
 * Load translation.xml in configLoad(), since it's always required
 * Default cache_warmer value (!kernel.debug) is determined via Configuration class

Things to be fixed:

 * Configuration\Builder doesn't seem to respect isRequired() and requiresAtLeastOneElement() (or I haven't set it properly); this should replace the need for FrameworkExtension to throw exceptions for bad router/templating configs
 * The config nodes for session options don't have the "pdo." prefix, as dots are not allowed in node names. To preserve BC for now, the "pdo." prefix is still allowed (and mandated by XSD) in configuration files. In the future, we may just want to do away with the "pdo." prefix.
 * Translator has an "enabled" option. If there's no use case for setting "fallback" independently (when "enabled" is false), perhaps "enabled" should be removed entirely and translator should function like profiler currently does.
 * Profiler matcher merging might need to be adjusted so multiple configs simply overwrite matcher instead of merging its array keys.
2011-02-06 20:50:12 +01:00
Fabien Potencier
523e652d9d [FrameworkBundle] fixed the way profiler configuration works 2011-02-05 22:19:14 +01:00
Jeremy Mikola
f9138d313b [FrameworkBundle] Implemented single-pass config loading with intelligent option merging for FrameworkExtension
Restructured config format to make processing more straightforward. Important changes that might break existing configs:

 * Added "enabled" option for translator (improves multi-format compat)
 * Removed hash variation of validation annotations option (only boolean)
 * Moved namespace option directly under validation (improves multi-format compat)

The new merge process depends on an internal array of all supported options and their default values, which is used for both validating the config schema and inferring how to merge options (as an added benefit, it helps make the extension self-documenting). Exceptions will now be thrown for merge errors resulting from unrecognized options or invalid types. Since incoming configurations are all merged atop the defaults, many isset() checks were removed. As a rule of thumb, we probably only want to ignore null values when an option would be used to set a parameter.

Also:

 * Added missing attributes to symfony-1.0.xsd
   * profiler: added only-exceptions attribute
   * session: fix types and add pdo attributes
 * Create FrameworkExtension tests with PHP/XML/YAML fixtures
 * Use "%" syntax instead of calling getParameter() within FrameworkExtension
 * Normalize config keys and arrays with helper methods for PHP/XML/YAML compatibility

Earlier changes:

 * Remove nonexistent "DependencyInjection/Resources/" path from XmlFileLoaders
 * Remove hasDefinition() checks, as register methods should only execute once
 * Remove first-run logic from registerTranslatorConfiguration(), as it is only run once
 * Removed apparently obsolete clearTags() calls on definitions for non-enabled features
2011-02-05 20:01:15 +01:00
Kris Wallsmith
ea536b0d9e [FrameworkBundle] added cache warmer priority 2011-02-04 00:59:44 +01:00
Bernhard Schussek
fdbc064f06 [Form] Removed automatic distribution of the locale in the Form component. This leads to more problems than it solves. 2011-02-01 15:27:12 +01:00
Fabien Potencier
b7a0f71b87 [FrameworkBundle] added more file to the class cache when using the PHP templating engine 2011-01-30 14:37:22 +01:00
Fabien Potencier
025e142dd4 removed parameter converters as decided during IRC meeting (supported is still provided by FrameworkExtraBundle)
You must remove the configuration element if you had enabled the feature:

         <app:param-converter />
2011-01-29 15:04:28 +01:00
Fabien Potencier
2509c9da4b added an autoloader that uses a class map
A class in Symfony2 can be loaded by four different mechanisms:

 * bootstrap.php: This file contains classes that are always required and
   needed very early in the request handling;

 * classes.php: This file contains classes that are always required and
   managed by extensions via addClassesToCompile();

 * MapFileClassLoader: This autoloader uses a map of class/file to load
   classes (classes are managed by extensions via addClassesToAutoloadMap(),
   and should contain often used classes);

 * UniversalAutolaoder: This autoloader loads all other classes (it's the
   slowest one).
2011-01-27 16:30:58 +01:00
Fabien Potencier
249ed63373 [FrameworkBundle] made a small change 2011-01-27 14:14:15 +01:00
Fabien Potencier
e645090423 moved security related things to a new SecurityBundle (the Security component is left unchanged) 2011-01-26 19:10:54 +01:00
Johannes Schmitt
57ae50e894 [Security] many improvements, and fixes 2011-01-26 16:38:54 +01:00
Fabien Potencier
935c82e1f9 [FrameworkBundle] simplified some code 2011-01-25 16:42:50 +01:00
Fabien Potencier
0e66e388ec added two interfaces: EventInterface and EventDispatcherInterface 2011-01-25 14:23:32 +01:00
Eriksen Costa
b38519bb23 [FrameworkBundle] fixed call to \Locale::getDefault() 2011-01-25 11:10:25 +01:00
Fabien Potencier
edb11ad5cb [FrameworkBundle] added a cache warmer for the router
To enable this cache warmer, you must add a "cache-warner" option
to app:router:

        <app:config>
            <app:router cache-warmer="true" />
2011-01-24 18:13:43 +01:00
Fabien Potencier
206b49a22f [FrameworkBundle] added a cache warmer to pre-compute template paths
To enable this cache warmer, you must add a "cache-warner" option
to app:templating:

        <app:templating cache-warmer="true">
2011-01-24 18:13:39 +01:00
Fabien Potencier
d0b4bfc8f6 added a cache warmer sub-framework
Cache warmer will come in the next commits.

To warm up the cache on a production server, you can use
the cache:warmup command:

./app/console_prod cache:warmup
2011-01-24 18:08:51 +01:00
Fabien Potencier
49793c22d4 fixed event dispatcher 2011-01-24 16:46:04 +01:00
Fabien Potencier
1c11d81611 made all event listeners lazy loaded
* The register() method on all listeners has been removed
 * Instead, the information is now put directly in the DIC tag

For instance, a listener on core.request had this method:

   public function register(EventDispatcher $dispatcher, $priority = 0)
   {
       $dispatcher->connect('core.response', array($this, 'filter'), $priority);
   }

And this tag in the DIC configuration:

  <tag name="kernel.listener" />

Now, it only has the following configuration:

  <tag name="kernel.listener" event="core.response" method="filter" priority="0" />

The event and method attributes are now mandatory.
2011-01-23 18:07:05 +01:00
Fabien Potencier
9310eea57a optimized templating layer
You must now explicitly register the templating engine you want to use:

  <app:templating>
      <app:engine id="twig" />
  </app:templating>

  app.templating:
      engines: ['twig']

Symfony2 comes with two such engines: 'twig', and 'php'.
2011-01-23 15:43:08 +01:00
Fabien Potencier
5e625d1f52 [FrameworkBundle] simplified code 2011-01-23 14:38:09 +01:00
Fabien Potencier
ad0e94468d [FrameworkBundle] removed obsolete option 2011-01-23 14:17:15 +01:00
Fabien Potencier
86b357d70b [FrameworkBundle] fixed ESI configuration 2011-01-23 08:43:29 +01:00
Fabien Potencier
a8685614e0 [FrameworkBundle] fixed session auto-start option 2011-01-23 08:36:19 +01:00
Fabien Potencier
eb8b3d9c21 [FrameworkBundle] added support for both csrf-protection and csrf_protection 2011-01-22 20:12:45 +01:00
Fabien Potencier
69f0ec3b1a added a method to normalize config entries coming from YAML and XML 2011-01-21 17:44:30 +01:00
Bulat Shakirzyanov
acb19bc43f [FrameworkBundle] added 'document_root' option for File objects 2011-01-21 17:13:05 +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
Johannes M. Schmitt
507da2a1ab some performance tweaks
This adds lazy loading for firewall configurations. This is useful when you have multiple firewalls, only the firewalls which are actually needed to process the Request are initialized. So, your event dispatcher is not as costly to initialize anymore.

It also implements re-using of RequestMatchers if all matching rules are the same, and exposes the remaining rules which are already implemented by the request matcher (host, ip, methods) in the access-control section
2011-01-21 11:57:43 +01:00
Fabien Potencier
6d1e91a1fa refactored bundle management
Before I explain the changes, let's talk about the current state.

Before this patch, the registerBundleDirs() method returned an ordered (for
resource overloading) list of namespace prefixes and the path to their
location. Here are some problems with this approach:

 * The paths set by this method and the paths configured for the autoloader
   can be disconnected (leading to unexpected behaviors);

 * A bundle outside these paths worked, but unexpected behavior can occur;

 * Choosing a bundle namespace was limited to the registered namespace
   prefixes, and their number should stay low enough (for performance reasons)
   -- moreover the current Bundle\ and Application\ top namespaces does not
   respect the standard rules for namespaces (first segment should be the
   vendor name);

 * Developers must understand the concept of "namespace prefixes" to
   understand the overloading mechanism, which is one more thing to learn,
   which is Symfony specific;

 * Each time you want to get a resource that can be overloaded (a template for
   instance), Symfony would have tried all namespace prefixes one after the
   other until if finds a matching file. But that can be computed in advance
   to reduce the overhead.

Another topic which was not really well addressed is how you can reference a
file/resource from a bundle (and take into account the possibility of
overloading). For instance, in the routing, you can import a file from a
bundle like this:

  <import resource="FrameworkBundle/Resources/config/internal.xml" />

Again, this works only because we have a limited number of possible namespace
prefixes.

This patch addresses these problems and some more.

First, the registerBundleDirs() method has been removed. It means that you are
now free to use any namespace for your bundles. No need to have specific
prefixes anymore. You are also free to store them anywhere, in as many
directories as you want. You just need to be sure that they are autoloaded
correctly.

The bundle "name" is now always the short name of the bundle class (like
FrameworkBundle or SensioCasBundle). As the best practice is to prefix the
bundle name with the vendor name, it's up to the vendor to ensure that each
bundle name is unique. I insist that a bundle name must be unique. This was
the opposite before as two bundles with the same name was how Symfony2 found
inheritance.

A new getParent() method has been added to BundleInterface. It returns the
bundle name that the bundle overrides (this is optional of course). That way,
there is no ordering problem anymore as the inheritance tree is explicitely
defined by the bundle themselves.

So, with this system, we can easily have an inheritance tree like the
following:

FooBundle < MyFooBundle < MyCustomFooBundle

MyCustomFooBundle returns MyFooBundle for the getParent() method, and
MyFooBundle returns FooBundle.

If two bundles override the same bundle, an exception is thrown.

Based on the bundle name, you can now reference any resource with this
notation:

    @FooBundle/Resources/config/routing.xml
    @FooBundle/Controller/FooController.php

This notation is the input of the Kernel::locateResource() method, which
returns the location of the file (and of course it takes into account
overloading).

So, in the routing, you can now use the following:

    <import resource="@FrameworkBundle/Resources/config/internal.xml" />

The template loading mechanism also use this method under the hood.

As a bonus, all the code that converts from internal notations to file names
(controller names: ControllerNameParser, template names: TemplateNameParser,
resource paths, ...) is now contained in several well-defined classes. The
same goes for the code that look for templates (TemplateLocator), routing
files (FileLocator), ...

As a side note, it is really easy to also support multiple-inheritance for a
bundle (for instance if a bundle returns an array of bundle names it extends).
However, this is not implemented in this patch as I'm not sure we want to
support that.

How to upgrade:

 * Each bundle must now implement two new mandatory methods: getPath() and
   getNamespace(), and optionally the getParent() method if the bundle extends
   another one. Here is a common implementation for these methods:

    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return 'MyFrameworkBundle';
    }

    /**
     * {@inheritdoc}
     */
    public function getNamespace()
    {
        return __NAMESPACE__;
    }

    /**
     * {@inheritdoc}
     */
    public function getPath()
    {
        return strtr(__DIR__, '\\', '/');
    }

 * The registerBundleDirs() can be removed from your Kernel class;

 * If your code relies on getBundleDirs() or the kernel.bundle_dirs parameter,
   it should be upgraded to use the new interface (see Doctrine commands for
   many example of such a change);

 * When referencing a bundle, you must now always use its name (no more \ or /
   in bundle names) -- this transition was already done for most things
   before, and now applies to the routing as well;

 * Imports in routing files must be changed:
    Before: <import resource="Sensio/CasBundle/Resources/config/internal.xml" />
    After:  <import resource="@SensioCasBundle/Resources/config/internal.xml" />
2011-01-20 18:42:47 +01:00
Victor Berchet
b75840c6fc DI Extension: use the base class from the HttpKernel Component 2011-01-19 22:08:41 +01:00
Bernhard Schussek
8f8f53d631 [Form][FrameworkBundle] Implemented FormFactory and added it to the DI container 2011-01-19 16:25:50 +01:00
Christophe Coevoet
f5f7021669 Fixed the conenction alias used by acl 2011-01-19 11:41:14 +01:00
Lukas Kahwe Smith
d030882c20 ignore firewalls that are set to false (f.e. http-basic: false), removed two unused variables 2011-01-19 07:33:04 +01:00
Dominique Bongiraud
64fb94c725 normalized license messages in PHP files 2011-01-18 08:07:46 +01:00
Fabien Potencier
5b3e5e454b reverted a previous commit where translators were made optional 2011-01-17 22:58:55 +01:00
Fabien Potencier
15575bccc4 made order of template engine and data collector more predictable 2011-01-17 22:27:13 +01:00
Fabien Potencier
f4cf31a275 made some minor tweaks 2011-01-17 17:46:27 +01:00
Fabien Potencier
ea279278ae disable session if not explicitely enabled 2011-01-17 17:44:36 +01:00
Fabien Potencier
d406ca0d6b [FrameworkBundle] made ESI optional (should now be enabled explicitely) 2011-01-17 16:21:46 +01:00
Fabien Potencier
dba8c67941 [FrameworkBundle] disable translator if not explicitely enabled 2011-01-17 16:05:24 +01:00
Fabien Potencier
e0050dfc8f [FrameworkBundle] added a compiler pass for translation loaders 2011-01-17 11:29:38 +01:00
Fabien Potencier
4c2537f1c3 made data collectors private 2011-01-17 11:17:48 +01:00
Fabien Potencier
d06f805d95 added a priority for data collectors 2011-01-17 11:09:31 +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
a365ab2884 changed the template name format
Before

bundle:section:template.format.renderer

After

bundle:section:template.renderer.format

Notice that both the renderer and the format are mandatory.
2011-01-15 12:33:27 +01:00
Fabien Potencier
055b6e4d6e made a big refactoring of the templating sub-framework
* better separation of concerns
 * made TwigBundle independant of the PHP Engine from FrameworkBundle (WIP)
 * removed one layer of abstraction in the Templating component (renderers)
 * made it easier to create a new Engine for any templating library
 * made engines lazy-loaded (PHP engine for instance is not started if you only use Twig)
 * reduces memory footprint (if you only use one engine)
 * reduces size of compiled classes.php cache file
2011-01-15 07:43:05 +01:00
Kousuke Ebihara
d347ade94c fixed typo (s/algoritm/algorithm/) 2011-01-14 14:40:28 +01:00
Christophe Coevoet
5506e9d1a3 Fixed loading of validation files for bundles in a vendor namespace 2011-01-13 08:06:10 +01:00
Victor Berchet
87ca9036f7 [FrameworkBundle] Type hints & comments 2011-01-11 20:31:34 +01:00
Johannes Schmitt
3785a99b94 adds visibility to aliases 2011-01-07 15:58:48 +01:00
Lukas Kahwe Smith
f2ac2a4c8a changed templating to use setter injection for renderers 2011-01-07 15:08:35 +01:00
Johannes M. Schmitt
314defa8b4 added generic encoder factory 2011-01-06 19:20:56 +01:00
Fabien Potencier
d21fb757b6 [FrameworkBundle] removed setEngine call as the Engine already does it automatically (and it also avoids a circular reference) 2011-01-06 14:21:50 +01:00
Fabien Potencier
45edfe6b44 [FrameworkBundle] removed obsolete code 2011-01-06 10:47:51 +01:00
Johannes M. Schmitt
da5475ec42 service visibility changes 2011-01-05 16:01:48 +01:00
Johannes M. Schmitt
c5ef113b18 DI container optimization 2011-01-05 15:41:11 +01:00
Jeremy Mikola
3ab82cbd53 [FrameworkBundle][Security] Create DIC aliases for security providers that are explicit services
The SecurityFactories expect security services to have a consistent naming convention, which was not the case for providers defined as `{ id: another.service }`.  These providers will now be aliased as "security.authentication.provider.[key]" and can be accessed in the same manner as other providers.
2011-01-05 11:33:14 +01:00
Johannes Schmitt
b4288459cc added ACL system to the Security Component 2010-12-31 09:25:53 +01:00
Fabien Pennequin
b26d44b4a3 [FrameworkBundle] Fixed error with priority for param converter services 2010-12-30 16:55:45 +01:00
Fabien Potencier
2985cfa5a9 [FrameworkBundle] converted the special Profiler class to a DIC compiler class 2010-12-23 12:58:34 +01:00
Fabien Potencier
385ad72d64 [FrameworkBundle] converted the special routing resolver to a DIC compiler pass 2010-12-23 12:55:58 +01:00
Henrik Bjørnskov
3516a043bc [FrameworkBundle] Moved the adding of Converter tags to a CompilerPass by suggestion of schmittjoh. 2010-12-23 11:08:19 +01:00
Fabien Potencier
2ee4252a1f [FrameworkBundle] made array session storage the default in test mode 2010-12-23 08:34:16 +01:00
Fabien Potencier
1af21221ae refactored and fix previous commit 2010-12-22 15:33:38 +01:00
Henrik Bjørnskov
baf07a13ac added converter manager and converter interface incl. tests 2010-12-22 14:38:38 +01:00
Johannes Schmitt
27f540463a added generic encoder factory 2010-12-21 16:23:46 +01:00
Johannes M. Schmitt
03d25cc7fa refactored creation of access decision manager to make use of newly added compiler passes 2010-12-21 08:52:48 +01:00
Marc Weistroff
d87c3c581c [FrameworkBundle] Added config keys for PdoSessionStorage. 2010-12-20 12:41:20 +01:00
Johannes Schmitt
df6ffbbf07 remove user provider name 2010-12-18 08:10:53 +01:00
Johannes Schmitt
3c692bd160 fixed user refreshing after unserialization 2010-12-15 17:38:30 +01:00
Fabien Potencier
c9f08c0a68 changed all XML attribute names to take - instead of _ (everything should be consistent now) 2010-12-14 16:30:20 +01:00
Johannes Schmitt
abe8047262 added authentication trust resolver 2010-12-12 10:49:43 +01:00
Jeremy Mikola
2ff474fc3a [HttpKernel][FrameworkBundle] Rename BaseHttpKernel to HttpKernel
The original HttpKernel class can be deleted, as it's request-stashing will be moved to the Kernel class.  FrameworkBundle's list of compiled classes must also be modified to respect this change.
2010-12-09 09:38:13 +01:00
Johannes M. Schmitt
d94420f3a5 logout refactoring 2010-12-08 08:26:58 +01:00
Fabien Potencier
38d11aaf1a [DependencyInjection] fixed template support in security extension 2010-12-08 07:08:16 +01:00
Fabien Potencier
a17f17139b [FrameworkBundle] fixed typo 2010-12-02 11:04:57 +01:00
Fabien Potencier
e6c6068afc [FrameworkBundle] fixed security templates when the template name has parameters 2010-12-02 11:04:31 +01:00
Fabien Potencier
db0ddb6e30 [FrameworkBundle] added a new template tag to allow security authentication listeners to provide templates 2010-12-02 10:56:25 +01:00
Fabien Potencier
df4306dc85 [FrameworkBundle] added missing phpdoc 2010-12-02 10:19:59 +01:00
Fabien Potencier
978a14c568 [FrameworkBundle] made firewall authentication listeners configurable 2010-12-02 10:09:54 +01:00
Fabien Potencier
d10bc3e412 [FrameworkBundle] added some more files in the class cache 2010-11-27 15:14:58 +01:00
Henrik Bjørnskov
91c5c910eb [FrameworkBundle] Added options auto-start and auto_start to the session configuration to allow session to be autostarted. 2010-11-27 11:55:19 +01:00
Fabien Potencier
44b8ee3791 added more classes in the class cache 2010-11-26 17:44:17 +01:00
Fabien Potencier
6ab277ee41 added a LazyLoader for the routing 2010-11-26 17:44:17 +01:00
Fabien Potencier
8359419913 fixed class cache 2010-11-26 17:44:17 +01:00
Fabien Potencier
5c5e8f14c1 [FrameworkBundle] fixed possible PHP warning 2010-11-25 13:57:47 +01:00
Fabien Potencier
c094de148f [FrameworkBundle] the app:escaping config can be empty 2010-11-23 18:49:34 +01:00
Fabien Potencier
ad68092291 removed the OutputEscaper component, added escape mechanism in the Templating Engine class 2010-11-23 12:59:21 +01:00
Benjamin Eberlei
5aeb358721 [Validator] Made the namespace prefix for annotations configurable
Modified the framework bundle to use validation => Symfony\Component\Validator\Validator defaults.
Enhanced Framework Extension validator configuration to allow to extend this configuration with
user-specified annotations, for example:

    validation:
        enabled: true
        annotations:
            namespaces:
                myprojectvalidator: MyProject\Validator\

to register @myprojectvalidator:Validator(...)
2010-11-16 07:28:02 +01:00
Fabien Potencier
98f3ac65f4 fixed configuration bugs 2010-11-12 20:11:22 +01:00
Fabien Potencier
8b9e979118 [FrameworkBundle] changed configuration to always include the session service 2010-11-12 19:35:21 +01:00
Fabien Potencier
51a3d0ba6a refactored session configuration
The configuration names have been changed to avoid confusion (user was
ambiguous)

    Before:
          <app:user default_locale="fr">
              <app:session name="SYMFONY" type="Native" lifetime="3600" />
          </app:user>

    After:
          <app:session default_locale="fr" name="SYMFONY" storage_id="native" lifetime="3600" />
2010-11-10 10:47:03 +01:00
ornicar
6f034d2c80 [FrameworkBundle] Make the use_forward option of FormAuthenticationListener configurable 2010-11-10 07:53:03 +01:00
Fabien Potencier
a4fbf74593 added a user provider for Doctrine MongoDB 2010-10-28 15:04:29 +02:00
Fabien Potencier
1d5ca4910d [FrameworkBundle] refactored ide setting configuration 2010-10-25 18:59:12 +02:00
ever.zet
d8661684c4 MacVim support 2010-10-25 18:55:43 +02:00
Fabien Potencier
b6552dd037 removed old code 2010-10-22 12:36:51 +02:00
Fabien Potencier
acfd09eeb3 [FrameworkBundle] generate a random password if none is provided in the configuration 2010-10-21 10:58:00 +02:00
Fabien Potencier
dd4f87b8c2 made form login configurable 2010-10-20 11:42:19 +02:00
Fabien Potencier
4b321141f9 [FrameworkBundle] added a way to configure the switch-user behavior 2010-10-20 10:59:13 +02:00
Fabien Potencier
71228b5f29 [FrameworkBundle] added a way to configure the logout paths 2010-10-20 10:48:05 +02:00
Fabien Potencier
cb8161da7b [FrameworkBundle] removed support for none as an equivalent to false/null 2010-10-20 09:49:00 +02:00
Fabien Potencier
f216f313e8 added the Security Component and its integration into the MVC framework
Happy birthday symfony!
2010-10-19 13:33:17 +02:00
Kris Wallsmith
f79e23ffb5 Removed all those spaces after @author that were bothering me so… 2010-10-18 16:55:41 +02:00
Fabien Potencier
a46ca47c03 [FrameworkBundle] fixed inclusion of the test client 2010-10-15 07:34:29 +02:00
Jeremy Mikola
a6caa3d552 [FrameworkBundle] Replaced non-existent definition key 2010-09-30 07:18:10 +02:00
Fabien Potencier
707205410e added an IdentityTranslator to make it possible to always relies on the translator service, even if none is configured 2010-09-27 16:53:44 +02:00
Fabien Potencier
d3aca1c04a [FrameworkBundle] added support for the Translation component 2010-09-27 09:46:15 +02:00
Fabien Potencier
866c306dc8 removed the message interpolator system in the Validator component (i18n management should be done globally, not in a specific component) 2010-09-24 16:41:28 +02:00
Fabien Potencier
2862c6cce4 refactored configuration names
How to upgrade (have a look at the skeleton):

  * the "web:config" namespace is now "app:config"

      -    <web:config csrf-secret="xxxxxxxxxx" charset="UTF-8" error-handler="null">
      -        <web:router resource="%kernel.root_dir%/config/routing.xml" />
      -        <web:validation enabled="true" annotations="true" />
      -    </web:config>
      +    <app:config csrf-secret="xxxxxxxxxx" charset="UTF-8" error-handler="null">
      +        <app:router resource="%kernel.root_dir%/config/routing.xml" />
      +        <app:validation enabled="true" annotations="true" />
      +    </app:config>

  * the "web:templating" namespace is now a sub-namespace of "app:config"

      -    <web:templating
      -        escaping="htmlspecialchars"
      -    />
      +    <app:config>
      +        <app:templating escaping="htmlspecialchars" />
      +    </app:config>

  * the "web:user" namespace is now a sub-namespace of "app:config"

      -    <web:user default-locale="fr">
      -        <web:session name="SYMFONY" type="Native" lifetime="3600" />
      -    </web:user>
      +    <app:config>
      +        <app:user default-locale="fr">
      +            <app:session name="SYMFONY" type="Native" lifetime="3600" />
      +        </app:user>
      +    </app:config>

  * the "web:test" namespace is now a sub-namespace of "app:config"

      -    <web:test />
      +    <app:config error_handler="false">
      +        <app:test />
      +    </app:config>

  * the "swift:mailer" namespace is now "swiftmailer:config"

      -    <swift:mailer
      +    <swiftmailer:config
               transport="smtp"
               encryption="ssl"
               auth_mode="login"

  * the "zend:logger" namespace is now a sub-namespace of "zend:config"

      -    <zend:logger
      -        priority="info"
      -        path="%kernel.logs_dir%/%kernel.environment%.log"
      -    />
      +    <zend:config>
      +        <zend:logger priority="info" path="%kernel.logs_dir%/%kernel.environment%.log" />
      +    </zend:config>
2010-09-20 21:08:18 +02:00
Fabien Potencier
d657adbfa2 removed Symfony\Framework
Things have been moved to Symfony\Component\HttpKernel
and Symfony\Bundle\FrameworkBundle

The kernel configuration namespace was removed and merged
with the main web configuration namespace (kernel:config => web:config,
kernel:test => web:test, and kernel:session => web:session):

Before:
<kernel:config charset="UTF-8" error_handler="null" />

<web:config csrf-secret="xxxxxxxxxx">
    <web:router resource="%kernel.root_dir%/config/routing.xml" />
    <web:validation enabled="true" annotations="true" />
</web:config>

After:
<web:config csrf-secret="xxxxxxxxxx" charset="UTF-8" error-handler="null">
    <web:router resource="%kernel.root_dir%/config/routing.xml" />
    <web:validation enabled="true" annotations="true" />
</web:config>

Renamed classes:

Symfony\{Framework => Bundle\FrameworkBundle}\Cache\Cache
Symfony\{Framework => Bundle\FrameworkBundle}\Client
Symfony\{Framework => Bundle\FrameworkBundle}\Debug\EventDispatcher
Symfony\{Framework => Bundle\FrameworkBundle}\Debug\EventDispatcherTraceableInterface
Symfony\{Framework => Bundle\FrameworkBundle}\EventDispatcher
Symfony\{Framework => Component\HttpFoundation}\UniversalClassLoader
Symfony\{Framework => Component\HttpKernel}\Bundle\Bundle
Symfony\{Framework => Component\HttpKernel}\Bundle\BundleInterface
Symfony\{Framework => Component\HttpKernel}\ClassCollectionLoader
Symfony\{Framework => Component\HttpKernel}\Debug\ErrorException
Symfony\{Framework => Component\HttpKernel}\Debug\ErrorHandler
Symfony\{Bundle\FrameworkBundle => Component\HttpKernel}\Debug\ExceptionListener
Symfony\{Framework => Component\HttpKernel}\Kernel
2010-09-17 12:58:24 +02:00
Fabien Potencier
226277fd0e added a way to activate CSRF protection from the configuration 2010-09-10 14:32:33 +02:00
Fabien Potencier
0b378d1b3e added a way to conditionnaly enable the profiler based on the request 2010-09-02 13:54:32 +02:00
Fabien Potencier
60ea1eef69 added a configuraiton to allow the profiler to be enabled only when an exception occurs 2010-08-31 22:22:31 +02:00
Fabien Potencier
72db4c7342 refactored Profiler and DataCollector classes (the WDT has been removed and will be re-added in the upcoming WebProfilerBundle) 2010-08-29 12:17:06 +02:00
Fabien Potencier
9c07e46d91 [FrameworkBundle] added ControllerInterface
A Controller must now implements ControllerInterface.

The BaseController can be used as the base class for Controllers.
The Controller class adds some proxy methods and an array access to the Container.
2010-08-24 08:47:41 +02:00
Fabien Potencier
bf82cf42dd renamed Symfony\Components to Symfony\Component 2010-08-20 23:09:55 +02:00
Fabien Potencier
d5a61e3bc5 added a way to provide asset base URLs in configuration 2010-08-19 16:17:20 +02:00
Fabien Potencier
66a81b362c [FrameworkBundle] made a small refactoring 2010-08-19 12:47:21 +02:00
Fabien Potencier
e03642dfa6 made ClassCollectionLoader smarter 2010-08-19 12:47:17 +02:00
Fabien Potencier
7b65956343 made classes compilation more configurable 2010-08-10 22:55:24 +02:00
Fabien Potencier
53c4403992 [FrameworkBundle] removed WebExtension constructor 2010-08-10 15:57:04 +02:00
Fabien Potencier
4e2df31d64 [FrameworkBundle] moved templating configuration from FrameworkBundle to FrameworkExtension 2010-08-10 15:38:01 +02:00
Fabien Potencier
355ed9b5f9 renamed annotation to tag in the DIC 2010-08-05 07:34:53 +02:00
Fabien Potencier
ee2ff39eaf removed @package and @subpackage annotations 2010-08-01 23:06:28 +02:00
Fabien Potencier
1a9f2ca755 updated PHPDoc as the API tool knows about the current use statements 2010-07-27 15:33:28 +02:00
Fabien Potencier
4e3e86c4a7 refactored routing management (it's now possible to disable the default routing)
* removed the Kernel::registerRoutes() method
 * added a router entry in <web:config> (replaces the registerRoutes() method)
       <web:config>
           <web:router resource="%kernel.root_dir%/config/routing.xml" />
       </web:config>
 * refactored routing configuration in its own routing.xml file (leverages the new routing component API),
   which is loaded only if <web:router> is defined in the configuration
2010-07-20 13:11:50 +02:00
Fabien Potencier
2a051b5039 moved DI extensions classes to their own sub-namespace 2010-07-16 11:12:49 +02:00
Fabien Potencier
7796eb213c merged BuilderConfiguration and Builder classes into a new ContainerBuilder class 2010-07-15 15:20:41 +02:00
Fabien Potencier
f26abdfadd fixed phpdoc for DI extensions 2010-07-15 10:27:49 +02:00
Fabien Potencier
0fbb1b916b cleaned up the DI extension loading mechanism 2010-07-09 16:28:06 +02:00
Fabien Potencier
256a71298c fixed phpdoc 2010-07-09 10:28:08 +02:00
Fabien Potencier
15d439809c renamed Symfony\Bundle\FoundationBundle to Symfony\Bundle\FrameworkBundle 2010-07-09 10:25:52 +02:00