Commit Graph

22613 Commits

Author SHA1 Message Date
Fabien Potencier
9bbab98e39 minor #16109 [DomCrawler] Deprecated using /_root/ in XPath expressions (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[DomCrawler] Deprecated using /_root/ in XPath expressions

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

6042e86 [DomCrawler] Deprecated using /_root/ in XPath expressions
2015-10-05 09:11:02 +02:00
Tobias Schultze
aa494d8df3 Merge branch '2.7' into 2.8 2015-10-04 17:55:43 +02:00
Tobias Schultze
d1f50c5dee bug #16092 [Process] Throw exception if tempnam returns false (pierredup)
This PR was merged into the 2.7 branch.

Discussion
----------

[Process] Throw exception if tempnam returns false

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15215
| License       | MIT
| Doc PR        |

Commits
-------

cc854e6 Throw exception if tempnam returns false
2015-10-04 17:54:32 +02:00
Tobias Schultze
3e019c42ab Merge branch '2.3' into 2.7
Conflicts:
	src/Symfony/Component/Process/ProcessPipes.php
2015-10-04 17:52:32 +02:00
Tobias Schultze
af2768c2d1 bug #16111 Throw exception if tempnam returns false in ProcessPipes (pierredup)
This PR was merged into the 2.3 branch.

Discussion
----------

Throw exception if tempnam returns false in ProcessPipes

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15215
| License       | MIT
| Doc PR        |

Related to #16092

Commits
-------

1425b8a Throw exception if tempnam returns false in ProcessPipes
2015-10-04 17:49:48 +02:00
Pierre du Plessis
1425b8adb0 Throw exception if tempnam returns false in ProcessPipes 2015-10-04 17:41:50 +02:00
Nicolas Grekas
6042e86de4 [DomCrawler] Deprecated using /_root/ in XPath expressions 2015-10-04 15:52:56 +02:00
Fabien Potencier
c9e938cfea bug #16101 [Form] add missing deprecation triggers (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Form] add missing deprecation triggers

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #15767
| License       | MIT
| Doc PR        |

Passing implementations of the pre 2.5 validator API to the constructors
of the `ValidatorExtension` and the `ValidationListener` must trigger a
deprecation.

Commits
-------

bcd3946 [Form] add missing deprecation triggers
2015-10-04 10:49:04 +02:00
Christian Flothmann
bcd3946726 [Form] add missing deprecation triggers
Passing implementations of the pre 2.5 validator API to the constructors
of the `ValidatorExtension` and the `ValidationListener` must trigger a
deprecation.
2015-10-04 09:34:07 +02:00
Pierre du Plessis
cc854e6d23 Throw exception if tempnam returns false 2015-10-03 22:13:32 +02:00
Tobias Schultze
cdbabb0baa Merge branch '2.7' into 2.8 2015-10-03 18:42:07 +02:00
Tobias Schultze
8e3a4223a2 Merge branch '2.3' into 2.7
Conflicts:
	src/Symfony/Component/Form/Extension/HttpFoundation/EventListener/BindRequestListener.php
2015-10-03 18:41:23 +02:00
Fabien Potencier
478ad543b7 feature #15613 [DependencyInjection] Add autowiring capabilities (dunglas)
This PR was squashed before being merged into the 2.8 branch (closes #15613).

Discussion
----------

[DependencyInjection] Add autowiring capabilities

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | not yet

This PR adds autowiring capabilities to the Dependency Injection component. It eases service registration by letting the component guessing dependencies to inject and even (under certain conditions) registering them using typehints of the constructor parameters.

The following usages are supported:

# Automatic dependency registration

```php
class Foo
{
}

class Bar
{
    public function __construct(Foo $f)
    {
    }
}
```

```yaml
services:
    bar:
        class: Bar
        autowire: true
```

It will register `Foo` as a private service (`autowired.foo`) and injects it as the first argument of the `bar` constructor.
This method works only for typehints corresponding to instantiable classes (interfaces and abstract classes are not supported).

# Autocompletion of definition arguments

```php
interface A
{
}

interface B extends A
{
}

class Foo implements B
{
}

class Bar
{
}

class Baz extends Bar
{
}

class LesTilleuls
{
    public function __construct(A $a, Bar $bar)
    {
    }
}
```

```yaml
services:
    foo:
        class: Foo

    baz:
        class: Baz

    les_tilleuls:
        class: LesTilleuls
        autowire: true
```

The autowiring system will find types of all services and completes constructor arguments of the `les_tilleuls` service definition using typehints.

It works only if there is one service registered for a given type (if there are several services available for the same type and no explicit type definition, a `RuntimeException` is thrown).

# Explicit type definition

```php
interface A
{
}

class A1 implements A
{
}

class A2 implements A
{
}

class B
{
     public function __construct(A $a)
     {
     }
}
```

```yaml
services:
    a1:
        class: A1
        types: [ A ]

    a2:
        class: A2

    # Will be autowired with A1
    class b:
        class: B
        autowire: true

    # Not autowired
    class another_b:
        class: B
        arguments: [ @a2 ]
        autowire: true
```

When a service is explicitly associated with a type, it is always used to fill a definition depending of this type, even if several services have this type. If several services are associated with the same type, the last definition takes the priority.

Of course explicit definitions are still supported.
YAML, XML and PHP loaders have been updated to supports the new `type` parameter.

Commits
-------

aee5731 [DependencyInjection] Add autowiring capabilities
2015-10-03 08:39:10 +02:00
Kévin Dunglas
aee57315c5 [DependencyInjection] Add autowiring capabilities 2015-10-03 08:39:08 +02:00
Fabien Potencier
ad2e85eac8 minor #16091 [Form] remove obsolete deprecation comments (Tobion)
This PR was merged into the 2.3 branch.

Discussion
----------

[Form] remove obsolete deprecation comments

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

These comments are obsolete and wrong.

Commits
-------

dd50645 [Form] remove obsolete deprecation comments
2015-10-03 08:25:54 +02:00
Fabien Potencier
da92c1087d minor #16093 Add a few additional tests for the Crawler (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Add a few additional tests for the Crawler

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

While looking at the update of the Crawler in #16075, I spotted a few mistakes. But these were cases not covered by the testsuite. This is adding tests for these cases in the 2.8 branch (they could be added in 2.3 eventually though).

Commits
-------

528d3bd Add a few additional tests for the Crawler
2015-10-03 08:20:57 +02:00
Fabien Potencier
2e386b3ca1 bug #16087 Fixing typo in variable name (yceruto)
This PR was submitted for the 2.8 branch but it was merged into the 2.7 branch instead (closes #16087).

Discussion
----------

Fixing typo in variable name

```php
foreach ($reflectionClass->getProperties() as $property) {
    if (!isset($attributeMetadata[$property->name])) {
        $attributesMetadata[$property->name] = new AttributeMetadata($property->name);
        $classMetadata->addAttributeMetadata($attributesMetadata[$property->name]);
    }

    if ($property->getDeclaringClass()->name === $className) {
        foreach ($this->reader->getPropertyAnnotations($property) as $groups) {
            if ($groups instanceof Groups) {
                foreach ($groups->getGroups() as $group) {
                    $attributesMetadata[$property->name]->addGroup($group);
                }
            }

            $loaded = true;
        }
    }
}
```

This `$attributeMetadata` does not exists in this `foreach` context and the goal of this condition could be unexpected.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none

Commits
-------

89499ff Fixing typo in variable name
2015-10-03 08:19:38 +02:00
Yonel Ceruto González
89499ff9e1 Fixing typo in variable name
This condition is always `true` because `$attributesMetadata` does not exists in this `foreach` context and could overwrite values in the `$attributesMetadata` variable.
2015-10-03 08:19:37 +02:00
Christophe Coevoet
528d3bd153 Add a few additional tests for the Crawler 2015-10-03 01:29:51 +02:00
Tobias Schultze
dd5064578e [Form] remove obsolete deprecation comments 2015-10-03 00:55:12 +02:00
Fabien Potencier
6acd43d45f minor #16085 [Debug] Deprecate providing $fileLinkFormat as second argument (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[Debug] Deprecate providing $fileLinkFormat as second argument

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

ed3611d [Debug] Deprecate providing $fileLinkFormat as second argument
2015-10-02 19:35:32 +02:00
Fabien Potencier
98d9f26e79 minor #16082 Updated PHPDoc of the AbstractVoter class (Koc)
This PR was merged into the 2.8 branch.

Discussion
----------

Updated PHPDoc of the AbstractVoter class

| Q             | A
| ------------- | ---
| Bug fix?      |  PHPDoc bug
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

ref https://github.com/symfony/symfony/pull/16035/files#r41016746

Commits
-------

68d010a Updated PHPDoc of the AbstractVoter class
2015-10-02 18:42:52 +02:00
Fabien Potencier
513fc315d6 minor #16084 [Form] minor CS fix (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[Form] minor CS fix

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

c92809a [Form] minor CS fix
2015-10-02 18:41:44 +02:00
Fabien Potencier
2c9153c9c9 minor #15999 Updated the style of the event commands (javiereguiluz)
This PR was squashed before being merged into the 2.8 branch (closes #15999).

Discussion
----------

Updated the style of the event commands

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

![event_1](https://cloud.githubusercontent.com/assets/73419/10164747/a04d2188-66bb-11e5-975f-4c3246981ed9.png)

![event_2](https://cloud.githubusercontent.com/assets/73419/10164749/a245f96a-66bb-11e5-99b0-d6f2814e1e9b.png)

![event_3](https://cloud.githubusercontent.com/assets/73419/10164752/a4a4880c-66bb-11e5-9595-4fc14f33b871.png)

Commits
-------

6633cac Updated the style of the event commands
2015-10-02 18:40:56 +02:00
Javier Eguiluz
6633cac4e7 Updated the style of the event commands 2015-10-02 18:40:54 +02:00
Nicolas Grekas
ed3611da25 [Debug] Deprecate providing $fileLinkFormat as second argument 2015-10-02 18:37:57 +02:00
Nicolas Grekas
c92809a1fd [Form] minor CS fix 2015-10-02 18:35:24 +02:00
Konstantin Myakshin
68d010aaff Updated PHPDoc of the AbstractVoter class 2015-10-02 18:38:39 +03:00
Fabien Potencier
1805649181 Merge branch '2.7' into 2.8
* 2.7:
  use PHP_OS instead of php_uname('s')
2015-10-02 16:08:20 +02:00
Fabien Potencier
fdce6ac104 Merge branch '2.3' into 2.7
* 2.3:
  use PHP_OS instead of php_uname('s')
2015-10-02 15:59:42 +02:00
Fabien Potencier
112c66c944 minor #15991 Updated the stlyes of the YAML commands (javiereguiluz)
This PR was squashed before being merged into the 2.8 branch (closes #15991).

Discussion
----------

Updated the stlyes of the YAML commands

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

![yaml_1](https://cloud.githubusercontent.com/assets/73419/10158656/dfedd2ec-6693-11e5-8691-304b5dd19edc.png)

![yaml_2](https://cloud.githubusercontent.com/assets/73419/10158658/e22e1bfc-6693-11e5-9626-38f21ffb5a9a.png)

Commits
-------

c3ce7ca Updated the stlyes of the YAML commands
2015-10-02 15:03:18 +02:00
Javier Eguiluz
c3ce7ca141 Updated the stlyes of the YAML commands 2015-10-02 15:03:16 +02:00
Fabien Potencier
1e0adf4c21 feature #14721 [Security] Configuring a user checker per firewall (iltar)
This PR was squashed before being merged into the 2.8 branch (closes #14721).

Discussion
----------

[Security] Configuring a user checker per firewall

_Changed my base branch to avoid issues, closed old PR_

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed ticket | #11090 and helps #14673
| License       | MIT
| Doc PR        | symfony/symfony-docs/pull/5530

This pull request adds support for a configurable user checker per firewall. An example could be:

```yml
services:
    app.user_checker:
        class: App\Security\UserChecker
        arguments:
            - "@request_stack"

security:
    firewalls:
        secured_area:
            pattern: ^/
            anonymous: ~
            basic_auth: ~
            user_checker: app.user_checker

```
The above example will use the `UserChecker` defined as `app.user_checker`. If the `user_checker` option is left empty, `security.user_checker` will  be used. If the `user_checkers` option is not defined, it will fall back to the original behavior to not break backwards compatibility and will validate using the existing `UserChecker`: `security.user_checker`.

I left the default argument in the service definitions to be `security.user_checker` to include backwards compatibility for people who for some reason don't have the extension executed. You can obtain the checker for a specific firewall by appending the firewall name to it. For the firewall `secured_area`, this would be `security.user_checker.secured_area`.

Commits
-------

76bc662 [Security] Configuring a user checker per firewall
2015-10-02 14:49:38 +02:00
Iltar van der Berg
76bc662463 [Security] Configuring a user checker per firewall 2015-10-02 14:49:36 +02:00
Fabien Potencier
8879a5fa9a bug #16053 [Console] use PHP_OS instead of php_uname('s') (xabbuh)
This PR was merged into the 2.3 branch.

Discussion
----------

[Console] use PHP_OS instead of php_uname('s')

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15058
| License       | MIT
| Doc PR        |

The php_uname() function may be disabled for security reasons.

Commits
-------

40e0dc8 use PHP_OS instead of php_uname('s')
2015-10-02 14:47:06 +02:00
Fabien Potencier
cddc6b9532 minor #16068 [PropertyInfo] Test behavior when an extractor returns null (dunglas)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo] Test behavior when an extractor returns null

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #16064
| License       | MIT
| Doc PR        | n/a

Add a test as suggested by @stof in https://github.com/symfony/symfony/pull/16064#issuecomment-144975004

Commits
-------

73ee226 [PropertyInfo] Test behavior when an extractor return null.
2015-10-02 14:45:01 +02:00
Fabien Potencier
f4a2752f9a Merge branch '2.7' into 2.8
* 2.7:
  [Yaml] Add regression test for comments indents
  Revert "bug #15860 [Yaml] Fix improper comments removal (ogizanagi)"
2015-10-02 14:38:01 +02:00
Fabien Potencier
34c8a7c51c Merge branch '2.3' into 2.7
* 2.3:
  [Yaml] Add regression test for comments indents
  Revert "bug #15860 [Yaml] Fix improper comments removal (ogizanagi)"
2015-10-02 14:36:41 +02:00
Fabien Potencier
351bccbffb minor #16074 [Yaml] Add regression test for comments indents (ogizanagi)
This PR was merged into the 2.3 branch.

Discussion
----------

[Yaml] Add regression test for comments indents

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This is related to #16065, #15857 and #15860  (last one has been reverted due to this regression)

Commits
-------

7b9d519 [Yaml] Add regression test for comments indents
2015-10-02 14:33:33 +02:00
Fabien Potencier
a6d5c3305c minor #16073 Fix the DomCrawler tests (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Fix the DomCrawler tests

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

This fixes the tests by applying changes from #16057 and #16058 in the right order in ``addNode``

Commits
-------

e6feed2 Fix the DomCrawler tests
2015-10-02 14:32:10 +02:00
maxime.steinhausser
7b9d519b0f [Yaml] Add regression test for comments indents 2015-10-02 14:20:54 +02:00
Christophe Coevoet
e6feed285a Fix the DomCrawler tests 2015-10-02 14:05:56 +02:00
Fabien Potencier
584cfc24a1 feature #16069 [WebProfilerBundle] Move AjaxCollector to HttpKernel for use with Silex (glaubinix, fabpot)
This PR was merged into the 2.8 branch.

Discussion
----------

[WebProfilerBundle] Move AjaxCollector to HttpKernel for use with Silex

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This PR moves the AjaxDataCollector from the FrameworkBundle to the HttpKernel Component where most of the other DataCollectors are. This would allow applications which are not base on symfony/framework-bundle to use the collector. Like for instance applications based on silex or symfony components.

Commits
-------

3841f46 added missing a deprecated notice
c227806 Move AjaxCollector for use without framework bundle
2015-10-02 13:25:03 +02:00
Fabien Potencier
6413fb7743 feature #16063 [VarDumper] Add $this->getDump($var) when using VarDumperTestTrait (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[VarDumper] Add $this->getDump($var) when using VarDumperTestTrait

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

So useful when writing/updating dump fixtures!

Commits
-------

aa1d578 [VarDumper] Add $this->getDump($var) when using VarDumperTestTrait
2015-10-02 12:42:43 +02:00
Fabien Potencier
9e60980f5a feature #16058 Prevent adding non-DOMElement elements in DomCrawler (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Prevent adding non-DOMElement elements in DomCrawler

| Q             | A
| ------------- | ---
| Bug fix?      | kind of
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Many methods of the DomCrawler component are relying on the DOMElement API, not only on the DOMNode API. All the typehints in the Form and Link APIs were already fixed in 2.5 because they are unusable with other kinds of nodes (fatal errors). However, the Crawler itself was not fixed. and this means that a bunch of its APIs can trigger fatal errors when passing other kinds of nodes.

Thus, there is a case where the code was allowing such nodes to be injected in the Crawler for some XPath queries. I fixed it to avoid it, adding the same kind of filtering than in other places.

Commits
-------

9f362a1 Prevent adding non-DOMElement elements in DomCrawler
2015-10-02 12:40:27 +02:00
Fabien Potencier
4af8a5545a feature #16057 Deprecate loading multiple documents in the same crawler (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Deprecate loading multiple documents in the same crawler

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #15849
| License       | MIT
| Doc PR        | n/a

Note that loading multiple documents in the same crawler already creates weird things when working with namespaces (the list of mapping of aliases to namespaces is shared between documents, which was flawed).

As said in the issue, this opens the door to optimizations in the future (sharing the DOMXpath instance for instance, including with subcrawler)

Commits
-------

0d1cb3b Deprecate loading multiple documents in the same crawler
2015-10-02 12:39:30 +02:00
Fabien Potencier
3841f4624d added missing a deprecated notice 2015-10-02 12:23:49 +02:00
Stephan Vock
c2278062b1 Move AjaxCollector for use without framework bundle 2015-10-02 12:20:34 +02:00
Kévin Dunglas
73ee226a1f [PropertyInfo] Test behavior when an extractor return null. 2015-10-02 12:16:37 +02:00
Fabien Potencier
510fdea599 Revert "bug #15860 [Yaml] Fix improper comments removal (ogizanagi)"
This reverts commit 150f52f3aa, reversing
changes made to 74af02a771.
2015-10-02 12:12:23 +02:00