Use strstr instead of strpos
merged branch larowlan/master (PR #8081)

This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes #8081).

Discussion
----------

Use strstr instead of strpos in ClassLoader (4% perf improvement)

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

Using ClassLoader in Drupal 8, using strstr instead of strpos nets 4% perf improvement.
XHPROF diff https://dl.dropboxusercontent.com/u/10201421/diff.html

Commits
-------

25d7b90 [ClassLoader] Use strstr instead of strpos
[TwigBridge] Prevent code extension to display warning
[Validator] fixed the wrong isAbstract() check against the class (fixed #8589)
merged branch lyrixx/twig-code-ext-warning (PR #8721)

This PR was merged into the 2.2 branch.

Discussion
----------

[TwigBridge] Prevent code extension to display warning

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

During functional testing with phpunit and browserkit (and all their friends) when the application returns a `4XX` or a `5XX` response, symfony displays the trace with code context.

During a training, few people experienced a very weird issue with php 5.4, symfony 2.3.2, phpunit 3.7, Windows 7 or 8 and SensioLabsDesktop 0.5.

When they run functional  tests, and the application returns a `404`, in the "console" there was lot of warnings. It was something like that `Warning: Unexpected character in input:  '\' (ASCII=92) state=1 in /XXXXX on line 9` With the `@`, no more warnings.

I can't reproduce this issue on my computer (not windows). If needed, I can try to reproduce this bug on Monday at work.

Commits
-------

e8e76ec [TwigBridge] Prevent code extension to display warning
merged branch marcj/ticket_8589 (PR #8728)

This PR was merged into the 2.2 branch.

Discussion
----------

[Validator] Fixed the wrong isAbstract() call in PR #8592

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

Commits
-------

18896d5a [Validator] fixed the wrong isAbstract() check against the class (fixed #8589)
Fixed documentation grammar for AuthenticationManagerInterface::authenticate()
merged branch jaikdean/documentation-grammar (PR #8722)

This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes #8722).

Discussion
----------

Fixed documentation grammar for AuthenticationManagerInterface::authenticate()

Commits
-------

8306be2 Fixed documentation grammar for AuthenticationManagerInterface::authenticate()
[TwigBridge] removed superflous ; when rendering form_enctype() (closes #8660)
merged branch fabpot/form_enctype-fix (PR #8731)

This PR was merged into the 2.3 branch.

Discussion
----------

form_enctype() fix (closes #8660)

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

Commits
-------

572ba68 [TwigBridge] removed superflous ; when rendering form_enctype() (closes #8660)
[Process] Fix CS
[Process] Add failing test for #8739
[Process] Fix #8739
[Process] Avoid zombie process in case of unit tests failure
[Process] Add more precision to Process::stop timeout
corrected English grammar (s/does not exists/does not exist)
merged branch shieldo/grammar_fix (PR #8745)

This PR was merged into the 2.2 branch.

Discussion
----------

Grammar fix

Commits
-------

d74eaf9 corrected English grammar (s/does not exists/does not exist)
merged branch romainneutron/process-callbacks-2.2 (PR #8741)

This PR was merged into the 2.2 branch.

Discussion
----------

[Process][2.2] Fix #8739

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

This adds a fix to #8739. Whenever a call is done to to any non-blocking methods (`Process::isRunning`, `Process::isStopped`, `Process::isTerminated`, `Process::getStatus`, `Process::getPid`...), buffers are read, and callback executed.

Such code will now work :

```
$process->start(function ($type, $data) {
    echo $data;
});

while ($process->isRunning()) {
    // some stuff
    // callback is executed
}
```

Commits
-------

fa769a2 [Process] Add more precision to Process::stop timeout
57d4159 [Process] Avoid zombie process in case of unit tests failure
3ef517b [Process] Fix #8739
7716fb2 [Process] Add failing test for #8739
bff6f3c [Process] Fix CS
Merge branch '2.2' into 2.3

* 2.2:
  corrected English grammar (s/does not exists/does not exist)
  [Process] Add more precision to Process::stop timeout
  [Process] Avoid zombie process in case of unit tests failure
  [Process] Fix #8739
  [Process] Add failing test for #8739
  [Process] Fix CS
  Fixed documentation grammar for AuthenticationManagerInterface::authenticate()
  [Validator] fixed the wrong isAbstract() check against the class (fixed #8589)
  [TwigBridge] Prevent code extension to display warning
  Use strstr instead of strpos

Conflicts:
	src/Symfony/Component/Finder/Shell/Command.php
	src/Symfony/Component/Process/Process.php
[Process] Fix #8742 : Signal-terminated processes are not successful