Commit Graph

946 Commits

Author SHA1 Message Date
Benjamin Eberlei
ec22b03b1d [Routing] Remove exception condition in YamlFileLoader::load() as its duplicating a check that is done in parseRoute() anyways. This changes allows to extend the YamlFileLoader without having to duplicate the whole method. 2011-05-19 20:26:26 +02:00
Fabien Potencier
bb0b3efbf0 [Routing] renamed Exception interface to ExceptionInterface to follow CS 2011-05-17 17:04:08 +02:00
Fabien Potencier
2cd04547fd [Routing] renamed some exceptions 2011-05-17 16:52:02 +02:00
alexandresalome
1d6b94189b [Routing] Use routing exceptions in the dumper and add tests. 2011-05-17 11:31:47 +02:00
Fabien Potencier
24d79f680f [Routing] changed visibility 2011-05-17 10:48:38 +02:00
Fabien Potencier
02e77ec4e3 [Routing] moved Matcher exceptions 2011-05-17 10:11:27 +02:00
Fabien Potencier
51eb746925 Merge remote branch 'alexandresalome/feat-routing-exceptions'
* alexandresalome/feat-routing-exceptions:
  [Routing] Fix the exception inheritance + Add the LICENCE block in new files
  [Routing] Change the Exception namespacing + base class for every exception + update PHPDoc
  [Routing] Add specific exceptions for the UrlGenerator
2011-05-17 09:52:44 +02:00
Johannes Schmitt
796d9af0c4 some updates 2011-05-16 22:26:24 +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
2123006710 [Routing] fixed Route fluent interface 2011-05-13 18:40:40 +02:00
alexandresalome
5aaa78d9ca [Routing] Fix the exception inheritance + Add the LICENCE block in new files 2011-05-13 18:34:42 +02:00
Fabien Potencier
48858cb95b [Routing] added missing Route::setOption() method 2011-05-13 18:17:57 +02:00
alexandresalome
07b7dc0c86 [Routing] Change the Exception namespacing + base class for every exception + update PHPDoc 2011-05-13 17:46:31 +02:00
alexandresalome
05d9e74293 [Routing] Add specific exceptions for the UrlGenerator
When generating URL, thrown exceptions are InvalidArgumentException and
distinction of errors is quite difficult. This modification brings different
exceptions for different cases
2011-05-13 16:59:37 +02:00
Chekote
ebab0a3ac2 Refactored the processing of each individual node into it's own method, enabling easier overloading of behavior for Bundles such as FriendsOfSymfony/RestBundle 2011-05-12 10:55:14 -05:00
Johannes Schmitt
f7e03f2d87 Merge remote branch 'origin/master' into annotations
Conflicts:
	UPDATE.md
	src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml
	src/Symfony/Bundle/DoctrineBundle/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php
2011-05-08 07:28:23 +02:00
Fabien Potencier
fe9ef5c68b [Routing] fixed deep nested route collections (closes #770) 2011-05-04 23:29:47 +02:00
Fabien Potencier
c7fddca891 replaced some url..code by rawurl..code 2011-05-03 23:06:55 +02:00
Fabien Potencier
27d02a7d4a [Routing] fixed regression (/ should not be matched by /{foo} when foo has no default value) 2011-05-03 14:48:08 +02:00
Johannes Schmitt
672c4ef122 Merge remote branch 'origin/master' into annotations
Conflicts:
	UPDATE.md
2011-05-03 14:38:51 +02:00
Fabien Potencier
d2a9b23c28 [Routing] fixed routing when a pattern has only one segment which is an optional variable 2011-05-03 08:54:33 +02:00
Johannes Schmitt
0d0c737630 Merge remote branch 'origin/master' into annotations
Conflicts:
	UPDATE.md
2011-04-30 10:55:43 +02:00
Daniel Holmes
b14db26062 [Routing] added setContext to RouterInterfaces as it is used on RouterInterface references 2011-04-30 13:56:40 +10:00
Johannes Schmitt
73b92db612 [Routing] updated to changes 2011-04-29 17:44:56 +02:00
Johannes Schmitt
7e26575bbd [FrameworkBundle] added framework-wide annotation reader, updated validator tests 2011-04-29 15:54:44 +02:00
Fabien Potencier
98e70f0963 [Routing] Route collection prefixes must start with a / and must not end with a / 2011-04-26 14:27:55 +02:00
Fabien Potencier
fefee0d5e5 [Routing] fixed URL generation when an optional variable value is 0 2011-04-26 09:50:57 +02:00
Fabien Potencier
035afc1f4e [Routing] fixed regression in Routing matching algorithm 2011-04-26 09:01:25 +02:00
Artur Kotyrba
713e8c26a6 [Routing] removed redundant parameter in addRoute method 2011-04-25 22:58:23 +02:00
Fabien Potencier
944a98086e [Routing] optimized PHP route dumper 2011-04-25 17:45:59 +02:00
Fabien Potencier
7c95bda751 [Routing] simplified route compiler 2011-04-25 12:38:20 +02:00
Fabien Potencier
4ed8d4f6b5 [Routing] fixed URL generation when a non-optional variable is empty 2011-04-24 13:06:02 +02:00
Pascal Borreli
8c0beea677 [Phpdoc] Cleaning/fixing 2011-04-23 15:18:47 +00:00
Fabien Potencier
813627bd4c [Routing] added getContext() accessor 2011-04-21 21:20:27 +02:00
Fabien Potencier
7e33159723 [Routing] the global parameters must not be added in the QS when generating URLs 2011-04-21 09:52:35 +02:00
Fabien Potencier
c6dcf0f8f3 [Routing] added a way to set default parameters that are applied when generating URLs 2011-04-20 23:01:05 +02:00
Fabien Potencier
f7d44148df [Routing] removed unused defaults variable 2011-04-20 22:55:23 +02:00
Fabien Potencier
fd1636b324 [Routing] added RedirectableUrlMatcher 2011-04-20 15:54:48 +02:00
Fabien Potencier
0dbfa18c46 [Routing] made a small optimization to the route dumper 2011-04-20 14:19:33 +02:00
Fabien Potencier
117321d3c6 replaced array for request context in Routing by a RequestContext class 2011-04-20 14:19:32 +02:00
Fabien Potencier
07aae98495 [Routing] added support for _scheme requirement
The _scheme requirement can be used to force routes to always match one given scheme
and to always be generated with the given scheme.

So, if _scheme is set to https, URL generation will force an absolute URL if the
current scheme is http. And if you request the URL with http, you will be redirected
to the https URL.
2011-04-20 10:49:32 +02:00
Fabien Potencier
2014ff6856 merged lsmith77/url_generator_null_parameter 2011-04-19 14:21:14 +02:00
Lukas Kahwe Smith
1ecaade68d added support for parameters with default null 2011-04-18 15:35:05 +02:00
Brikou CARRE
e898445b94 removed empty lines/trailing spaces 2011-04-15 21:12:02 +02:00
Fabien Potencier
7e58c3f976 [Routing] allowed default route variables to be null 2011-04-15 12:04:48 +02:00
Fabien Potencier
e3679ef44f [Routing] decoupled Routing from FrameworkBundle 2011-04-05 15:21:32 +02:00
Fabien Potencier
372907ead1 [Routing] fixed CS 2011-04-05 12:13:47 +02:00
Fabien Potencier
7c0a39c353 [Routing] optimized the output of the PHP matcher dumper 2011-04-05 11:58:56 +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
Kris Wallsmith
daccbf45bf [Routing] updated for DirectoryResource changes 2011-04-01 04:57:10 -07:00
Fabien Potencier
4de468e181 [Routing] makes the parameters argument of generate() optional 2011-03-26 09:54:44 +01:00
Aurelijus
38318f8f80 removes unwanted characters from goto name 2011-03-24 10:03:59 +02:00
Fabien Potencier
1fb08b6445 [Routing] fixed private method 2011-03-23 21:40:54 +01:00
Fabien Potencier
e4a3e0c2c7 [Config] moved from protected to private (WIP) 2011-03-23 19:34:00 +01:00
Fabien Potencier
b5857528e0 [Routing] moved protected to private 2011-03-23 19:25:56 +01:00
Fabien Potencier
e159c47cc9 [Routing] fixed UrlMatcher when no method requirement is defined 2011-03-22 20:56:55 +01:00
Fabien Potencier
af9c292001 Merge remote branch 'subsven/master'
* subsven/master:
  re-add filename based directory filter to the AnnotationDirectoryLoader, now restricting to *.php files and therefore disregarding e.g. SVN metadata files
  revert adding filename based filter to the directory resource
  Eleminate the need to manually clear the cache if a new controller file containing routing annotations is added - part II * add unit tests * introduce filename filter to DirectoryResource (to restrict change monitoring to a subset of files) * modify AnnotationDirectoryLoader.php to use filename filter set on Controller\.php$
2011-03-22 19:52:55 +01:00
Sven Paulus
eb8491f754 re-add filename based directory filter to the AnnotationDirectoryLoader,
now restricting to *.php files and therefore disregarding e.g. SVN metadata
files
2011-03-22 18:23:54 +01:00
Sven Paulus
61974adb4f revert adding filename based filter to the directory resource 2011-03-22 12:14:12 +01:00
Sven Paulus
f93e4b2d73 Eleminate the need to manually clear the cache if a new controller file containing routing annotations is added - part II
* add unit tests
* introduce filename filter to DirectoryResource (to restrict change monitoring to a subset of files)
* modify AnnotationDirectoryLoader.php to use filename filter set on Controller\.php$
2011-03-22 09:03:45 +01:00
Kris Wallsmith
b2f5ac8beb [Routing] refactored URL matching to support 405 Method Not Allowed responses 2011-03-21 05:56:53 -07:00
Fabien Potencier
a505ff43b5 [Routing] added supported for multiple route annotations for a single controller 2011-03-19 17:40:24 +01:00
everzet
e4eee05b06 [Routing] tuned exception message 2011-03-19 12:58:31 +02:00
everzet
3fd50ea4e6 [Routing] throw an exception if route config has unsupported keys 2011-03-19 12:54:29 +02:00
Fabien Potencier
f4e4a2aa1b refactored ConfigCache and optimized container:debug task 2011-03-14 18:37:25 +01:00
Fabien Potencier
3e389f8666 Merge remote branch 'vicb/nitpicking' 2011-03-14 14:02:40 +01:00
Fabien Potencier
f0a6ed2e54 [Routing] fixed CS 2011-03-14 13:54:48 +01:00
Fabien Potencier
84172c4839 Merge remote branch 'xdecock/Performance' 2011-03-14 13:48:37 +01:00
Artur Kotyrba
3f73a748a9 [Routing] Fixed compiling routes with empty string or 0 as default parameter value. 2011-03-13 18:13:41 +01:00
Fabien Potencier
6e81c28ca4 [Routing] fixed typo 2011-03-11 10:40:38 +01:00
Xavier De Cock
d91ea24b3e [Performance] Routing Generator, avoid array_merge in generated classes 2011-03-11 10:15:18 +01:00
Victor Berchet
61be2b7986 [Routing] XMLFileLoader small optimization 2011-03-11 09:47:46 +01:00
Xavier De Cock
ab46d0c62b Removed comment about array_* removal 2011-03-10 18:35:54 +01:00
Xavier De Cock
865ee54558 Performance improvement on Router to avoid array_*
Changes on the Router to avoid array_diff, array_keys and other inneficient array_ functions.

This is a "recommit" to respect Symfony Contribution rules
2011-03-10 18:24:33 +01:00
Fabien Potencier
dded1955e4 [Routing] fixed the / problem in a URL segment 2011-03-09 23:57:26 +01:00
Fabien Potencier
17ef911f19 [Routing] removed the normalizeUrl() method and renamed url to pathinfo as this is more correct 2011-03-09 17:25:44 +01:00
Jordi Boggiano
4c0ea6179b [Routing] UrlMatcher shouldn't collapse multiple slashes
* fixes a problem with security (/foo/bar and /foo///bar are not the same URL as far as security is concerned)
* this can still be done in your web server configuration or by adding a core.request listener
2011-03-09 17:07:12 +01:00
develop
1daedcc6fc fix whitespace problem 2011-03-08 09:49:52 +01:00
develop
a93aa55199 If you use an annotation resource pointing to a controller directory
in your routing configuration, only existing files in this directory
get tracked for changes in this directory. So if you add a new
controller file in this directory you'd have to manually clear the
cache since the new file gets ignored.
This patch adds a DirectoryResource for this case which tracks all
changes in the given directory (and files and directories contained
within).
2011-03-08 09:49:45 +01:00
Fabien Potencier
8c423edfef replaced symfony-project.org by symfony.com 2011-03-06 12:40:06 +01:00
Fabien Potencier
2bb2388c3f fixed typo 2011-02-28 12:12:49 +01:00
Fabien Potencier
3948c2d8a2 [Routing] fixed annotation dir loader auto-reload when a controller class changes 2011-02-27 22:39:54 +01:00
Christophe Coevoet
92bfbf575c Fixed CS 2011-02-27 20:56:29 +01:00
Fabien Potencier
e16c666266 [Routing] made an empty path info to redirect to / (as for any other route that ends with a /) 2011-02-26 08:56:44 +01:00
Fabien Potencier
f46c6f7e45 [Routing] fixed the %2f problem in URLs 2011-02-25 18:01:32 +01:00
Fabien Potencier
f54cedfe5e added LICENSE files for the subtree repositories 2011-02-22 18:58:15 +01:00
Fabien Potencier
9619c7dade [Routing] removing the routing hack where we add a / at the beginning if it does not exist 2011-02-21 10:25:22 +01:00
Fabien Potencier
5c905beb13 moved common configuration classes to a new Config component 2011-02-13 22:31:50 +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
Jeremy Mikola
8525ff83cd [Routing] XmlFileLoader should treat a missing "type" attribute as null when calling FileLoader::import() 2011-02-12 21:52:16 +01:00
Fabien Potencier
5ee8eca0ee [Routing] fixed previous commit 2011-02-11 01:54:25 +01:00
Jeremy Mikola
d85a839997 [Routing] Avoid locating imported resources as files unless they resolve to a FileLoader
XML/YAML loaders assume imported resources are files before attempting to resolve their loader. This is problematic for loaders such as Assetic, which does not use a file as its resource. Furthermore, the previous consecutive calls to both locate() and getAbsolutePath() were redundant. File location can safely be delayed until FileLoader::import(), and we can let that throw an exception if the file is not found.
2011-02-11 00:08:43 +01:00
Jordi Boggiano
5bf593353f [Routing] Added optional trailing slash support to ApacheMatcherDumper 2011-02-10 23:46:23 +01:00
Jordi Boggiano
fe694de746 [Routing] Make trailing slashes in urls optional 2011-02-10 23:46:23 +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
Kris Wallsmith
51beecc6f2 [Router] config fixes 2011-02-10 15:54:00 +01:00
Fabien Potencier
a8ec9b27f0 moved duplicated files to a new Config component 2011-02-10 03:43:36 +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
Daniel Holmes
f4282eea98 [Routing] added support for non-standard port numbers in absolute urls 2011-02-04 00:25:25 +01:00
Fabien Potencier
ca8c7907e2 [Routing] added setContext() method to both matchers and generators 2011-01-24 16:59:32 +01:00
Fabien Potencier
8649debb06 [Routing] fixed imports from the current directory 2011-01-21 12:06:06 +01:00
Ryan Weaver
17f9162b89 [Standards] Changing many instances of "boolean" to "Boolean". 2011-01-21 09:53:24 +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
Dominique Bongiraud
64fb94c725 normalized license messages in PHP files 2011-01-18 08:07:46 +01:00
Fabien Potencier
6dd1d6172f fixed some routing patterns 2011-01-12 07:10:57 +01:00
Fabien Potencier
b63de46374 [Routing] moved from :var to {var}
This follows the "URI template" notation:

http://code.google.com/p/uri-templates/
http://tools.ietf.org/html/draft-gregorio-uritemplate-04

You need to change all your route definitions from something like:

    /article/:id

to something like:

    /article/{id}
2011-01-11 19:13:16 +01:00
Kris Wallsmith
763ef35d0e [Routing] added creation of a file resource in annotations loader 2010-12-22 11:19:05 +01:00
Kris Wallsmith
32aef96441 [Routing] removed call to setDefaultAnnotationNamespace() so this can be configure on the injected reader 2010-12-22 11:18:44 +01:00
Benjamin Lévêque
8a472b7d98 [Routing] Fix PhpMatcherDump when url contains a . or a - 2010-12-22 11:14:49 +01:00
Victor Berchet
5e94807668 Speed up url matching for route without variable 2010-12-20 18:25:32 +01:00
Fabien Potencier
5857576024 [Routing] added . as a valid character in route names 2010-12-12 08:53:49 +01:00
Fabien Potencier
7cb8dca04d [Routing] added . as a valid character in route names 2010-12-12 08:53:18 +01:00
Fabien Potencier
504463c307 [Routing] refactored code 2010-12-12 08:50:46 +01:00
Fabien Potencier
48e30537c4 added exception when a loaded YAML resource is not an array 2010-12-12 08:39:37 +01:00
Jeremy Mikola
c8c9fba7d9 [Routing] Add optional "type" param for loader hinting when resource strings are ambiguous
Currently, ambiguities only arise for PHP files, as PhpFileLoader and AnnotationFileLoader would both claim support.  Future conflicts may occur if the XML, YAML, or PHP loaders were to receive Directory and Glob loaders (as annotations have).

Since the "type" parameter is optional, loader resolution will default to awarding resolution to the first loader to claim support.  A previous hack in PhpFileLoader to avoid an AnnotationFileLoader conflict was removed, so that should be the only lost backwards compatibility with this patch.  Unit tests were also created for the various loader classes, although only the supports() method is being tested.

This implementation was proposed on the symfony-dev mailing list in response to Fabien's RFC for custom loader notation: http://groups.google.com/group/symfony-devs/browse_thread/thread/3104c1a9e45799d2/20fbe393c1afe088
2010-12-10 09:48:10 +01:00
Fabien Potencier
45e34c29fd [Routing] simplified code 2010-11-30 21:10:55 +01:00
pablodip
794634db7c [Routing] changed method_exists by an array with the routes names in the php generator dumper, its more efficient 2010-11-30 20:59:58 +01:00
Fabien Potencier
dca8a79bf5 [Routing] made annotation class loader more flexible 2010-11-30 14:00:48 +01:00
Fabien Potencier
b2eec52429 [Routing] added missing Route::setRequirement() 2010-11-30 14:00:36 +01:00
Ryan Weaver
bd0d9dc1cb [Routing] Fixing a coding standard violating I introduced. 2010-11-29 18:23:02 +01:00
Ryan Weaver
739ebf92f5 [Routing] Changing the _method route requirement to be a regular expression so that it's consistent with all other requirements.
Unlike all other requirements, the _method regex requirement is case-insensitive.
2010-11-27 11:48:57 +01:00
Ryan Weaver
acb977aa88 [Routing] Tweaking the ApacheMatcherDumper formatting - no real change. 2010-11-27 11:48:00 +01:00
Ryan Weaver
1e9e1b346d [Routing] Adding tests for the ApacheMatcherDumper, PhpMatcherDumper and UrlMatcher. 2010-11-27 11:47:48 +01:00
Ryan Weaver
5aa6ad28ae Updating RouteCollection::getRoutes() call to RouteCollection::getAll() in many places. 2010-11-26 14:43:12 +01:00
Ryan Weaver
f0ee10112e [Routing] Updating changed method name after method name refactoring. 2010-11-26 14:43:07 +01:00
Fabien Potencier
944d91c1df made some method name changes to have a better coherence throughout the framework
When an object has a "main" many relation with related "things" (objects,
parameters, ...), the method names are normalized:

 * get()
 * set()
 * all()
 * replace()
 * remove()
 * clear()
 * isEmpty()
 * add()
 * register()
 * count()
 * keys()

The classes below follow this method naming convention:

 * BrowserKit\CookieJar -> Cookie
 * BrowserKit\History -> Request
 * Console\Application -> Command
 * Console\Application\Helper\HelperSet -> HelperInterface
 * DependencyInjection\Container -> services
 * DependencyInjection\ContainerBuilder -> services
 * DependencyInjection\ParameterBag\ParameterBag -> parameters
 * DependencyInjection\ParameterBag\FrozenParameterBag -> parameters
 * DomCrawler\Form -> FormField
 * EventDispatcher\Event -> parameters
 * Form\FieldGroup -> Field
 * HttpFoundation\HeaderBag -> headers
 * HttpFoundation\ParameterBag -> parameters
 * HttpFoundation\Session -> attributes
 * HttpKernel\Profiler\Profiler -> DataCollectorInterface
 * Routing\RouteCollection -> Route
 * Security\Authentication\AuthenticationProviderManager -> AuthenticationProviderInterface
 * Templating\Engine -> HelperInterface
 * Translation\MessageCatalogue -> messages

The usage of these methods are only allowed when it is clear that there is a
main relation:

 * a CookieJar has many Cookies;

 * a Container has many services and many parameters (as services is the main
   relation, we use the naming convention for this relation);

 * a Console Input has many arguments and many options. There is no "main"
   relation, and so the naming convention does not apply.

For many relations where the convention does not apply, the following methods
must be used instead (where XXX is the name of the related thing):

 * get()      -> getXXX()
 * set()      -> setXXX()
 * all()      -> getXXXs()
 * replace()  -> setXXXs()
 * remove()   -> removeXXX()
 * clear()    -> clearXXX()
 * isEmpty()  -> isEmptyXXX()
 * add()      -> addXXX()
 * register() -> registerXXX()
 * count()    -> countXXX()
 * keys()
2010-11-25 17:30:06 +01:00
Fabien Potencier
a79ed13624 [Routing] removed the variable_prefixes and variable_regex Route options 2010-11-22 11:04:53 +01:00
Fabien Potencier
44ccd44dd6 [Routing] fixed ApacheMatcherDumper default config 2010-11-11 23:22:15 +01:00
Fabien Potencier
7f8c540a20 [Routing] fixed XML loader on Windows (there is no need to urlencode here as schemaValidate() takes a filename, not a URL) 2010-10-28 09:17:11 +02:00
Ryan Weaver
84a60d74d1 Allowing a routes node to be specified without any child import or route nodes.
This is not really a bug or a big issue, but if you need to temporarily empty a routes node, Symfony shouldn't care - it's not an actual validation failure (a routes node still makes sense without an route or import children).
2010-10-22 13:21:55 +02:00
Ryan Weaver
cc4f2bd955 Adding a type-hint to XmlFileLoader::validate(). 2010-10-22 08:22:08 +02:00
Fabien Potencier
92c56a5066 Revert "[Routing] allowed multiple routing requirement with xml loader, using comma separated values"
This reverts commit e8bcbcba57.
2010-10-21 08:13:10 +02:00
ornicar
e8bcbcba57 [Routing] allowed multiple routing requirement with xml loader, using comma separated values 2010-10-20 14:32:36 +02:00
Kris Wallsmith
f79e23ffb5 Removed all those spaces after @author that were bothering me so… 2010-10-18 16:55:41 +02:00
Kris Wallsmith
0b1f3145ae Removed unnecessary "public" from interface method signatures. 2010-10-18 16:55:09 +02:00
Artur Kotyrba
308e85a5a7 Removed methods which implemented interfaces by throwing \LogicException('You must override...'). 2010-10-17 07:54:18 +02:00
pborreli
86cc6a11d9 [Component] Fixed some spelling typos 2010-10-17 07:51:50 +02:00
Ryan Weaver
c39635680f added PHPDoc 2010-10-13 07:29:41 +02:00
Ryan Weaver
8c70a2ee24 Adding basic PHPDoc to the Routing\DelegatingLoader class. 2010-10-12 06:58:51 +02:00
Fabien Potencier
c39534e258 [Routing] removed the autoloading trick, which is not needed anymore 2010-09-07 16:15:13 +02:00
Fabien Potencier
b753ea45b2 [Routing] added 'defaults' support in Annotation class loader 2010-09-07 13:55:45 +02:00
Fabien Potencier
130494066d [Routing] added an annotation loader 2010-09-07 09:44:08 +02:00
Sébastien HOUZE
179fe8e623 Symfony\Component\Routing\Route::setRequirements() _method requirement can be an array, no substr on it 2010-09-03 12:01:57 +02:00
Fabien Potencier
bf82cf42dd renamed Symfony\Components to Symfony\Component 2010-08-20 23:09:55 +02:00