Commit Graph

515 Commits

Author SHA1 Message Date
Johannes Schmitt
763bba9b89 bug fix 2010-12-12 10:27:15 +01:00
Fabien Potencier
48e30537c4 added exception when a loaded YAML resource is not an array 2010-12-12 08:39:37 +01:00
Bernhard Schussek
1b2ca259f1 [Validator] Fixed string-based constraint validators to accept empty values 2010-12-10 14:28:11 +01:00
Gustavo Falco
af291bb0f1 [Validator] Fixed UrlValidator to accept empty strings (closes #9297) 2010-12-10 14:28:07 +01:00
GordonsLondon
f73b6b4e1c [PropertyPath] Fixed usage of __get() and __set() when accessing properties that exist in the object but are not public 2010-12-10 14:28:04 +01:00
Bernhard Schussek
e80aa9a5ab [Form] Fixed: The data in a CollectionField is resized down if fields are removed 2010-12-10 14:27:57 +01:00
Bernhard Schussek
131b3fe373 [Form] Refactored Field and FieldGroup to facilitate modifications in subclasses 2010-12-10 14:27:54 +01:00
pablodip
984a857a96 [Validator] fixed the static method loader to not repeat the loading when the static method is in the parent classes 2010-12-10 14:27:49 +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
0c0853c636 fixed unit tests 2010-12-10 09:30:44 +01:00
Ryan Weaver
be94daba66 [HttpKernel] Reworking the HttpException class constructor to be more consistent with normal OO classes. Additionally, the base HttpException constructor was changed to require a code argument as it doesn't make sense to create an exception that will translate into a status code of 0 (in fact it'll cause a strange error). 2010-12-10 08:47:25 +01:00
Kris Wallsmith
5da423be20 [HttpKernel] Added getRequest() to HttpKernelInterface. 2010-12-10 08:43:05 +01:00
Jeremy Mikola
7eea4882db [HttpKernel] Move request-stashing behavior to the Kernel class
Previously, HttpKernel performed request-stashing.  By moving this to the Kernel class, the request is now available immediately after the kernel becomes aware of it.  If the kernel is allowed to boot lazily (during the first call to handle()), this also allows an actual master Request to be available during booting.

The old "request" service definition (with a bogus class name) can be replaced with a factory-aware definition that retrieves the request directly from the kernel.
2010-12-09 09:38:17 +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
Fabien Potencier
7c653305a3 [DependencyInjection] fixed typo 2010-12-08 14:33:58 +01:00
Johannes M. Schmitt
d94420f3a5 logout refactoring 2010-12-08 08:26:58 +01:00
Jordi Boggiano
fb41389999 [HttpFoundation] Fixed Request::create handling of full URIs 2010-12-08 07:52:33 +01:00
Fabien Potencier
e8672740c7 [HttpFoundation] allowed any HTTP method for a Request 2010-12-08 07:24:37 +01:00
Fabien Potencier
7cb5dd1fdc [Security] fixed typo 2010-12-08 07:06:08 +01:00
Kris Wallsmith
3e02eafc70 Fixed visibility of PHPUnit setUp and tearDown methods. 2010-12-06 15:52:23 +01:00
Bulat Shakirzyanov
73331cf1c1 [DependencyInjection] Interface Injection implementation 2010-11-30 20:36:56 +01:00
pablodip
314d3d06ae [DependencyInjection] format the tags in the findTaggedServiceIds method of the PhpDumper 2010-11-30 07:56:51 +01:00
Fabien Potencier
6e18a2c529 [Yaml] fixed parsing of simple inline documents 2010-11-29 21:09:02 +01:00
Ryan Weaver
7efb4630b8 [Command] Changing the InputOption::PARAMETER_* constants to InputOption::VALUE_* to more accurately reflect that these constants refer to the value or lack of value assigned to a particular option (e.g. --verbose or --em=doctrine).
To keep language consistent, three methods were changed in InputOption:

 * `InputOption::acceptParameter()` -> `InputOption::acceptValue()`
 * `InputOption::isParameterRequired()` -> InputOption::isValueRequired()`
 * `InputOption::isParameterOptional()` -> `InputOption::isValueOptional()`

The InputDefinition::asXml() method was also modified to update the `accept_value` and `is_value_required` attributes.
2010-11-27 19:56:27 +01:00
Ryan Weaver
9c8cae24f8 [Console] Fixing incorrect constant references in InputArgumentTest. 2010-11-27 19:56:19 +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
Bulat Shakirzyanov
d171df0c3b [DependencyInjection] fixed tests to catch exception classes instead of asserting them 2010-11-26 22:39:51 +01:00
Fabien Potencier
1e983a6115 moved static Form configuration to a new class (avoid loading 7 classes just to enable CSRF -- even when no form is present in the page) 2010-11-26 17:44:17 +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
341178e869 [DependencyInjection] made some cosmetic changes to the PHP dumper output 2010-11-24 15:55:25 +01:00
Fabien Potencier
60bbb8f380 [DependencyInjection] optimized compiled containers
* removed the __call() method in Container: it means that now, there is only
   one way to get a service: via the get() method;

 * removed the $shared variable in the dumped Container classes (we now use
   the $services variable from the parent class directly -- this is where we
   have a performance improvement);

 * optimized the PHP Dumper output.
2010-11-23 22:43:09 +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
Fabien Potencier
30ccd0b794 [Form] fixed unit test paths 2010-11-23 06:59:26 +01:00
Bernhard Schussek
e0aa3f30a8 [Form] Improved FileField to store files in a temporary location in case validation fails 2010-11-23 06:51:30 +01:00
Bernhard Schussek
d95d33666d [HttpFoundation] Fixed class Request to convert empty files to NULL 2010-11-23 06:51:17 +01:00
Bernhard Schussek
f9e830caa2 [Form] Added hook method preprocessData() to FieldGroup 2010-11-23 06:51:13 +01:00
Fabien Potencier
a79ed13624 [Routing] removed the variable_prefixes and variable_regex Route options 2010-11-22 11:04:53 +01:00
Bulat Shakirzyanov
21f088d86a [DependencyInjection] replaced assertEquals(spl_object_hash()) with assertSame 2010-11-21 15:26:25 +01:00
Bernhard Schussek
e0d6aad5f4 [Form][FrameworkBundle][TwigBundle] Introduced class FieldError to wrap form errors 2010-11-19 07:11:29 +01:00
Bernhard Schussek
68cebd667a [Validator] Group sequences must now always contain the group "<ClassName>" and never the group "Default" since that group is redefined by the group sequence 2010-11-19 07:11:26 +01:00
Bernhard Schussek
a71cad480a [Validator] Added @validation:GroupSequence to annotation driver 2010-11-19 07:11:23 +01:00
Bernhard Schussek
681ce7f46a [Form] Fixed: FieldGroup::hasErrors() does not return true if only children have errors 2010-11-19 07:11:17 +01:00
Fabien Potencier
333504a201 [OutputEscaper] fixed output escaping when a variable was decorated with SafeDecorator and passed to another part of the system where decoration also happens on the same un-decorated variable
This is the case for instance when you pass a variable to a template like this:

new SafeDecorator($var);

and in the template, you pass it again to another embedded template:

$view->render('...', array('var' => $var);

The second time, $var will be escaped as the SafeDecorator wrapper will have been removed
by the escaper.
2010-11-18 19:25:18 +01:00
Fabien Potencier
b6923dd7b9 changed Cache-Control default value behavior
The PHP native cache limiter feature has been disabled as this is now managed
by the HeaderBag class directly instead (see below.)

The HeaderBag class uses the following rules to define a sensible and
convervative default value for the Response 'Cache-Control' header:

 * If no cache header is defined ('Cache-Control', 'ETag', 'Last-Modified',
   and 'Expires'), 'Cache-Control' is set to 'no-cache';

 * If 'Cache-Control' is empty, its value is set to "private, max-age=0,
   must-revalidate";

 * But if at least one 'Cache-Control' directive is set, and no 'public' or
   'private' directives have been explicitely added, Symfony2 adds the
   'private' directive automatically (except when 's-maxage' is set.)

So, remember to explicitly add the 'public' directive to 'Cache-Control' when
you want shared caches to store your application resources:

    // The Response is private by default
    $response->setEtag($etag);
    $response->setLastModified($date);
    $response->setMaxAge(10);

    // Change the Response to be public
    $response->setPublic();

    // Set cache settings in one call
    $response->setCache(array(
        'etag'          => $etag,
        'last_modified' => $date,
        'max_age'       => 10,
        'public'        => true,
    ));
2010-11-18 17:05:05 +01:00
Jordi Boggiano
db3e12b122 [Routing] Fixed tests for windows 2010-11-18 06:59:16 +01:00
Jordi Boggiano
7a255fe39f [HttpFoundation] Fixed tests for windows 2010-11-18 06:59:12 +01:00
Jordi Boggiano
b2bd7ce57d [Validator] Skipping AnnotationLoader tests if doctrine-common is not present 2010-11-18 06:59:09 +01:00
Jordi Boggiano
b3ae62e2c4 [Finder] Fixed tests on windows 2010-11-18 06:59:05 +01:00
Jordi Boggiano
a0f933163f [Console] Fixing tests breaking on windows 2010-11-18 06:59:01 +01:00
Fabien Potencier
69d2568339 [HttpKernel] fixed typo in a unit test 2010-11-17 17:10:50 +01:00
Bernhard Schussek
940ce9aedf [Validator] Group "Default" is now propagated to validated references when group sequences are validated
This conforms to JSR303 (see version 1.0 final, page 39).
2010-11-17 08:02:10 +01:00
Bernhard Schussek
6a148465da [Validator][Form] Removed support for match-all group "*"
The constraint "Valid" does not accept any options or groups anymore. As per
JSR303 1.0 final, section 3.5.1 "Object graph validation" (page 39),
properties  annotated with valid should be cascaded independent of the current
group (i.e. always). Thus the group "*" is not necessary anymore and was
removed from the "Valid" constraint in the Form validation.xml.
2010-11-17 08:02:06 +01:00
Bernhard Schussek
3127312139 [Form] Added option 'value_transformer' and 'normalization_transformer' to Field class 2010-11-16 07:28:33 +01:00
Jordi Boggiano
0bdb271608 [Form] Added parent calls to all configure() methods of Fields and Transformers
The calls that were on top of the function have also been moved to the bottom for safety (see previous commit)
2010-11-16 07:28:12 +01:00
GordonsLondon
23ac47e011 [Form] Added support for __get and __set in PropertyPath 2010-11-16 07:28:07 +01:00
Jordi Boggiano
3cbc99c180 [Translation] Added flatten method on ArrayLoader
This allows the translations to be deeply nested arrays that will be flattened, allowing for namespacing of translations easily.

The following:
  'key' => array('key2' => array('key3' => 'value'))
Becomes:
  'key.key2.key3' => 'value'

This isn't applied to Xliff since it does not make sense within the scope of the XLIFF standard
2010-11-16 07:20:57 +01:00
Fabien Potencier
4e5c99dab0 [EventDispatcher] removed the possibility to remove one listener for an event 2010-11-15 23:14:36 +01:00
Fabien Potencier
f6cc63c99c removed ArrayAccess interface for Container and Controller 2010-11-15 10:05:28 +01:00
Fabien Potencier
53dd4e39c7 [DependencyInjection] changed the YAML notation for optional services from @@ to @? 2010-11-15 10:00:59 +01:00
Fabien Potencier
519cc09488 [Translation] added some unit tests for the new YAML loader 2010-11-15 09:37:04 +01:00
Fabien Potencier
6f898a5008 [HttpKernel] made some tests more robust 2010-11-13 12:29:14 +01:00
Fabien Potencier
4aa5ef63f5 [HttpKernel] made some tests more robust 2010-11-13 12:22:38 +01:00
jeff
69cd21d8be [Validator] Fixed annotation loader to not add parent constraints twice 2010-11-12 17:56:09 +01:00
Jordi Boggiano
a198bbcf43 [Form] throw an exception if session_id() is empty when a csrf token is generated 2010-11-12 17:53:29 +01:00
Bernhard Schussek
f5b451f5b9 [Form] Fixed MoneyToLocalizedStringTransformer and added tests 2010-11-12 17:52:56 +01:00
Fabien Potencier
efed6005cb [DependencyInjection] fixed PHP dumper
In the dumped PHP class, we must use get() and not get*Service() methods to get services.
That's because all calls must be managed by get(). From the outside, you can call
get*Service() because as they are protected, they are caught by the __call() method;
which is not the case obviously when it is used internally.

If not, if you override a service with set(), this won't work when a service
depends on this one (the default one will still be used).
2010-11-12 17:38:32 +01:00
Fabien Potencier
513163648e fixed a unit test 2010-11-10 07:50:30 +01:00
Fabien Potencier
a471f65759 [HttpKernel] tweaked HttpKernelInterface 2010-11-06 15:13:23 +01:00
Fabien Potencier
5bd03e1c58 [HttpKernel] added unit tests for ESI 2010-11-02 20:00:18 +01:00
Fabien Potencier
556bfcb804 [HttpKernel] added some more unit tests 2010-11-02 18:38:11 +01:00
Fabien Potencier
a19cdce1bc [Security] added some missing unit tests 2010-10-31 23:41:36 +01:00
Fabien Potencier
58bd4acdd1 [Translation] added some unit tests 2010-10-31 23:23:42 +01:00
Fabien Potencier
ec417578ca [Security] added unit tests to some authenticated providers (code coverage is more than 96% for the Security component now) 2010-10-31 15:41:15 +01:00
Fabien Potencier
3d5054f21f [Security] added unit tests for the Authentication sub-namespace 2010-10-31 13:39:12 +01:00
Fabien Potencier
3506dfabff [HttpKernel] added a return value to the purge() method of the Cache store class 2010-10-30 21:15:43 +02:00
jeff
ae888b80f6 [HttpFoundation] removed port number from HOST header
To be consistent with backup values (SERVER_NAME, SERVER_ADDR).
fix a problem with getUriForPath($path) where port number may be present twice.
2010-10-28 15:14:48 +02:00
jeff
a5d4acc54d [HttpFoundation] updated get() signature to get($key, $default = null, $first = true)
This is more consistent with the get() method of ParameterBag
2010-10-28 15:12:48 +02:00
Fabien Potencier
e23c3cc702 [OutputEscaper] made getEscaper*() methods more consistent with the way you can change the escaping strategy in __call() 2010-10-26 22:39:01 +02:00
Fabien Potencier
c065be88b5 [OutputEscaper] refactored the component 2010-10-26 22:28:33 +02:00
Johannes M. Schmitt
3463f47698 applies base64 encoding directly to the binary data instead of their hexadecimal representation 2010-10-24 10:57:06 +02:00
Fabien Potencier
4027f751e3 [Security] added more unit tests 2010-10-22 17:48:58 +02:00
Bernhard Schussek
96a0bff915 [Form] Made InputField instantiable so that simple input fields can be created on the fly 2010-10-22 08:30:14 +02:00
Bernhard Schussek
e9fcacdad7 [HttpFoundation] Fixed: File/UploadedFile did not adjust path when moved 2010-10-22 08:30:14 +02:00
Bernhard Schussek
72dcee594a [Form] Added validiation of hours, minutes and seconds to TimeField 2010-10-22 08:30:14 +02:00
Bernhard Schussek
6c7fab212b [Form] Added validation of years, months and days to DateField 2010-10-22 08:30:13 +02:00
Bernhard Schussek
e4c21708ca [Form] Separated value transformers from normalization transformers.
Fields can now easier support different data types in their underlying object.
These datatypes can be normalized to a single datatype using a normalization
transformer. The normalized value can then be transformed to the user's
representation with the value transformer (better name required?).
2010-10-22 08:30:13 +02:00
Bernhard Schussek
733290c112 [Form] Implemented UrlField 2010-10-22 08:30:13 +02:00
Bernhard Schussek
eaef939141 [Form] Changed value transformers to be responsible for processing empty values to be able to chain them properly. This change fixes the bug that DateField did not return NULL when submitted without values 2010-10-22 08:30:13 +02:00
Fabien Potencier
82f8ab839f [Security] added some unit tests (WIP) 2010-10-21 18:14:32 +02:00
Vladimir Sazhin
08c3761731 added \RecursiveDirectoryIterator::SKIP_DOTS flag 2010-10-20 14:28:19 +02:00
Justin Hileman
0ccc9805f5 Fix UniversalClassLoader issues with leading slashes.
This fixes a bug in UniversalClassLoader when attempting to autoload class names with leading slashes:

    $namespacedClass = "\\Foo\\Bar";
    $pearlikeClass   = "\\Foo_Bar";

    $namespaced = new $namespacedClass();
    $pearlike   = new $pearlikeClass();

`UniversalClassLoader::loadClass()` was unable to load PEAR-like classes with leading slashes because it found the slash and assumed that the requested class was namespaced. It was unable to load namespaced classes with leading slashes because it would look them up in the autoloader's registered namespaces, and was unable to match '\Foo' to 'Foo'. One (ugly) workaround for the namespaced classes was to register all namespaces twice:

    $loader->registerNamespaces(array(
        'Foo'  => __DIR__ . '/lib',
        '\Foo' => __DIR__ . '/lib',
    ));

But that's not very pretty, nor does it solve the bug with PEAR-like classes. Stripping the leading slash before trying to autoload allows UniversalClassLoader to load both namespaced and PEAR-like classes.
2010-10-20 14:20:12 +02:00
Jeremy Mikola
0aba8ef720 [DependencyInjection] XmlFileLoader should allow "factory-service" attribute without "class" for <service> 2010-10-19 21:10:07 +02:00
Fabien Potencier
5b6d92df3c fixed unit tests 2010-10-18 17:01:57 +02:00
Fabien Pennequin
dbfa06c54f [OutputEscaper] Add some tests 2010-10-18 16:51:12 +02:00
Fabien Pennequin
71ace34822 [Routing] Added some tests 2010-10-18 16:51:08 +02:00
Fabien Pennequin
c543692891 [DependencyInjection] Added tests for ContainerBuilder class 2010-10-18 16:51:04 +02:00
Fabien Pennequin
7225cf64b1 [DependencyInjection] Added tests for methods hasMethodCall and removeMethodCall of Definition class 2010-10-18 16:51:00 +02:00
Artur Kotyrba
308e85a5a7 Removed methods which implemented interfaces by throwing \LogicException('You must override...'). 2010-10-17 07:54:18 +02:00
Kris Wallsmith
5d4c80f27b [Validator] removed DependencyInjection integration 2010-10-16 08:34:36 +02:00
Kris Wallsmith
ef4f61bb9f [DependencyInjection] Added TaggedContainerInterface to signature of generated container classes 2010-10-16 08:32:07 +02:00
Fabien Potencier
7e66933876 fixed inconsistency when calling the Http Kernel instance from an event 2010-10-15 11:02:35 +02:00
Jeremy Mikola
df9ef79953 [Form] readPropertyPath should return null instead of empty array
When reading the last bit of a property path mapped to a missing array index, the method would initialize the value to an empty array.  This makes sense for cases where readPropertyPath would again be called recursively, but not when the value would be immediately returned (null would be preferable in that case).

For example, we have an object with a property called "options" that's an array of arbitrary key/value pairs.  That "options" property (and getOptions()) maps directly to a FieldGroup within the Form for this object.  That FieldGroup contains multiple TextFields for a few expected keys in the array.  As-is, if those keys were not defined, the default data set for those TextFields could end up being "Array" (string representation of an empty array).  If readPropertyPath instead returns null for this case, the default data would be transformed into an empty string.
2010-10-13 08:17:05 +02:00
Benjamin Zikarsky
d376596f7e [EventDispatcher] fixed bug in EventDispatcher::disconnect if the second argument is null or ommitted 2010-10-13 07:41:56 +02:00
Bernhard Schussek
b902cb31d7 [Form] PropertyPath camelizes property names when setting values 2010-10-11 12:52:22 +02:00
Bernhard Schussek
a66d883afd [Form] Removed CSRF setters because they have no effect once CSRF protection is enabled. Re-enable CSRF protection with the desired values instead 2010-10-11 12:52:17 +02:00
Bernhard Schussek
e1be4e9689 [Form] Refactored logic to read and set values from Field to PropertyPath 2010-10-11 12:52:10 +02:00
ornicar
06a6b15e22 [Form] Fix FieldGroup::getHiddenFields, add tests for FieldGroup::getHiddenFields and FieldGroup::getVisibleFields 2010-10-09 14:20:06 +02:00
Fabien Potencier
fafcd02684 [HttpFoundation] changed RequestMatcher pattern syntax 2010-10-07 19:12:53 +02:00
Fabien Potencier
5019010539 fixed unit tests after the last commit 2010-10-06 14:44:02 +02:00
Benjamin Eberlei
f033fc5578 Refactor ValueTransformers to recieve the original value when reverseTransform() is called. This is required for expensive value transformations for example Doctrine Collections or Proxies to allow access to a value that does not trigger expensive operations (such as database calls) anymore. 2010-10-06 14:16:47 +02:00
Fabien Potencier
2525998f6e replaced form field rendering with plain templates
Documentation available here:

http://docs.symfony-reloaded.org/master/guides/form/
2010-10-05 08:34:33 +02:00
Fabien Potencier
0fc8906feb [Validator] forced all validation annotations to be in the validation namespace to avoid collisions, removed the need for the wrapping @Validation annotation
Before:

    /**
     * @Validation({@DateTime()})
     */

After:

    /**
     * @validation:DateTime()
     */

The @validation:Validation() construct is not needed anymore (it is still supported
as this is useful when you have several annotations with the same class).

So, the above is equivalent to:

    /**
     * @validation:Validation({@validation:DateTime()})
     */
2010-10-02 15:07:00 +02:00
Fabien Potencier
3b1e83380b [Validator] removed the convention that error parameters are delimited with %% 2010-09-29 07:59:45 +02:00
Fabien Potencier
4ac65cebcf [Translation] renamed Range to Interval 2010-09-28 07:14:43 +02:00
Brandon Turner
bda264bb81 [Form] Removed invalid unit test
The bind() method only accepts arrays - passing objects causes an exception
2010-09-27 17:54:43 +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
a7537906b4 [Translation] added the component 2010-09-27 09:45:29 +02:00
Brandon Turner
953a81372a [Form] fixed typo in unit test 2010-09-25 07:57:58 +02:00
Brandon Turner
c3b89eeedd [Form] fixed failing unit test due 2010-09-25 07:57:57 +02:00
Brandon Turner
a305eb063d [Form] added support for rounding-mode option on NumberFields 2010-09-25 07:57:57 +02:00
Brandon Turner
2052501634 [Form] fixed missing locale setting in unit tests 2010-09-25 07:57:57 +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
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 Pennequin
61f18667f4 [Console] Added some tests for command shortcuts 2010-09-14 09:18:50 +02:00
Fabien Pennequin
56935f85df [Console] Fixed invalid help command shortcut 2010-09-14 09:18:47 +02:00
Jeremy Mikola
57c0ce0ec1 [Form] Remove support for ArrayObject as ChoiceField's choices option
Internally, ChoiceField expects both choices and preferred_choices to be a simple array, so I replaced incomplete bits of code that attempted to not modify a possible ArrayObject and instead added type checks in the configure() method (with unit tests for expected exceptions).
2010-09-10 19:30:59 +02:00
Jeremy Mikola
fb24b291c8 [Form] FieldGroup::addError() can now map errors to fields within nested FieldGroups
Property paths such as fields[group].fields[innerGroup].data were not being resolved correctly, since the second iteration of addError() (based on "group") would attempt to call get('fields') instead of get('innerGroup').  Solution is to remember to bump the propertyPath forward if we're at the fields property
2010-09-09 16:29:38 -04:00
Jeremy Mikola
9be7cbb115 [Form] CollectionField::setData() should remove old fields missing from new data 2010-09-09 16:27:18 -04:00
Jeremy Mikola
9f5469f62d [Form] Test case for binding a collection of field groups with an ArrayObject of objects. 2010-09-09 16:11:31 -04:00
Jeremy Mikola
b3648b219b [Form] Fixed testBindSingleExpanded (was testing multiple, non-expanded) 2010-09-09 16:08:45 -04:00
Jeremy Mikola
e52cf7afe0 [Form] ChoiceField tests for numeric choices 2010-09-09 16:06:55 -04:00
Jeremy Mikola
2b776bf2e8 [Form] ChoiceField test for using ArrayObject as choices option 2010-09-09 16:03:44 -04:00
Fabien Potencier
a141c98917 [HttpFoundation] moved File Component into the HttpFoundation one 2010-09-09 17:01:48 +02:00
Kris Wallsmith
1443d4a0ba [HttpFoundation] updated getQueryString() to work in more scenarios 2010-09-06 08:48:11 +02:00
Brandon Turner
26e4b2e2ef [Finder] Fixed randomly failing tests due to the order files are read from the filesystem 2010-09-03 09:29:11 +02:00
Jordi Boggiano
a6da0fb0c4 [DomCrawler] Added tests to verify previous fix 2010-09-03 09:13:04 +02:00
Jordi Boggiano
20ca97c5b3 [DomCrawler] Fixing trailing space 2010-09-03 09:13:00 +02:00
Jordi Boggiano
2ab59791c6 [DomCrawler] Fixing typo 2010-09-03 09:12:56 +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
4f337615e3 [HttpFoundation] added request matcher 2010-09-02 13:39:49 +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
a432417ab9 [DependencyInjection] added a way to ignore errors when importing a non-existent file (useful when you want to include an optional service file) 2010-08-24 16:37:41 +02:00
Fabien Potencier
b1e79963b1 [DependencyInjection] moved extension loading in the freezing process (opens more possibilities in the loading order of configs) 2010-08-24 16:25:08 +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
7514177b51 [Templating] changed helpers from Engine properties to Engine array items
For instance, instead of $view->slots->output(...), you must now write $view['slots']->output(...)

This has been changed for two main reasons:

* To be consistent with the way we access services from the container ($container['mailer'])
* To allow better organization of helpers (names can now safely contain dots for instance -- $view['project.slots']->output(...),
  whereas before, you would have written $view->get('projects.slot') or $view->{'projects.slot'})
2010-08-19 15:52:47 +02:00
Fabien Potencier
955fd40dd8 moved Logger interfaces to a HttpKernel Log sub-namespace 2010-08-17 19:43:29 +02:00
Fabien Potencier
2a8a9cc0a3 moved KernelBundle logic to KernelExtension, and made test.xml decoupled from the error handler
The error_handler_level parameter (from kernel.config) has been renamed to error_handler (false to disable the error handler,
null to catch errors from error_reporting(), and a number to catch more/less errors than error_reporting())
2010-08-10 14:58:26 +02:00
Fabien Potencier
485400dd51 refactored the controller resolver (+ made a small routing optimization) 2010-08-09 15:21:59 +02:00
Fabien Potencier
ecea456c5b [Framework] removed old code 2010-08-09 14:47:19 +02:00
Fabien Potencier
355ed9b5f9 renamed annotation to tag in the DIC 2010-08-05 07:34:53 +02:00
Fabien Potencier
e35d345204 changed HttpKernel workflow to allow more flexibility 2010-07-22 22:32:11 +02:00
Fabien Potencier
3ec9005680 [Templating] fixed misnamed variable that caused some double-rendering problems 2010-07-21 23:05:31 +02:00
Fabien Potencier
7dc5ae3808 renamed request path property to request attributes 2010-07-21 22:49:49 +02:00
Jordi Boggiano
1e623469a9 [Form] Swap default textarea rows/cols values 2010-07-20 16:41:34 +02:00
Fabien Potencier
dcaf436d9a updated the framework to take into account the last changes of the DI component 2010-07-20 13:11:51 +02:00
Fabien Potencier
60c6827f23 [DependencyInjection] refactored loaders
* refactored the import mechanism for better flexibility
 * added two methods to LoaderInterface: supports() and setResolver()
 * added a LoaderResolver interface
 * added a Loader base class
 * added new loaders: DelegatingLoader, PhpFileLoader, and ClosureLoader
2010-07-20 13:11:51 +02:00
Fabien Potencier
14cecd5231 [Routing] refactored loaders
* refactored the import mechanism for better flexibility
 * added two methods to LoaderInterface: supports() and setResolver()
 * added a LoaderResolver interface
 * added a Loader base class
 * added new loaders: DelegatingLoader, ClosureLoader, and PhpFileLoader
 * changed the Router constructor signature (now takes a Loader)
2010-07-20 13:11:50 +02:00
Fabien Potencier
e6cbfd7292 [Console] changed CommandTester to allow testing Command classes without the need for an Application 2010-07-20 13:11:49 +02:00
Fabien Potencier
2a051b5039 moved DI extensions classes to their own sub-namespace 2010-07-16 11:12:49 +02:00
Fabien Potencier
47fd5e848b [DependencyInjection] fixed placeholder management in parameter values 2010-07-16 10:00:39 +02:00
Fabien Potencier
6bad58012f [DependencyInjection] moved ContainerBuilder::resolveValue() to ParameterBag 2010-07-15 20:15: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
44a16fc8c4 [Finder] fixed exclude iterator (now only match with the relative path) 2010-07-12 15:04:06 +02:00
Kris Wallsmith
3eec6b98fe [Framework] Fixed test namespaces. 2010-07-09 17:18:48 +02:00
Fabien Potencier
0fbb1b916b cleaned up the DI extension loading mechanism 2010-07-09 16:28:06 +02:00
Kris Wallsmith
fe7e01c653 [OutputEscaper] Added magic __isset() method to object escaper. 2010-07-09 06:35:20 -07:00
Kris Wallsmith
ab26f9f3bf [OutputEscaper] Moved __get() from Escaper to ObjectEscaper. 2010-07-09 06:35:05 -07:00
Fabien Potencier
da9f36ca86 renamed Symfony\Foundation to Symfony\Framework
In existing applications, you need to updated the autoload.php file, the
XXXKernel file and all XXXBundle classes.
2010-07-09 10:25:54 +02:00
Fabien Potencier
9133b9e5e4 moved Request/Response/User classes to a new HttpFoundation component
The HttpFoundation component holds classes that wrap PHP native global arrays.

The following classes has been moved:

 * Symfony\Components\HttpKernel\Response -> Symfony\Components\HttpFoundation\Response
 * Symfony\Components\HttpKernel\Request -> Symfony\Components\HttpFoundation\Request
 * Symfony\Framework\FoundationBundle\User ->  Symfony\Components\HttpFoundation\Session
 * Symfony\Framework\FoundationBundle\Session\* ->  Symfony\Components\HttpFoundation\SessionStorage\*Storage

The web:user DI configuration has been moved to kernel:session.

The user helper has been renamed to session.
2010-07-09 09:26:22 +02:00
Kris Wallsmith
e63ff6e04b [DependencyInjection] fixed conversion of DOM to array when DOM includes multiple elements with the same name 2010-07-08 18:49:45 +02:00
Nicolas Fabre
6613555059 [DomCrawler] Fixed Form::getUri() and Link::getUri() issue if the form action attribute is an absolute url 2010-07-07 15:35:55 +02:00
Brandon Turner
4b24544cda Added ability to disable Symfony's error handler.
PHPUnit has built in support for testing if PHP errors are thrown by
looking for special exception classes:
  PHPUnit_Framework_Error
  PHPUnit_Framework_Warning
  PHPUnit_Framework_Notice

This support is only enabled if no other error handlers are registered.
The Symfony kernel registers an error handler by default, thus disabling
PHPUnit's special PHP error exceptions if the kernel has been booted.

This commit adds support for a new configuration parameter,
error_handler.enable, which can prevent the Symfony error handler from
registering if set to false.

After this commit, by default the error handler will be disabled in the
test environment.  To enable it, add the following to your
config_test.yml:

parameters:
  error_handler.enable:  true
2010-07-06 22:31:29 -05:00
Fabien Potencier
8d067bac51 [DepedencyInjection] amended previous commit
* fixed coding standards
 * made class optional as it is not defined when using a factory service
 * renamed factory attributes in XML files, updated XSD
 * removed the factory-class as it does nothing more than the regular class attribute
 * moved usage of Reflection as 'class' is not defined when a factory-service is used
 * added more tests
 * fixed PHP dumper
2010-07-05 11:08:56 +02:00
Benjamin Eberlei
ef91396618 [DependencyInjection] Add factory-class and factory-service concepts to DI Definition. A factory-class is a class-name for the static creation method of a service. A factory-service is the service object that has a factory method to construct a given service. Added tests. Changed Xml, Yaml Dumper and Loaders, PHP Dumper, aswell as the Runtime Builder Container. Graphviz changes missing! 2010-07-05 11:08:36 +02:00
Fabien Potencier
27458b653e [DependencyInjection] removed @property annotations as services are not available as properties anymore 2010-07-05 11:08:27 +02:00
Fabien Potencier
4bbf2ae055 [DependencyInjection] renamed constructor to factory method (like in Spring) 2010-07-05 09:47:47 +02:00
Fabien Potencier
a9ad743006 [DependencyInjection] changed the main services.xsd to be more strict (the validation was basically disabled because of ##any) 2010-07-05 09:14:02 +02:00
Fabien Potencier
72254b9569 [Validator] fixed a typo 2010-07-04 18:43:33 +02:00
avalanche123
f2c4f20e70 [Validator] added support for '0' as default constraint option value 2010-07-04 18:10:54 +02:00
Bernhard Schussek
8c9f9de086 [Validator] Added support for metadata caching 2010-07-04 17:31:01 +02:00
Bernhard Schussek
1c7b459776 [Form] Fields with the name '0' are now possible 2010-07-04 17:03:03 +02:00
Bernhard Schussek
34dd0ea25b [Form] Fixed: Objects are stored in the form before calling configure() 2010-07-04 16:20:10 +02:00
Bernhard Schussek
fd3243a943 [Finder] Fixed Finder tests without explicit sorting across different operating systems 2010-07-04 15:42:21 +02:00
Bernhard Schussek
f6b9d9e046 [Validator] Made all metadata classes serializable 2010-07-02 08:36:02 +02:00
Bernhard Schussek
a747987625 [Validator] Custom built constraints can now be used in the loaders 2010-07-02 08:36:02 +02:00
Fabien Potencier
13781b4441 [Console] fixed unit tests 2010-07-01 20:19:54 +02:00
Fabien Potencier
6ba48ff8c1 simplified bootstrap.php 2010-06-30 10:29:27 +02:00
Fabien Potencier
04e621a5cd [Yaml] added support for the end of document marker 2010-06-29 17:51:05 +02:00
Fabien Potencier
1cd5939e9a [Yaml] refactored tests 2010-06-29 17:45:09 +02:00
Fabien Potencier
244c202a08 reorganized unit tests 2010-06-28 09:31:54 +02:00
Fabien Potencier
87ae06c8cb [Routing] refactored resources 2010-06-28 09:15:15 +02:00
Fabien Potencier
7dfa995784 [DependencyInjection] fixed tests 2010-06-28 09:14:33 +02:00
Fabien Potencier
1b9645b098 fixed typos 2010-06-28 08:31:22 +02:00
Fabien Potencier
e578dfdbec [DomCrawler] added some tests 2010-06-27 19:44:04 +02:00
Fabien Potencier
9895eaf3cb refactored DIC 2010-06-27 19:21:18 +02:00
Fabien Potencier
c98c7339f1 removed the inclusion of bootstrap.php as this is not needed 2010-06-27 18:41:01 +02:00
Fabien Potencier
bd9f11f8f6 [DomCrawler] fixed API 2010-06-25 19:13:01 +02:00
Fabien Potencier
2722da2146 [DomCrawler] removed redundant methods 2010-06-25 18:39:38 +02:00
Fabien Potencier
a26bdb7723 [DomCrawler] removed the isEmpty() method 2010-06-25 17:58:29 +02:00
Bernhard Schussek
ca3dc31057 Decoupled Form component from intl extension 2010-06-24 11:40:52 +02:00
Bernhard Schussek
bcd4b6d140 Adapted Form, Validator, File and I18N component to new coding standards 2010-06-24 11:27:11 +02:00
Bernhard Schussek
ee83847cec Added missing fixtures directory 2010-06-24 11:26:57 +02:00
Bernhard Schussek
6e310bd4ec Integrated Form, Validator, I18N and File component 2010-06-24 10:44:15 +02:00
Fabien Potencier
3eb554550b [Routing] added some unit tests 2010-06-24 08:46:50 +02:00
Fabien Potencier
785da59eb5 [HttpKernel] added the cache system 2010-06-23 22:25:49 +02:00
Fabien Potencier
97162cfeda refactored cookie management 2010-06-23 16:24:24 +02:00
Fabien Potencier
0e3b88a058 [DependencyInjection] fixed inheritence when using extensions 2010-06-22 17:27:49 +02:00
Fabien Potencier
dc18e54130 added some phpdoc 2010-06-16 15:45:20 +02:00
Fabien Potencier
fad8bd768c removed testers 2010-06-16 10:19:24 +02:00
Fabien Potencier
b057ef613f [DependencyInjection] changed the extension mechanism to allow an extension to be inherit and merge from an existing configuration 2010-06-07 09:24:13 +02:00
Fabien Potencier
a79ad894f9 added a way to run tests that depends on external libraries 2010-06-07 09:24:09 +02:00
Fabien Potencier
1a3790a636 [Foundation] normalized app name for use in a class name 2010-06-01 10:03:50 +02:00
Fabien Potencier
360f79f3a1 [Finder] refactored directory depth management 2010-05-21 13:22:34 +02:00
Fabien Potencier
9426f820a7 [Finder] refactored size and date comparators 2010-05-21 12:50:13 +02:00
Fabien Potencier
46a8a1752f [Templating] removed CompilableLoaderInterface and fixed unit tests 2010-05-20 20:57:25 +02:00
Jordi Boggiano
9ed3d0468e folded all curly brackets of control structures to conform to PEAR/ZF CS, part two 2010-05-09 09:15:22 +02:00
Jordi Boggiano
2684de0d8e Folded all curly brackets of control structures to conform to PEAR/ZF CS 2010-05-07 18:24:05 +02:00
Fabien Potencier
83c6d337e2 changed coding standards: indendation is now 4 spaces 2010-05-06 13:25:53 +02:00
Fabien Potencier
6328d514a3 renamed RequestHandler component to HttpKernel 2010-05-06 12:04:50 +02:00
Fabien Potencier
d41e33782a [WebBundle] added more tests to Mustache 2010-05-06 08:58:39 +02:00
Fabien Potencier
02858c4c3d [Finder] simplified LimitDepthFilterIterator 2010-05-04 13:05:18 +02:00
Fabien Potencier
aaeb48f744 [Finder] made the in() method fluent as others as Finder now implements the IteratorAggregate interface 2010-05-04 11:34:29 +02:00
Fabien Potencier
376ca78346 [Finder] replaced ChainIterator with PHP built-in AppendIterator 2010-05-04 11:07:25 +02:00
Fabien Potencier
284113e9b2 [RequestHandler] fixed typo 2010-05-03 12:19:08 +02:00
Fabien Potencier
606e44e491 [RequestHandler] added a bunch of HTTP cache related methods to the Response class 2010-05-03 11:47:01 +02:00
Fabien Potencier
c34da5d6c4 renamed RequestBag to ParameterBag, added HeaderBag, changed the Response to use the new HeaderBag, added a class to manage the Cache-Control header 2010-05-03 11:40:23 +02:00
pborreli
d9e4801a56 fixed framework name in tests 2010-04-26 14:09:21 +02:00
pborreli
7065957a30 replaced assertType by the new assertInstanceOf in unit tests 2010-04-26 14:07:38 +02:00
Fabien Potencier
f8e2c3b945 [BrowserKit] fixed test 2010-04-23 08:31:26 +02:00
Fabien Potencier
ab7adbff2b [BrowserKit] fixed cookie management 2010-04-22 07:22:44 +02:00
Fabien Potencier
20527a0a5b [BrowserKit] added a __toString() method to the Client to ease debugging 2010-04-21 13:28:59 +02:00
Fabien Potencier
1194520b83 [BrowserKit] added a way to automatically follow redirects 2010-04-21 13:17:50 +02:00
Fabien Potencier
fcda253a1b added full support for functional tests 2010-04-21 12:05:34 +02:00
Fabien Potencier
72fe9fa52f [Finder] added the component 2010-04-21 11:11:38 +02:00
Kris Wallsmith
c6f21e44a3 [WebBundle] Fixed issue in Mustache when a value is not provided for a token. 2010-04-21 07:52:33 +02:00
Katsuhiro OGAWA
9313e2607d [RequestHandler] Fixed missing variables in RequestBag 2010-04-21 07:50:19 +02:00
Fabien Potencier
25b1be725f [BrowserKit] fixed typo 2010-04-19 17:11:32 +02:00
Fabien Potencier
79b39157e2 [BrowserKit] added the component 2010-04-19 14:12:42 +02:00
Fabien Potencier
1c0a18d1b4 [DomCrawler] added Crawler::addContent() 2010-04-19 08:33:45 +02:00
Fabien Potencier
d6ee2b2513 [Console] fixed tests 2010-04-17 14:57:05 +02:00
Fabien Potencier
797327110b [DomCrawler] added the component 2010-04-15 14:41:42 +02:00
Fabien Potencier
13759a7fac [CssSelector] fixed XPathExpr::xpathliteral() 2010-04-15 11:53:23 +02:00
Sebastian Bergmann
264e5888f4 [DependencyInjection] changed some tests to use a data provider 2010-04-14 21:54:55 +02:00
Pascal Borreli
b9fe42238a modified tests to use better PHPUnit methods 2010-04-12 17:36:49 +02:00
Pascal Borreli
273b24e663 fixed typo 2010-04-12 17:23:34 +02:00
Pascal Borreli
7bb5cb4419 removing trailing whiteplaces 2010-04-12 17:23:15 +02:00
Pascal Borreli
8ffe328fe6 [Console] Full coverage of Command class 2010-04-09 07:43:35 +02:00