Commit Graph

548 Commits

Author SHA1 Message Date
Dariusz Górecki
3cfaade8f7 [CS] Fix usage of assertCount
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
2012-01-18 14:42:47 +01:00
Fabien Potencier
2cb6260d07 changed the default XLIFF extension to .xlf instead of .xliff (this is BC and .xliff files are still valid) 2011-12-07 22:39:27 +01:00
Fabien Potencier
ac5b8a4c37 merged 2.0 2011-10-26 14:29:19 +02:00
Jeremy Mikola
64e783367f [FrameworkBundle] Fix typo in FrameworkExtensionTest 2011-10-24 14:17:43 -04:00
Fabien Potencier
74bc699b27 moved management of the locale from the Session class to the Request class
The locale management does not require sessions anymore.

In the Symfony2 spirit, the locale should be part of your URLs. If this is the case
(via the special _locale request attribute), Symfony will store it in the request
(getLocale()).

This feature is now also configurable/replaceable at will as everything is now managed
by the new LocaleListener event listener.

How to upgrade:

The default locale configuration has been moved from session to the main configuration:

Before:

framework:
    session:
        default_locale: en

After:

framework:
    default_locale: en

Whenever you want to get the current locale, call getLocale() on the request (was on the
session before).
2011-10-08 18:34:49 +02:00
Jordan Alliot
8b240d4c22 Implementation of kernel.event_subscriber tag for services. 2011-09-29 17:44:16 +02:00
Fabien Potencier
885bb33791 merged 2.0 2011-09-28 16:08:31 +02:00
Jeremy Mikola
369f181005 [FrameworkBundle] Add request scope to assets helper only if needed
Builds upon aead4a9836180cabae4d47fe27c634dcd79ac8f2, which prematurely removed request scoping from the assets templating helper in all cases. The helper need only be request-scoped if one or more request-scoped packages (e.g. PathPackages) are injected into it. This change makes it possible to utilize the assets helper outside of a request (e.g. during a console script).

To ensure that the assets helper is not assigned a request scope, all asset base URL's must be defined for all packages (default and any named) and both protocols: HTTP and SSL. The included test config fixtures concisely accomplish this by specifying a single HTTPS URL as the base URL for our default and named package, since FrameworkExtension's Configuration conveniently registers this URL for both protocols.
2011-09-26 19:54:12 -04:00
Fabien Potencier
80abf56e92 [FrameworkBundle] fixed a unit test 2011-09-19 08:55:18 +02:00
Fabien Potencier
d2e9f14597 merged branch schmittjoh/routerFix (PR #1720)
Commits
-------

9bcce9f fix tests
fc4787a fix non-extensible router

Discussion
----------

Router fix

Right now, the router is hard to overwrite (you need always a compiler pass). This commit fixes this.

---------------------------------------------------------------------------

by fabpot at 2011/07/18 01:15:36 -0700

Why do you need a complier pass to override the router?

---------------------------------------------------------------------------

by schmittjoh at 2011/07/18 01:47:47 -0700

How would you suggest to overwrite it?

Basically, I want to do something like this:

```yml
services:
    router:
         parent: router.default
         class: MyClass
         calls:
             - [moreDeps, []]
```

---------------------------------------------------------------------------

by Seldaek at 2011/07/18 05:07:19 -0700

Then maybe we should somehow support redefining services with the same name while keeping the old one as parent, otherwise we need this foo.default for every service out there?

---------------------------------------------------------------------------

by fabpot at 2011/07/18 06:30:34 -0700

as @Seldeak said, why do that for the router and not all services?

---------------------------------------------------------------------------

by schmittjoh at 2011/07/18 06:38:39 -0700

I have designed the SecurityBundle this way where extension is encouraged.

---------------------------------------------------------------------------

by schmittjoh at 2011/07/18 11:15:57 -0700

I should add that this is mainly a problem for services where you still want to use the semantic configuration that is provided by the bundle. For services which are not configured by the extension, this is not so much of an issue.

Anyway, if you don't want to merge it, just close the PR. I have no problem with using a compiler pass.

---------------------------------------------------------------------------

by fabpot at 2011/07/18 11:55:11 -0700

We already have such a case with translator and translator.real. I will review the existing services to see where it makes sense to implement the same strategy.

---------------------------------------------------------------------------

by Seldaek at 2011/07/18 12:20:55 -0700

I guess you'd do it anyway, but we should pick a winner between .real and .default

---------------------------------------------------------------------------

by lsmith77 at 2011/07/18 12:26:52 -0700

I would prefer ".default" as ".real" always confused me.
2011-07-19 12:06:28 +02:00
Fabien Potencier
b4b8f35da2 renamed translator.real to translator.default 2011-07-19 12:05:51 +02:00
Johannes Schmitt
9bcce9fcdb fix tests 2011-07-18 10:10:04 +02:00
Johannes Schmitt
af6d4e4c8e changed test 2011-07-15 10:29:16 +02:00
Victor Berchet
df34e0eb29 [FrameworkBundle] Fix for setting a custom file link format (fixes #1652) 2011-07-12 19:01:49 +02:00
Fabien Potencier
f57e1d3e10 fixed CS 2011-06-23 14:07:53 +02:00
Victor Berchet
5d46e63089 [Form] Add the FormHelper configuration 2011-06-22 10:27:21 +02:00
Fabien Potencier
1aabc5da64 fixed CS 2011-06-08 12:16:48 +02:00
Fabien Potencier
96fc666454 simplified cache warmers
Here are the new simplified rules:

 * Required cache warmers are *always* executed when the Kernel boots for the first time;
 * Optional cache warmers are *only* executed from the CLI via cache:warmup

These new rules means that all the configuration settings for the cache
warmers have been removed. So, if you want the best performance, remember to
warmup the cache when going to production.

This also fixed quite a few bugs.
2011-06-07 11:42:27 +02:00
Kris Wallsmith
d9f5c99fab [FrameworkBundle] updated for templating changes, added http/ssl logic 2011-05-31 06:46:30 -07:00
Fabien Potencier
65200aa86a added missing license headers 2011-05-31 10:57:06 +02:00
Christophe Coevoet
15c5d61af8 Use an alias of translator.real instead of copying the definition
Copying the definition leads to 2 different services which the same
definition but different instances.
2011-05-29 18:56:45 +02:00
Joseph Bielawski
46e58206a3 [Tests] Skip test if Doctrine Common is not available. 2011-05-24 14:16:10 -07:00
Johannes Schmitt
9c0db88851 updated to latest changes in Doctrine 2011-05-24 13:29:44 +02:00
Johannes Schmitt
6c0b0449a6 Merge remote branch 'origin/master' into annotations
Conflicts:
	UPDATE.md
	src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
	src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
2011-05-19 22:49:59 +02:00
Fabien Potencier
a15e846568 added a way to disable forms, and force validation to be enabled when forms are enabled (closes #840) 2011-05-18 15:45:34 +02:00
Johannes Schmitt
2d8afd8dd6 Merge remote branch 'origin/master' into annotations
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
	src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml
	src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
2011-05-14 12:51:05 +02:00
Fabien Potencier
f7aea2a830 [FrameworkBundle] re-introduced parameters in the DIC for better overridability 2011-05-13 14:34:17 +02:00
Johannes Schmitt
d29c7811aa [FrameworkBundle] updated configuration 2011-05-03 14:36:42 +02:00
Johannes Schmitt
8ef0fc4976 fixed unit tests 2011-04-28 23:26:27 +02:00
Fabien Potencier
05f1481c6a [Form] added the possibility to configure the CSRF field name and the disabling of the CSRF feature altogether 2011-04-28 11:28:44 +02:00
Fabien Potencier
2e9278993c added Definition::getArgument() (very useful when unit testing a Container) 2011-04-28 11:26:10 +02:00
Fabien Potencier
e72f1a9873 added a global secret setting to configure CSRF, the temporary storage, and possibly more 2011-04-28 10:49:59 +02:00
Fabien Potencier
f05801cace [FrameworkBundle] removed the router.options.resource_type and routing.resource arguments 2011-04-23 15:31:13 +02:00
Fabien Potencier
9bffd8c2db [FrameworkBundle] moved some default values to the Configuration class 2011-04-23 12:07:14 +02:00
Fabien Potencier
3ed0ff7b03 [FrameworkBundle] removed two parameters 2011-04-23 11:34:17 +02:00
Pascal Borreli
c4623fc2c0 [FrameworkBundle][Windows] Fixed testValidationPaths on windows 2011-04-22 20:49:09 +00:00
Fabien Potencier
7644e86683 refactored session configuration
* made the options array only for "global" options that are valid for all session storages
 * changed the PDO session storage constructor signature to accept an array of options for DB configuration
 * changed the storage_id to be the full service id, instead of just part of it
 * removed the class parameter for session as it can be changed via the .class parameter (it was the only example in the framework)
 * removed the configuration for the PDO session storage for now
2011-04-22 13:34:57 +02:00
Ryan Weaver
a5aba7dbd7 [FrameworkBundle] Upating XML test fixtures for newer namespace
This wasn't actually affecting anything (which is why it wasn't caught), but this is more correct.
2011-04-20 16:08:55 -05:00
Brikou CARRE
e898445b94 removed empty lines/trailing spaces 2011-04-15 21:12:02 +02:00
Kris Wallsmith
672291087c removed a lot of special normalization logic in the configuration by using xml values instead of attributes 2011-04-13 05:59:46 -07:00
Benjamin Eberlei
d27dc86c25 [FrameworkBundle][Validation] Fix bug where YAML Validation files are not detected. 2011-04-11 23:26:11 +02:00
Kris Wallsmith
d0f45fd3b6 [FrameworkBundle] added configuration for caching validator metadata 2011-04-06 04:07:38 -07:00
Fabien Potencier
1cb03b1448 [FrameworkBundle] removed templating.loader.cache.path parameter 2011-04-04 11:56:41 +02:00
Fabien Potencier
1fd44ea736 Merge remote branch 'vicb/cache_template'
* vicb/cache_template:
  [FrameworkBundle] Fix the cache template loader
2011-04-04 11:49:13 +02:00
Fabien Potencier
f232b3cdda reverted Merge remote branch 'kriswallsmith/kernel/shorter-bundle-names' 2011-04-04 11:10:56 +02:00
Fabien Potencier
6c2954a2d5 Revert "[FrameworkBundle] fixed shorter bundle name in test"
This reverts commit d1f3852868.
2011-04-04 11:08:30 +02:00
Victor Berchet
788ed5126b [FrameworkBundle] Fix the cache template loader 2011-04-02 19:18:32 +02:00
Martin Hason
c045f2896b [FrameworkBundle] fixed test on windows 2011-04-01 10:31:43 +02:00
Fabien Potencier
33add37f7c [FrameworkBundle] removed the validator.annotations.namespaces parameter
The parameter has been removed and the service moved to the XML file (for consistency).
The behavior is still the same as before as any non-public service
which is not referenced anywhere will be automatically removed by a
compiler pass.
2011-04-01 08:15:38 +02:00
Jeremy Mikola
553f5525a5 [FrameworkBundle] Change validator's annotation prefix from "validation" to "assert" 2011-03-30 20:04:18 -04:00
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
Kris Wallsmith
d1f3852868 [FrameworkBundle] fixed shorter bundle name in test 2011-03-28 11:38:22 -07:00
Kris Wallsmith
ade83e2e80 updated codebase to use shorter bundle names
Controllers:
"BlogBundle:Post:show" is now "Blog:Post:show"

Templates:
"BlogBundle:Post:show.html.twig" is now "Blog:Post:show.html.twig"

Resources:
"@BlogBundle/Resources/config/blog.xml" is now "@Blog/Resources/config/blog.xml"

Doctrine:
"$em->find('BlogBundle:Post', $id)" is now "$em->find('Blog:Post', $id)"
2011-03-27 06:25:43 -07:00
Fabien Potencier
005287ac88 Merge remote branch 'kriswallsmith/templating/asset-packages' 2011-03-16 16:18:45 +01:00
Fabien Potencier
28d9b331bd [FrameworkBundle] made the profiler easily configurable 2011-03-16 15:58:56 +01:00
Kris Wallsmith
6904e0e1e2 [FrameworkBundle] implemented asset packages 2011-03-08 09:22:25 -08:00
Fabien Potencier
4f0e0a6193 fixed some emails 2011-03-08 15:43:54 +01: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
Bulat Shakirzyanov
11e568ee0e [FrameworkBundle] fixed tests to conform to new xsd 2011-03-07 10:49:50 -05:00
Fabien Potencier
8c423edfef replaced symfony-project.org by symfony.com 2011-03-06 12:40:06 +01:00
Christophe Coevoet
db168cc40d Fixed assets_base_urls configuration 2011-03-02 20:04:12 +01:00
Fabien Potencier
6b12c21261 moved DependencyInjection\Configuration to Config\Definition 2011-02-17 16:03:48 +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
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
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
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
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
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
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
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
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
Fabien Potencier
5c64ca8a30 renamed Container::freeze() to Container::compile() 2011-01-16 08:12:36 +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
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
db5e180d37 tweaked DI container 2010-12-30 15:59:52 +01:00
Fabien Potencier
2985cfa5a9 [FrameworkBundle] converted the special Profiler class to a DIC compiler class 2010-12-23 12:58:34 +01:00
Johannes Schmitt
3c692bd160 fixed user refreshing after unserialization 2010-12-15 17:38:30 +01: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
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
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
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
bf82cf42dd renamed Symfony\Components to Symfony\Component 2010-08-20 23:09:55 +02:00
Fabien Potencier
7b65956343 made classes compilation more configurable 2010-08-10 22:55:24 +02:00
Fabien Potencier
b8aa4361ad [FrameworkBundle] fixed tests 2010-08-10 15:55:05 +02:00
Fabien Potencier
c57cae7600 fixed test configuration and broken tests 2010-07-18 12:16:59 +02:00
Fabien Potencier
15d439809c renamed Symfony\Bundle\FoundationBundle to Symfony\Bundle\FrameworkBundle 2010-07-09 10:25:52 +02:00