Commit Graph

470 Commits

Author SHA1 Message Date
Fabien Potencier
544e43f5e2 bug #10763 [Process] Disable TTY mode on Windows platform (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Disable TTY mode on Windows platform

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

Commits
-------

7942c2a [Process] Disable TTY mode on Windows platform
2014-04-24 15:28:08 +02:00
Romain Neutron
7942c2a64c [Process] Disable TTY mode on Windows platform 2014-04-24 14:53:00 +02:00
Fabien Potencier
6658989fb8 Merge branch '2.4'
* 2.4:
  fix docblock
  Fixed incompatibility of x509 auth with nginx
  [Process] Setting STDIN while running should not be possible
  [Validator] slovenian translation updated
  [FrameworkBundle] improve English in RouterMatchCommand
  [Validator] Updated Hungarian translations
  [Doctrine Bridge] simplify session handler by using main connection
  [Validator] Fixed typos in German translation
  [Validator] Completed French translations
  [Validator] Completed German translations
  [Validator] Completed Luxembourgish translations
2014-04-22 10:11:23 +02:00
Fabien Potencier
0deaceb2ff Merge branch '2.3' into 2.4
* 2.3:
  fix docblock
  Fixed incompatibility of x509 auth with nginx
  [Process] Setting STDIN while running should not be possible
  [FrameworkBundle] improve English in RouterMatchCommand
  [Doctrine Bridge] simplify session handler by using main connection

Conflicts:
	src/Symfony/Component/Process/Tests/AbstractProcessTest.php
2014-04-22 10:11:06 +02:00
Romain Neutron
3e3517abfd [Process] Setting STDIN while running should not be possible 2014-04-21 23:11:42 +02:00
Fabien Potencier
df3d543349 Merge branch '2.4'
* 2.4:
  made types consistent with those defined in Hack
  made {@inheritdoc} annotations consistent across the board
  made {@inheritdoc} annotations consistent across the board
  fixed types in phpdocs
  [Debug] Fixed ClassNotFoundFatalErrorHandler on windows.
  made phpdoc types consistent with those defined in Hack
  Add support Thai translations
  [Validator] Add missing czech translations
  made types consistent with those defined in Hack
  removed extra/unsupported arguments
  [HttpKernel] fixed an error message
  [TwigBundle] removed undefined argument
  [Translation] Make IcuDatFileLoader/IcuResFileLoader::load invalid resource compatible with HHVM.

Conflicts:
	src/Symfony/Component/Console/Helper/TableHelper.php
	src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
	src/Symfony/Component/Form/FormError.php
	src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
	src/Symfony/Component/Process/ProcessPipes.php
	src/Symfony/Component/PropertyAccess/PropertyAccessor.php
	src/Symfony/Component/Security/Acl/Dbal/MutableAclProvider.php
	src/Symfony/Component/Security/Http/RememberMe/TokenBasedRememberMeServices.php
	src/Symfony/Component/Translation/Dumper/FileDumper.php
	src/Symfony/Component/Validator/ConstraintViolation.php
	src/Symfony/Component/Validator/Constraints/EmailValidator.php
	src/Symfony/Component/Validator/ExecutionContextInterface.php
	src/Symfony/Component/Validator/Mapping/BlackholeMetadataFactory.php
2014-04-16 10:08:40 +02:00
Fabien Potencier
29b6f6b3a0 Merge branch '2.3' into 2.4
* 2.3:
  made {@inheritdoc} annotations consistent across the board
  fixed types in phpdocs
  made phpdoc types consistent with those defined in Hack
  Add support Thai translations
  made types consistent with those defined in Hack
  removed extra/unsupported arguments
  [HttpKernel] fixed an error message
  [TwigBundle] removed undefined argument
  [Translation] Make IcuDatFileLoader/IcuResFileLoader::load invalid resource compatible with HHVM.

Conflicts:
	src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service.php
	src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php
	src/Symfony/Bundle/FrameworkBundle/Templating/Loader/FilesystemLoader.php
	src/Symfony/Bundle/WebProfilerBundle/EventListener/WebDebugToolbarListener.php
	src/Symfony/Component/Config/Definition/ReferenceDumper.php
	src/Symfony/Component/Console/Helper/DescriptorHelper.php
	src/Symfony/Component/Debug/ErrorHandler.php
	src/Symfony/Component/Finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
	src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php
	src/Symfony/Component/Form/Tests/Extension/Core/DataMapper/PropertyPathMapperTest.php
	src/Symfony/Component/HttpFoundation/Response.php
	src/Symfony/Component/HttpFoundation/StreamedResponse.php
	src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
	src/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php
	src/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
	src/Symfony/Component/HttpKernel/Fragment/RoutableFragmentRenderer.php
	src/Symfony/Component/HttpKernel/Kernel.php
	src/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
	src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php
	src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php
	src/Symfony/Component/Stopwatch/StopwatchPeriod.php
	src/Symfony/Component/Translation/TranslatorInterface.php
	src/Symfony/Component/Validator/ConstraintValidatorFactory.php
2014-04-16 10:02:57 +02:00
Fabien Potencier
3c9c10f3a0 made phpdoc types consistent with those defined in Hack 2014-04-15 07:41:45 +02:00
Romain Neutron
a42fbd7ade [Process] Fix Process test suite 2014-03-31 10:11:45 +02:00
Fabien Potencier
3baa43b44e Merge branch '2.4'
* 2.4: (52 commits)
  Fix #8205 : Deprecate file mode update when calling dumpFile
  Fix #10437: Catch exceptions when reloading a no-cache request
  Fix libxml_use_internal_errors and libxml_disable_entity_loader usage
  removed ini check to make uploadedfile work on gae
  Update OptionsResolver.php
  fixed comment in forms.xml file
  Clean KernelInterface docblocks
  Cast the group name as a string
  Fixed doc of InitAclCommand
  [Form] Fix "Array was modified outside object" in ResizeFormListener.
  Fix IBAN validator
  [Process] Remove unreachable code + avoid skipping tests in sigchild environment
  Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute
  Added travis_retry to .travis.yml
  [Process] fix some typos and refactor some code
  [Process] Fix unit tests in sigchild disabled environment
  [Process] Trow exceptions in case a Process method is supposed to be called after termination
  fixed typo
  [Process] fixed fatal errors in getOutput and getErrorOutput when process was not started
  [Process] Fix escaping on Windows
  ...

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Command/ServerRunCommand.php
	src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php
	src/Symfony/Component/Process/Process.php
	src/Symfony/Component/Process/ProcessPipes.php
	src/Symfony/Component/Process/Tests/AbstractProcessTest.php
2014-03-26 12:51:10 +01:00
Fabien Potencier
ab42e9cbc4 Merge branch '2.3' into 2.4
* 2.3: (34 commits)
  Fix #8205 : Deprecate file mode update when calling dumpFile
  Fix #10437: Catch exceptions when reloading a no-cache request
  Fix libxml_use_internal_errors and libxml_disable_entity_loader usage
  removed ini check to make uploadedfile work on gae
  Update OptionsResolver.php
  fixed comment in forms.xml file
  Clean KernelInterface docblocks
  Cast the group name as a string
  Fixed doc of InitAclCommand
  [Form] Fix "Array was modified outside object" in ResizeFormListener.
  Fix IBAN validator
  [Process] Remove unreachable code + avoid skipping tests in sigchild environment
  Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute
  Added travis_retry to .travis.yml
  [Process] fix some typos and refactor some code
  [Process] Fix unit tests in sigchild disabled environment
  [Process] Trow exceptions in case a Process method is supposed to be called after termination
  fixed typo
  [Process] fixed fatal errors in getOutput and getErrorOutput when process was not started
  [Process] Fix escaping on Windows
  ...

Conflicts:
	src/Symfony/Component/DomCrawler/Crawler.php
	src/Symfony/Component/Filesystem/Filesystem.php
	src/Symfony/Component/Process/Process.php
2014-03-26 12:35:33 +01:00
Baptiste Clavié
849703a784 When a process fails, check if the output is enabled
With the recent addition of the ability to disable the output, it was
not taken into account within the `ProcessFailedException`.

So, if the output was indeed disabled, and the process returns an
error (i.e via a `mustRun`) we could have another LogicException which
is not expected.
2014-03-25 23:03:32 +01:00
Fabien Potencier
c29b4214b6 minor #10492 [2.3][Process] Remove unreachable code + avoid skipping tests in sigchild environment (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[2.3][Process] Remove unreachable code + avoid skipping tests in sigchild environment

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

As mentioned by @Tobion in https://github.com/symfony/symfony/pull/10480#issuecomment-38002910, I removed the dead code. I also fixed/updated the test suite on PHP compiled with `--enable-sigchild`.

Commits
-------

d52dd32 [Process] Remove unreachable code + avoid skipping tests in sigchild environment
2014-03-19 16:52:49 +01:00
Romain Neutron
d52dd32bad [Process] Remove unreachable code + avoid skipping tests in sigchild environment 2014-03-19 14:56:52 +01:00
Fabien Potencier
1e9e8afa5d bug #10479 [2.3][Process] Fix escaping on Windows (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[2.3][Process] Fix escaping on Windows

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

Windows escaping is broken since the last merges.

After digging more on Windows escaping, I realised some things:
 - We forbid environment variable expansion by escaping `%APPDATA%` to `^%"APPDATA"^%`
 - We explicitly ask for variable expansion at runtime (running the command line with the [`/V:ON`](https://github.com/symfony/symfony/blob/2.3/src/Symfony/Component/Process/Process.php#L235) flag). Running a command containing `!APPDATA!` will be escaped and expanded (our previous rule is easily overriden)
 - On platform that are not windows, we use strong escaping that prevents any variable expansion (`$PATH` will be escaped to `'$PATH'` that is not interpreted as the current PATH)

We have three possibilities:
 - Keep this behavior as this.
 - Prefer a consistent API and use a strong escaping strategy everywhere, but it would result in a BC break (see #8975).
 - Allow environment variable expansion and escape `%APPDATA%` to `"%APPDATA%"`

Any thoughts about this ?

Commits
-------

0f65f90 [Process] Fix escaping on Windows
2014-03-19 07:22:00 +01:00
Romain Neutron
5f6ee1205a [Process] Fix unit tests in sigchild disabled environment 2014-03-18 19:09:01 +01:00
Fabien Potencier
c57fbdad25 bug #10480 [Process] Fixed fatal errors in getOutput and getErrorOutput when process was not started (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Fixed fatal errors in getOutput and getErrorOutput when process was not started

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

This PR replaces #9452 and address the latest changes.
Side note : I've not updated `getExitCode`, `getExitCodeText` and `isSuccessful` as they were explicitly tested to return null in case the process is not started or terminated. I think it would be a BC break to do that.

Commits
-------

449fe01 [Process] Trow exceptions in case a Process method is supposed to be called after termination
0ae6858 [Process] fixed fatal errors in getOutput and getErrorOutput when process was not started
2014-03-18 19:00:11 +01:00
Romain Neutron
449fe01992 [Process] Trow exceptions in case a Process method is supposed to be called after termination 2014-03-18 18:34:51 +01:00
Max Voloshin
0ae685878c [Process] fixed fatal errors in getOutput and getErrorOutput when process was not started 2014-03-18 15:14:03 +01:00
Romain Neutron
0f65f90b06 [Process] Fix escaping on Windows
Windows escaping is broken since the last merges.
2014-03-18 15:00:41 +01:00
Romain Neutron
1f5bf324fe [Process] Make Process::start non-blocking on Windows platform 2014-03-18 10:55:01 +01:00
Romain Neutron
783e377eed [Process] Avoid failures because of slow IOs
See example of failure here https://travis-ci.org/symfony/symfony/jobs/20701462
2014-03-14 19:58:01 +01:00
Romain Neutron
ae8481038e [Process] Increase tests speed 2014-03-14 19:46:29 +01:00
Romain Neutron
40c08c640e [Process] Handle idle timeout and disable output conflict 2014-03-14 19:08:20 +01:00
Romain Neutron
238565e93a [Process] Avoid failure because of a slow process
See example of failure here https://travis-ci.org/symfony/symfony/jobs/20761834.
2014-03-14 18:34:18 +01:00
Romain Neutron
de681cbf5c [Process] Add tests on ProcessUtils::escapeArgument 2014-03-14 10:50:34 +01:00
Fabien Potencier
1d19ca2395 Merge branch '2.3' into 2.4
* 2.3:
  [Config] made a condition more explicit
  convertDomElementToArray should handle zero values
  prefixed http:// to url output on server:run command in order to make it clickable
  Fixed data in pipe being truncated if not read before process termination
2014-03-13 06:40:32 +01:00
Fabien Potencier
3d0913464d bug #10153 [Process] Fixed data in pipe being truncated if not read before process termination (astephens25)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Fixed data in pipe being truncated if not read before process termination

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

This is a repeat of the botched pull request #9630.

Commits
-------

7e51913 Fixed data in pipe being truncated if not read before process termination
2014-03-12 19:39:04 +01:00
Fabien Potencier
126b97a8a3 minor #10424 [2.4][Process] Fix some unit tests that create the process object instead of delegate it to the implementation (romainneutron)
This PR was merged into the 2.4 branch.

Discussion
----------

[2.4][Process] Fix some unit tests that create the process object instead of delegate it to the implementation

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

This follows #10421 in branch 2.4

Commits
-------

741a8c1 [Process] Fix some unit tests that create the process object instead of delegate it to the implementation
2014-03-12 19:30:12 +01:00
Fabien Potencier
76fbd89e02 Merge branch '2.3' into 2.4
* 2.3:
  [Process] Fix #9160 : escaping an argument with a trailing backslash on windows fails
  [Process] Fix some unit tests that create the process object instead of delegate it to the implementation
  [Process] Make process tests more accurate on exception messages
  [Process] Fix process status in TTY mode
  [Process] Use assertSame instead of assertEquals to avoid comparison against `null`
  [HttpFoundation] added some unit tests
  10158 get vary multiple
  made Cookie stringification more robust
  [Yaml] fix for a HHVM bug
2014-03-12 19:29:58 +01:00
Romain Neutron
10e903aa5d [Process] Fix #9160 : escaping an argument with a trailing backslash on windows fails 2014-03-12 15:47:04 +01:00
Aaron Stephens
7e5191375b Fixed data in pipe being truncated if not read before process termination 2014-03-12 11:51:01 +00:00
Romain Neutron
a891e14d11 [Process] Add Process::disableOutput and Process::enableOutput methods 2014-03-12 12:02:04 +01:00
Romain Neutron
741a8c1184 [Process] Fix some unit tests that create the process object instead of delegate it to the implementation
This is the patch for version 2.4
2014-03-11 18:38:12 +01:00
Romain Neutron
227b85bc27 [Process] Fix some unit tests that create the process object instead of delegate it to the implementation 2014-03-11 18:33:11 +01:00
Romain Neutron
1b1768aced [Process] Make process tests more accurate on exception messages 2014-03-11 17:00:25 +01:00
Fabien Potencier
0738f8387d bug #10412 [Process] Fix process status in TTY mode (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Fix process status in TTY mode

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

When running a process with TTY mode, status in automatically set to `terminated`
once it's started.

It's wrong for two reasons :
 - The status of the process is not yet terminated.
 - The exitcode value is never caught

Commits
-------

51c70f8 [Process] Fix process status in TTY mode
2014-03-10 20:57:38 +01:00
Romain Neutron
51c70f85dd [Process] Fix process status in TTY mode
When running a process with TTY mode, status in automatically set to `terminated`
once it's started.

It's wrong for two reasons :
 - The status of the process is not yet terminated.
 - The exitcode value is never caught
2014-03-10 19:08:27 +01:00
Romain Neutron
d66f63f2b8 [Process] Use assertSame instead of assertEquals to avoid comparison against null 2014-03-10 19:06:36 +01:00
Fabien Potencier
f828aee7f7 Merge branch '2.4'
* 2.4:
  fixed various inconsistencies
  reduced recursion when building DumperPrefixCollection
  renamed variables - making next change more readable
  removing dead code.
  [ExpressionLanguage] added some tests for the built-in constant() function
  [ExpressionLanguage] added some documentation about functions
  [DomCrawler] Fixed filterXPath() chaining
  [DomCrawler] Fixed incorrect handling of image inputs
2014-02-11 14:52:21 +01:00
Fabien Potencier
e2ac5dfc78 Merge branch '2.3' into 2.4
* 2.3:
  fixed various inconsistencies
  reduced recursion when building DumperPrefixCollection
  renamed variables - making next change more readable
  removing dead code.
  [DomCrawler] Fixed filterXPath() chaining
  [DomCrawler] Fixed incorrect handling of image inputs

Conflicts:
	src/Symfony/Component/DomCrawler/Crawler.php
	src/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
	src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php
	src/Symfony/Component/Serializer/Tests/Normalizer/CustomNormalizerTest.php
	src/Symfony/Component/Templating/Tests/Loader/CacheLoaderTest.php
	src/Symfony/Component/Templating/Tests/Loader/LoaderTest.php
2014-02-11 14:52:09 +01:00
Fabien Potencier
eb3f6c6efb fixed various inconsistencies 2014-02-11 11:29:24 +01:00
Fabien Potencier
10d4d56106 removed unneded test groups 2014-02-03 09:12:26 +01:00
Fabien Potencier
51d3d62946 feature #8655 Adds PTY mode & convenience method mustRun() (schmittjoh)
This PR was merged into the 2.5-dev branch.

Discussion
----------

Adds PTY mode & convenience method mustRun()

This makes two additions. I've split them into separate commits so that you can pull them separately if required.

1. Adds PTY mode.
In contrast to the existing TTY mode, the proc_open call becomes the master not the process currently executing.

2. Adds a ``mustRun`` method
This is merely for convenience:

```php
# Before
$proc = new Process($cmd);
if (0 !== $proc->run()) {
    throw new ProcessFailedException($proc);
}

$proc = new Process($cmd);
if (0 !== $proc->run()) {
    throw new ProcessFailedException($proc);
}

# After
(new Process($cmd))->mustRun();
(new Process($cmd))->mustRun();

Commits
-------

dbd264a adds cache for isPtySupported()
6c11207 attempts to fix tests on Travis
2ff1870 adds convenience method mustRun
53441aa adds support for PTY mode
2014-02-03 09:11:05 +01:00
Fabien Potencier
d87d8daa36 Merge branch '2.3' into 2.4
* 2.3:
  fixed a typo
  fixed CS for lambdas
  [Yaml] fixed some license headers
  Fixes message value for objects
  Check for hour, minute & second validity
  fixed various typos
  [Filesystem] Fixed mirror for symlinks
  [Validator] Removed duplicated test for IBAN in data provider

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php
	src/Symfony/Component/Console/Application.php
	src/Symfony/Component/Debug/Tests/ErrorHandlerTest.php
	src/Symfony/Component/Filesystem/Tests/FilesystemTest.php
	src/Symfony/Component/HttpKernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php
2013-12-28 09:12:03 +01:00
Fabien Potencier
35b407f016 fixed CS for lambdas 2013-12-28 08:46:05 +01:00
Fabien Potencier
2f15ac7507 fixed various typos 2013-12-27 16:08:19 +01:00
Fabien Potencier
990267f959 Merge branch '2.3' into 2.4
* 2.3:
  Fixed mistake in upgrade docu
  Container::camelize also takes backslashes into consideration
  fixed typos
  fixed @expectedException class names
  fixed some typos
  fixed @expectedException class names
  Typo and better wording for german validator translation
2013-11-26 17:40:27 +01:00
Fabien Potencier
19caa6a311 fixed @expectedException class names 2013-11-25 15:52:16 +01:00
Fabien Potencier
43becff31d Merge branch '2.3'
* 2.3: (24 commits)
  Add german translation for several validators (Greater/Equal/Less)
  No Entity Manager defined exception
  fixed CS
  [Acl] Fix for issue #9433
  [Validator] fix docblock typos
  [DependencyInjection] removed the unused Reference and Parameter classes use statements from the compiled container class
  Removed useless check if self::$trustProxies is set
  Fix mistake in translation's service definition.
  if handler_id is identical to null fix
  CS fix
  Fixed ModelChoiceList tests in Propel1 bridge.
  [AclProvider] Fix incorrect behaviour when partial results returned from cache
  Check if the pipe array is empty before calling stream_select()
  [Intl] fixed datetime test as described in #9455
  bumped Symfony version to 2.3.8
  updated VERSION for 2.3.7
  updated CHANGELOG for 2.3.7
  re-factor Propel1 ModelChoiceList
  [Form] Added method Form::getClickedButton() to remove memory leak in FormValidator
  [Locale] fixed the failing test described in #9455
  ...

Conflicts:
	src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php
	src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php
	src/Symfony/Bridge/Propel1/Tests/Form/ChoiceList/ModelChoiceListTest.php
	src/Symfony/Bridge/Propel1/Tests/Propel1TestCase.php
	src/Symfony/Component/Form/Tests/CompoundFormTest.php
	src/Symfony/Component/HttpKernel/Kernel.php
	src/Symfony/Component/Process/Process.php
2013-11-23 22:17:02 +01:00
Fabien Potencier
dfc54f9e96 Merge branch '2.2' into 2.3
* 2.2:
  No Entity Manager defined exception
  fixed CS
  [Acl] Fix for issue #9433
  [Validator] fix docblock typos
  [DependencyInjection] removed the unused Reference and Parameter classes use statements from the compiled container class
  Fix mistake in translation's service definition.
  if handler_id is identical to null fix
  CS fix
  Fixed ModelChoiceList tests in Propel1 bridge.
  [AclProvider] Fix incorrect behaviour when partial results returned from cache
  Check if the pipe array is empty before calling stream_select()
  re-factor Propel1 ModelChoiceList
  [Locale] fixed the failing test described in #9455
  [Process] fix phpdoc and timeout of 0
  bug #9445 [BrowserKit] fixed protocol-relative url redirection

Conflicts:
	src/Symfony/Component/BrowserKit/Tests/ClientTest.php
	src/Symfony/Component/Locale/Tests/Stub/StubIntlDateFormatterTest.php
2013-11-23 22:11:41 +01:00
Fabien Potencier
0434c7435d minor #9466 [Process] fix phpdoc and timeout of 0 (Tobion)
This PR was merged into the 2.2 branch.

Discussion
----------

[Process] fix phpdoc and timeout of 0

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

getTimeout says it returns null when it's disabled. But passing 0 or 0.0 also disabled timeouts. So it should be treated as null as well. also it says it returns integer whereas it returns float.

Commits
-------

1758010 [Process] fix phpdoc and timeout of 0
2013-11-22 18:11:04 +01:00
Jonathan Poston
52a18ea163 Check if the pipe array is empty before calling stream_select() 2013-11-15 17:36:11 +01:00
Tobias Schultze
17580107c9 [Process] fix phpdoc and timeout of 0 2013-11-08 01:33:52 +01:00
Bernhard Schussek
18113672c1 [Process] Renamed flushOutput() and flushErrorOutput() to clearOutput() and clearErrorOutput() 2013-10-30 13:27:00 +01:00
Fabien Potencier
9138e1a64c Merge branch '2.3'
* 2.3:
  fixed CS
  fixed CS
  [HttpKernel] fixed memory limit display in MemoryDataCollector
  Fixed the error handling when decoding invalid XML to avoid a Warning
  [Form] Fixed: The "data" option is taken into account even if it is NULL
  [DomCrawler] [HttpFoundation] Make `Content-Type` attributes identification case-insensitive

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Tests/Templating/TimedPhpEngineTest.php
2013-10-30 09:31:46 +01:00
Fabien Potencier
61dd06ea27 fixed CS 2013-10-30 09:30:20 +01:00
Fabien Potencier
c817539949 [Process] fixed tests 2013-09-27 16:31:42 +02:00
Fabien Potencier
500ddf3494 feature#8191 [Process] Added ProcessBuilder::setEnvironmentVariables (lyrixx)
This PR was merged into the master branch.

Discussion
----------

[Process] Added ProcessBuilder::setEnvironmentVariables

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

Commits
-------

b46ebf7 [Process] Added ProcessBuilder::addEnvironmentVariables
2013-09-27 16:30:49 +02:00
Fabien Potencier
eb6da72cf8 feature#8288 [Process] Added support for stdout and stderr flush (Issue #7884) (imobilis)
This PR was squashed before being merged into the master branch (closes #8288).

Discussion
----------

[Process] Added support for stdout and stderr flush (Issue #7884)

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7884
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/2728

**To-do**
- [x] Submit changes to the documentation.
- [x] Fix a test broken on travis.
- [x] Fix mistakes on the documentation.
- [x] Removed flush + get methods.
- [x] Changed tests assert calls.

This PR introduces flushing methods for both stdout and stderr on Process class. The new methods are:
- flushOutput(): clears the output buffer.
- flushErrorOutput(): clears the error output buffer.

Tests for new methods are included on the PR.

Commits
-------

90daef7 [Process] Added support for stdout and stderr flush (Issue #7884)
2013-09-27 15:52:58 +02:00
Juan Traverso
90daef75c6 [Process] Added support for stdout and stderr flush (Issue #7884) 2013-09-27 15:52:56 +02:00
Fabien Potencier
c3728d21cd Merge branch '2.3'
* 2.3:
  fixes RequestDataCollector bug, visible when used on Drupal8
  [Console] fixed exception rendering when nested styles
  [Console] added some more information about OutputFormatter::replaceStyle()
  [Console] fixed the formatter for single-char tags
  [Console] Escape exception message during the rendering of an exception
  [DomCrawler] fixed HTML5 form attribute handling
  Making tests pass on mac os x without this change tests would fail under mac os x at least in 10.8.2
  [BrowserKit] Fixed the handling of parameters when redirecting
  [Process] Properly close pipes after a Process::stop call
  fixed bytes conversion when used on 32-bits systems
  Typo fix
  HttpFoundation RequestTest - Fixed indentation and removed comments
  HttpFoundation Request test for #8619
  LICENSE files moved to meta folders
  added missing method in the UPGRADE file for 2.2 (closes #8941)
  [Form] Fixed: "required" attribute is not added to <select> tag if no empty value
  [Translation] Removed an unneeded return annotation.
  [DomCrawler] Added missing docblocks and removed unneeded return annotation.

Conflicts:
	src/Symfony/Component/Process/Tests/AbstractProcessTest.php
2013-09-18 09:05:46 +02:00
Romain Neutron
d84df4c2c5 [Process] Properly close pipes after a Process::stop call 2013-09-16 13:47:05 +02:00
Fabien Potencier
95483e518d Merge branch '2.3'
* 2.3:
  Fixed docblock in UserInterface::getSalt()
  [Process] Fix #8970 : read output once the process is finished, enable pipe tests on Windows
  [DoctrineBridge] Improved test coverage of EntityChoiceList
  [DoctrineBridge] Improved test coverage of EntityChoiceList
  [Form] Improved test coverage of ChoiceList classes
  [Form] Fixed expanded choice field to be marked invalid when unknown choices are submitted
  [Form] Fixed ChoiceList::get*By*() methods to preserve order and array keys
  [Form] Removed usage of the ChoiceList::getIndicesFor*() methods where they don't offer any performance benefit
  [Form] Improved test coverage of ChoiceList classes
  [Form] Fixed expanded choice field to be marked invalid when unknown choices are submitted
  [Form] Fixed ChoiceList::get*By*() methods to preserve order and array keys
  [Form] Removed usage of the ChoiceList::getIndicesFor*() methods where they don't offer any performance benefit
  Removed duplicate annotation
  [HttpKernel] made code more reliable
  [HttpFoundation] fixed regression in the way the request format is handled for duplicated requests (closes #8917)
  [HttpKernel] fixer HInclude src (closes #8951)
  Fixed escaping of service identifiers in configuration

Conflicts:
	src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/GenericEntityChoiceListTest.php
	src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php
	src/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php
2013-09-10 22:30:47 +02:00
Fabien Potencier
eb9f76d5ba Merge branch '2.2' into 2.3
* 2.2:
  Fixed docblock in UserInterface::getSalt()
  [Process] Fix #8970 : read output once the process is finished, enable pipe tests on Windows
  [DoctrineBridge] Improved test coverage of EntityChoiceList
  [Form] Improved test coverage of ChoiceList classes
  [Form] Fixed expanded choice field to be marked invalid when unknown choices are submitted
  [Form] Fixed ChoiceList::get*By*() methods to preserve order and array keys
  [Form] Removed usage of the ChoiceList::getIndicesFor*() methods where they don't offer any performance benefit
  [HttpKernel] made code more reliable

Conflicts:
	src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/EntityChoiceListTest.php
	src/Symfony/Component/Form/Extension/Core/ChoiceList/ChoiceListInterface.php
	src/Symfony/Component/Form/Extension/Core/EventListener/FixRadioInputListener.php
	src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php
	src/Symfony/Component/Form/Form.php
	src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTest.php
	src/Symfony/Component/Process/Process.php
	src/Symfony/Component/Process/Tests/AbstractProcessTest.php
2013-09-10 22:24:28 +02:00
Romain Neutron
1e75cf9da1 [Process] Fix #8970 : read output once the process is finished, enable pipe tests on Windows 2013-09-10 19:14:06 +02:00
Romain Neutron
2370c798df Fix testIdleTimeoutNotExceededWhenOutputIsSent on windows 2013-09-07 18:33:27 +02:00
Fabien Potencier
69265876b1 Merge branch '2.3' (closes #8956)
* 2.3:
  [HttpFoundation] removed extra parenthesis
  [Process][2.2] Fix Process component on windows
  [HttpFoundation] improve perf of previous merge (refs #8882)
  Request->getPort() should prefer HTTP_HOST over SERVER_PORT
  Fixing broken http auth digest in some circumstances (php-fpm + apache).
  fixed typo

Conflicts:
	src/Symfony/Component/Process/Process.php
2013-09-07 18:33:13 +02:00
Fabien Potencier
3689849e8b Merge branch '2.2' into 2.3 (closes #8955)
* 2.2:
  [HttpFoundation] removed extra parenthesis
  [Process][2.2] Fix Process component on windows
  [HttpFoundation] improve perf of previous merge (refs #8882)
  Request->getPort() should prefer HTTP_HOST over SERVER_PORT
  Fixing broken http auth digest in some circumstances (php-fpm + apache).
  fixed typo

Conflicts:
	src/Symfony/Component/Process/Process.php
2013-09-07 18:30:19 +02:00
Romain Neutron
4a76c76698 [Process][2.2] Fix Process component on windows 2013-09-07 08:18:57 +02:00
Fabien Potencier
167245c9c7 Merge branch '2.3'
* 2.3:
  [Locale] fixed build-data exit code in case of an error
  fixed request format of sub-requests when explicitely set by the developer (closes #8787)
  Sets _format attribute only if it wasn't set previously by the user.
  Exclude little words of 'ee' to 'oo' plural transformation
  fixed the format of the request used to render an exception
  Fix typo in the check_path validator
  added a missing use statement (closes #8808)
  fix for Process:isSuccessful()
  Include untrusted host in the exception message

Conflicts:
	src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
	src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
2013-08-22 08:44:20 +02:00
Fabien Potencier
8e1cb3e3ca Merge branch '2.2' into 2.3
* 2.2:
  [Locale] fixed build-data exit code in case of an error
  fixed request format of sub-requests when explicitely set by the developer (closes #8787)
  Sets _format attribute only if it wasn't set previously by the user.
  Exclude little words of 'ee' to 'oo' plural transformation
  fixed the format of the request used to render an exception
  Fix typo in the check_path validator
  added a missing use statement (closes #8808)
  fix for Process:isSuccessful()

Conflicts:
	UPGRADE-3.0.md
	src/Symfony/Component/Locale/Resources/data/build-data.php
2013-08-22 08:42:25 +02:00
Fabien Potencier
78e5f47849 merged branch tgabi333/2.2 (PR #8815)
This PR was merged into the 2.2 branch.

Discussion
----------

[Process] fix for Process:isSuccessful()

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

This is a rebase of https://github.com/symfony/symfony/pull/8801

If you call isSuccessful() on a running process you would get true because of 0 == null. I think that is not the expected behavior and that is not what phpdoc @return block said so.

Commits
-------

262879d fix for Process:isSuccessful()
2013-08-21 17:32:30 +02:00
Tóth Gábor
262879d8b5 fix for Process:isSuccessful() 2013-08-21 16:50:47 +02:00
Fabien Potencier
774b09cf56 Merge branch '2.3'
* 2.3:
  [Process] Use a consistent way to reset data of the process latest run
  CS fix
  [HttpFoundation] Fixed removing a nonexisting namespaced attribute.
  [Validation] Fixed IdentityTranslator to pass correct Locale to MessageSelector
  SwiftMailerHandler in Monolog bridge now able to react to kernel.terminate event

Conflicts:
	src/Symfony/Component/Process/Process.php
2013-08-21 09:59:24 +02:00
Fabien Potencier
4cfbdf11c3 Merge branch '2.2' into 2.3
* 2.2:
  [Process] Use a consistent way to reset data of the process latest run
  CS fix
  [HttpFoundation] Fixed removing a nonexisting namespaced attribute.
  [Validation] Fixed IdentityTranslator to pass correct Locale to MessageSelector
  SwiftMailerHandler in Monolog bridge now able to react to kernel.terminate event

Conflicts:
	src/Symfony/Component/Process/Process.php
2013-08-21 09:58:38 +02:00
Romain Neutron
0723c10239 [Process] Use a consistent way to reset data of the process latest run
It is actually useful when cloning or running again a process.
2013-08-20 20:43:40 +02:00
Fabien Potencier
d15bb7351e Merge branch '2.3'
* 2.3:
  Added sleep() workaround for windows php rename bug
  [HttpKernel] removed unused variable
  [Form] Fixed: Added "validation_groups" option to submit button
  [Process] Fix for #8754 (Timed-out processes are successful)

Conflicts:
	src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php
2013-08-15 19:09:02 +02:00
Romain Neutron
fa01e6b4d3 [Process] Fix for #8754 (Timed-out processes are successful) 2013-08-15 00:22:46 +02:00
Fabien Potencier
a67f5d03d1 Merge branch '2.3'
* 2.3:
  [Process] Revert change
  [Process] Fix #8746 : slowness added in unit tests since #8741
  [Process] Fix #8742 : Signal-terminated processes are not successful
  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
  [TwigBridge] removed superflous ; when rendering form_enctype() (closes #8660)
  Fixed documentation grammar for AuthenticationManagerInterface::authenticate()
  [Validator] fixed the wrong isAbstract() check against the class (fixed #8589)
  [TwigBridge] Prevent code extension to display warning
  Fix internal sub-request creation
  [FrameworkBundle] made code more generic
  [Form] Moved auto_initialize option to the BaseType
  Use strstr instead of strpos
  Make sure ContextErrorException is loaded during compile time errors
  Fix empty process argument escaping on Windows
  Ignore null value in comparison validators

Conflicts:
	src/Symfony/Component/Debug/Tests/ErrorHandlerTest.php
	src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
	src/Symfony/Component/Process/Process.php
2013-08-14 15:08:25 +02:00
Fabien Potencier
4af7276f89 merged branch romainneutron/fix-8742 (PR #8744)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Fix #8742 : Signal-terminated processes are not successful

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | require #8741 to be merged to pass tests
| Fixed tickets | #8742
| License       | MIT

Commits
-------

909fab6 [Process] Fix #8742 : Signal-terminated processes are not successful
2013-08-14 14:58:19 +02:00
Fabien Potencier
16413ffcc7 Merge branch '2.2' into 2.3
* 2.2:
  [Process] Revert change
  [Process] Fix #8746 : slowness added in unit tests since #8741
2013-08-14 14:57:12 +02:00
Romain Neutron
8c4bae3592 [Process] Revert change 2013-08-14 13:29:25 +02:00
Romain Neutron
909fab6979 [Process] Fix #8742 : Signal-terminated processes are not successful 2013-08-14 12:31:50 +02:00
Fabien Potencier
11018011dd 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
2013-08-13 22:18:00 +02:00
Romain Neutron
57d4159133 [Process] Avoid zombie process in case of unit tests failure 2013-08-13 18:52:19 +02:00
Romain Neutron
7716fb25ab [Process] Add failing test for #8739 2013-08-13 18:22:32 +02:00
Christian
2baa2c610e always manually inherit $_SERVER
The $_ENV superglobal is not populated if E is not present in the variables_order directive. Since populating this variable is not recommended (for performance reasons), we should not rely on it.

This change updates the builder so $env=null is never passed to proc_open(). Instead we always merge the $_SERVER superglobal into any environment variables that were manually set on the builder (unless inherit has been disabled).
2013-08-13 09:53:25 +02:00
Romain Neutron
b28d280b1e Add possibility to use array prefixes
This can be useful to use /opt/custom-php/bin/php composer.phar as a prefix, it is not possible with the current implementation
2013-08-09 09:03:52 +02:00
Helmer Aaviksoo
98f6969e9c Fix empty process argument escaping on Windows 2013-08-08 14:56:07 +02:00
Johannes M. Schmitt
6c11207573 attempts to fix tests on Travis 2013-08-03 09:57:35 +02:00
Johannes M. Schmitt
2ff187038a adds convenience method mustRun 2013-08-03 09:24:32 +02:00
Johannes M. Schmitt
53441aa3d0 adds support for PTY mode 2013-08-03 09:10:03 +02:00
Fabien Potencier
e4da1956a2 merged branch schmittjoh/processIdleTimeout (PR #8651)
This PR was merged into the master branch.

Discussion
----------

adds ability to define an idle timeout

This adds the ability to define an idle timeout which in contrast to the current timeout considers only the time since the last output was produced by a process.

It also adds a special exception for timeout cases.

Commits
-------

b922ba2 adds ability to define an idle timeout
2013-08-03 08:07:08 +02:00
Jakub Zalas
9f3b1e128d [Process] Increased the timeout in a test to prevent random failures when travis is under a heavy load. 2013-08-02 22:51:01 +01:00
Johannes M. Schmitt
b922ba22e5 adds ability to define an idle timeout 2013-08-02 21:45:12 +02:00
Fabien Potencier
4c0bfd3313 fixed CS 2013-07-01 14:24:43 +02:00
Rick Prent
3381f3f897 Feature/fix unit tests 2013-06-14 11:45:32 +02:00
Fabien Potencier
d849d5d134 Merge branch '2.2' into 2.3
* 2.2:
  Throw exception if value is passed to VALUE_NONE input, long syntax
  fixed date type format pattern regex
  [FrameworkBundle] tweaked previous merge (refs #8242)
  do not re-register commands each time a Console\Application is run
  [Process] moved env check to the Process class (refs #8227)
  fix issue where $_ENV contains array vals
  [DomCrawler] Fix handling file:// without a host
  [Form] corrected interface bind() method defined against in deprecation notice
  [Finder] Fix SplFileInfo::getContents isn't working with ssh2 protocol

Conflicts:
	src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php
	src/Symfony/Component/DomCrawler/Link.php
	src/Symfony/Component/Form/Form.php
2013-06-13 09:51:49 +02:00
Matthew J Mucklo
8764944c69 fix issue where $_ENV contains array vals
There are cases where $env or $_ENV can contain a value that is an array
This will cause Process to throw an Array to String conversion exception
Initially I submitted a patch of Process.php, however Fabien indicated
that it shouldn't be fixed there (see below pull request).

Before recently, a simple work around would be in php.ini to set:

  register_argc_argv = On

However with recent changes, this seems to no longer work.

Original pull request: https://github.com/symfony/symfony/pull/7354

See ticket https://github.com/symfony/symfony/issues/7196
2013-06-13 08:44:22 +02:00
Grégoire Pineau
b46ebf79b1 [Process] Added ProcessBuilder::addEnvironmentVariables 2013-06-11 11:47:50 +02:00
Fabien Potencier
14cb1fa3d0 Merge branch '2.2'
* 2.2:
  bumped Symfony version to 2.1.11-DEV
  updated VERSION for 2.1.10
  update CONTRIBUTORS for 2.1.10
  updated CHANGELOG for 2.1.10
  fixed CS
  [Process] Cleanup tests & prevent assertion that kills randomly Travis-CI
  [Filesystem] Fix regression introduced in 10dea948

Conflicts:
	src/Symfony/Component/Process/Tests/AbstractProcessTest.php
2013-05-06 22:03:44 +02:00
Fabien Potencier
66433c5626 Merge branch '2.1' into 2.2
* 2.1:
  bumped Symfony version to 2.1.11-DEV
  updated VERSION for 2.1.10
  update CONTRIBUTORS for 2.1.10
  updated CHANGELOG for 2.1.10
  fixed CS
  [Process] Cleanup tests & prevent assertion that kills randomly Travis-CI
  [Filesystem] Fix regression introduced in 10dea948

Conflicts:
	src/Symfony/Component/Form/Extension/Core/DataTransformer/DataTransformerChain.php
	src/Symfony/Component/HttpKernel/Kernel.php
	src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
	src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
2013-05-06 22:02:13 +02:00
Joseph Bielawski
05b987f381 [Process] Cleanup tests & prevent assertion that kills randomly Travis-CI 2013-05-06 12:21:56 +02:00
Fabien Potencier
40b9b44548 fixed previous merge 2013-04-30 09:21:49 +02:00
Romain Neutron
421c354ac9 [Process] Add unit tests for #7865 2013-04-29 15:25:58 +02:00
Jordi Boggiano
ae1624fe02 [Process] Fix tests on windows 2013-04-25 15:23:11 +02:00
Romain Neutron
1de29b9a7b [Process] Do not throw LogicException in ProcessBuilder::getProcess if no arguments are set but a prefix is 2013-04-23 22:53:10 +02:00
Romain Neutron
209799b18e [Process] Use new ProcessUtils::escapeArgument to escape ProcessBuilder prefix 2013-04-23 22:48:37 +02:00
Fabien Potencier
2b473cbb65 Merge branch '2.2'
* 2.2:
  added missing license blocks
  added missing license blocks
2013-04-22 06:30:07 +02:00
Fabien Potencier
f6875287b5 Merge branch '2.1' into 2.2
* 2.1:
  added missing license blocks
2013-04-22 06:28:56 +02:00
Fabien Potencier
76b67a1356 added missing license blocks 2013-04-22 06:28:40 +02:00
Fabien Potencier
de956b6e12 merged branch hason/process (PR #6796)
This PR was merged into the master branch.

Discussion
----------

[Process] Added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows

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

Commits
-------

a557b89 [Process] Added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows
2013-04-21 10:43:42 +02:00
Fabien Potencier
6290220f0a merged branch romainneutron/process-builder-prefix (PR #7584)
This PR was merged into the master branch.

Discussion
----------

[Process] Add ProcessBuilder::setPrefix method

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

This introduce a new feature for the `ProcessBuilder` that allows to prefix all generated `Process` commands with a custom value.
This is mostly useful when dealing with binary drivers.

Use case :

```php
use Symfony\Component\Process\ExecutableFinder;
use Symfony\Component\Process\ProcessBuilder;

class PhpDriver
{
    private $pb;

    public function __construct(ProcessBuilder $pb)
    {
        $this->pb = $pb;
    }

    public function getInfos()
    {
        return $this->execute('-i');
    }

    public function getVersion()
    {
        return $this->execute('-v');
    }

    private function execute(array $arguments)
    {
        return $this
            ->pb
            ->setArguments($arguments)
            ->createProcess()
            ->run()
            ->getOutput();
    }
}

$finder = new ExecutableFinder();

$pb = new ProcessBuilder();
$pb->setPrefix($finder->find('php'));

$driver = new PhpDriver($pb);
$driver->getVersion();
$driver->getInfos();
```

Commits
-------

cab53ee Add ProcessBuilder::setPrefix method
2013-04-20 18:25:02 +02:00
Fabien Potencier
ab4372865b merged branch mcuadros/master (PR #7566)
This PR was merged into the master branch.

Discussion
----------

[Process] Added support for processes that need a TTY to run.

Added support for processes that need a TTY to run. This can be useful in scenarios where we need to open an editor and wait for the user (like "crontab -e" or "git commit"). The new methos "setTTY" can be used to control this.

Regards

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

Commits
-------

2d30fb3 [Process] Added support for processes that need a TTY to run.
2013-04-20 14:29:16 +02:00
Máximo Cuadros Ortiz
2d30fb3cd0 [Process] Added support for processes that need a TTY to run. 2013-04-20 13:25:40 +02:00
Fabien Potencier
46efc9b4ac merged branch romainneutron/EnhanceSigchild (PR #5476)
This PR was squashed before being merged into the master branch (closes #5476).

Discussion
----------

[Process] Add signal and getPid methods

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
License of the code: MIT

This PR replaces #5391 ; it adds :

 - sigchild compatibility mode. This means that if you activate it you have access to this exitcode of the process in case your php has been compiled with --enable-sigchild. This can happen when you deal with Oracle databases.

```php
$process->setEnhanceSigchildCompatibility(true);
```

 - `getPid` method to get the actual process identifier of the process

```php
$process->getPid();
```

 - `signal` method to send Posix signal to the process

```php
$process->signal(SIGHUP);
```

 - Add optionnal `$signal` as second argument to `stop`method. If provided, the signal is sent at timeout to the process. Example of use :

```php
$process->stop(5, SIGKILL);
```

Tests have been enhanced and now run both sigchild / non-sigchild mode.

By the way, tests are successful with a PHP compiled with the --enable-sigchild option ;)

Commits
-------

5ed2737 [Process] Add signal and getPid methods
2013-04-14 18:37:33 +02:00
Romain Neutron
5ed2737d54 [Process] Add signal and getPid methods 2013-04-14 18:37:33 +02:00
Vitaliy Zakharov
7519fdc10f [Process] added exit code to ProcessFailedException message 2013-04-11 19:56:25 +06:00
Fabien Potencier
83e078a035 Merge branch '2.2'
* 2.2:
  Fix finding ACLs from ObjectIdentity's with different types
  [HttpKernel] tweaked previous merge
  #7531: [HttpKernel][Config] FileLocator adds NULL as global resource path
  Fix autocompletion of command names when namespaces conflict
  Fix timeout in Process::stop method
  fixed CS
  Round stream_select fifth argument up.
  Fix Process timeout
  [HttpKernel] Remove args from 5.3 stack traces to avoid filling log files, fixes #7259
  bumped Symfony version to 2.2.2-DEV
  updated VERSION for 2.2.1
  updated CHANGELOG for 2.2.1
  Fixed phpdoc blocks to show that $uri can be passed as a string or ControllerReference (rather than just as a string)
  [HttpFoundation] Fixed copy pasted comment from FlashBag in AttributeBag
  [FrameworkBundle] fixed the discovery of the PHPUnit configuration file when using aggregate options like in -vc app/ (closes #7562)
  [WebProfilerBundle] removed next pointer class in a template
  fix overwriting of request's locale if attribute _locale is missing

Conflicts:
	src/Symfony/Component/HttpKernel/Debug/ErrorHandler.php
	src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
	src/Symfony/Component/HttpKernel/Kernel.php
2013-04-07 22:25:23 +02:00
Fabien Potencier
2965a52d20 Merge branch '2.1' into 2.2
* 2.1:
  [HttpKernel] tweaked previous merge
  #7531: [HttpKernel][Config] FileLocator adds NULL as global resource path
  Fix autocompletion of command names when namespaces conflict
  Fix timeout in Process::stop method
  fixed CS
  Round stream_select fifth argument up.
  Fix Process timeout

Conflicts:
	src/Symfony/Component/Process/Process.php
	src/Symfony/Component/Process/ProcessBuilder.php
2013-04-07 22:19:55 +02:00
Fabien Potencier
ebbb96ee46 merged branch romainneutron/process-timeout (PR #7580)
This PR was merged into the 2.1 branch.

Discussion
----------

[2.1][Process] Fix timeout in Process::stop method

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

- The timeout is ten times more than set.
- The timeout does not occurs, it is actually blocking until the process dies.

Commits
-------

bec8ff1 Fix timeout in Process::stop method
2013-04-07 16:41:36 +02:00
Romain Neutron
bec8ff16e8 Fix timeout in Process::stop method
- The timeout is ten times more than set.
 - The timeout does not occurs, it is actually blocking until the process dies.
2013-04-07 16:17:09 +02:00
Romain Neutron
3780fdb214 Fix Process timeout 2013-04-07 14:29:57 +02:00
Romain Neutron
cab53ee102 Add ProcessBuilder::setPrefix method 2013-04-06 21:40:16 +02:00
Dariusz Górecki
7c47e34928 [CS Fix] Consistent coding-style of concatenation operator usage 2013-04-02 10:39:57 +01:00
Martin Hasoň
a557b89efc [Process] Added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows 2013-01-18 14:43:03 +01:00
Fabien Potencier
1f762c7723 Merge branch '2.1'
* 2.1:
  [Yaml] fixed default value
  Added Yaml\Dumper::setIndentation() method to allow a custom indentation level of nested nodes.
  added a way to enable/disable object support when parsing/dumping
  added a way to enable/disable PHP support when parsing a YAML input via Yaml::parse()
  fixed CS
  [Process] Fix docblocks, remove `return` from `PhpProcess#start()` as parent returns nothing, cleaned up `ExecutableFinder`
  fixes a bug when output/error output contains a % character
  [Console] fixed input bug when the value of an option is empty (closes #6649, closes #6689)
  [Profiler] [Redis] Fix sort of profiler rows.
  Fix version_compare() calls for PHP 5.5.
  Removed underscores from test method names to be consistent with other components.
  [Process] In edge cases `getcwd()` can return `false`, then `proc_open()` should get `null` to use default value (the working dir of the current PHP process)
  Fix version_compare() calls for PHP 5.5.
  Handle the deprecation of IntlDateFormatter::setTimeZoneId() in PHP 5.5.
  removed the .gitattributes files (closes #6605, reverts #5674)
  [HttpKernel] Clarify misleading comment in ExceptionListener

Conflicts:
	src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_style.html.twig
	src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTimeTypeTest.php
	src/Symfony/Component/Form/Tests/Extension/Core/Type/TimeTypeTest.php
	src/Symfony/Component/Form/Tests/Util/PropertyPathTest.php
	src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
	src/Symfony/Component/Process/Process.php
2013-01-17 16:25:59 +01:00
Fabien Potencier
2dfe9660a2 fixed CS 2013-01-16 10:27:54 +01:00
Joseph Bielawski
a62e04f8d1 [Process] Fix docblocks, remove return from PhpProcess#start() as parent returns nothing, cleaned up ExecutableFinder 2013-01-12 13:49:05 +01:00
Jakub Zalas
802426272f Removed underscores from test method names to be consistent with other components.
It is more common to use fully camel-cased names for test methods. Only some of the test methods are called with underscore notation. To avoid confusion it is better to be consistent.
2013-01-11 00:31:43 +00:00
Bernhard Schussek
184c8e586f Fixed @expectedException definitions to reference absolute exception paths 2013-01-05 18:52:40 +01:00
Fabien Potencier
31ff3db517 Merge branch '2.1'
* 2.1: (24 commits)
  updated license year
  Update src/Symfony/Component/HttpFoundation/Response.php
  [Form] Fixed inheritance of "error_bubbling" in RepeatedType
  [Form] Fixed DateType when used with the intl extension disabled.
  [HttpFoundation] fix return types and handling of zero in Response
  [HttpFoundation] better fix for non-parseable Expires header date
  Fixed missing plural message in portuguese validator
  Fix Expires when the header is -1
  [DoctrineBridge] Allowing memcache port to be 0 to support memcache unix domain sockets.
  [Console] fixed unitialized properties (closes #5935)
  [Process] Prevented test from failing when pcntl extension is not enabled.
  Revert "[DoctrineBridge] Improved performance of the EntityType when used with the "query_builder" option"
  [Form] Fixed failing tests for DateTimeToStringTransformer.
  [Locale] Fixed the StubLocaleTest for ICU versions lower than 4.8.
  [Bundle] [FrameworkBundle] fixed typo in phpdoc of the SessionListener.
  [Form] Fixed test regression introduced in #6440
  [Tests] Fix namespaces
  Fixed php doc of GenericEvent::__construct
  HttpUtils must handle RequestMatcher too
  use preferred_choices in favor of preferred_query
  ...

Conflicts:
	src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php
2013-01-04 18:02:19 +01:00
Jakub Zalas
a5aeb21b84 [Process] Prevented test from failing when pcntl extension is not enabled.
SIGTERM constant is only defined if pcntl extension is present. Extension is not needed to use the Process component though.
2012-12-30 13:18:39 +01:00
Fabien Potencier
2c9083a6e0 Merge branch '2.1'
* 2.1:
  [FrameworkBundle] added support for URIs as an argument to HttpKernel::render()
  [FrameworkBundle] restricted the type of controllers that can be executed by InternalController
  [Process] Allow non-blocking start with PhpProcess
  Making it easier to grab the PR template.
  [Locale] fixed a test
  Fixed failing test
  fix double-decoding in the routing system

Conflicts:
	src/Symfony/Component/Process/PhpProcess.php
2012-12-20 08:22:35 +01:00
Pierre Tachoire
2cd43da120 [Process] Allow non-blocking start with PhpProcess 2012-12-19 14:27:19 +01:00
Fabien Potencier
fdb11be242 fixed CS 2012-12-11 11:49:22 +01:00
Fabien Potencier
3c010db2cb Merge branch '2.1'
* 2.1:
  fixed CS
  fixed CS
  [Security] fixed path info encoding (closes #6040, closes #5695)
  [HttpFoundation] added some tests for the previous merge and removed dead code (closes #6037)
  Improved Cache-Control header when no-cache is sent
  removed unneeded comment
  Fix to allow null values in labels array
  fix date in changelog
  removed the Travis icon (as this is not stable enough -- many false positive, closes #6186)
  Revert "merged branch gajdaw/finder_splfileinfo_fpassthu (PR #4751)" (closes #6224)
  Fixed a typo
  Fixed: HeaderBag::parseCacheControl() not parsing quoted zero correctly
  [Form] Fix const inside an anonymous function
  [Config] Loader::import must return imported data
  [DoctrineBridge] Fixed caching in DoctrineType when "choices" or "preferred_choices" is passed
  [Form] Fixed the default value of "format" in DateType to DateType::DEFAULT_FORMAT if "widget" is not "single_text"
  [HttpFoundation] fixed a small regression

Conflicts:
	src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
2012-12-11 11:41:51 +01:00
Fabien Potencier
7f3be5c49d fixed CS 2012-12-11 11:40:22 +01:00
Fabien Potencier
8968bd0e03 merged branch asm89/enhance-processbuilder (PR #5853)
This PR was squashed before being merged into the master branch (closes #5853).

Commits
-------

63b0059 [Process] Add ability to reset arguments on ProcessBuilder

Discussion
----------

[Process] Add ability to reset arguments on ProcessBuilder

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
License of the code: MIT

This PR adds the ability to "reset" the arguments set on a `ProcessBuilder`. This allows the builder to be re-used without having to set things like custom environment variables, current working directory etc again.
2012-12-06 14:11:58 +01:00
Alexander
63b00598fe [Process] Add ability to reset arguments on ProcessBuilder 2012-12-06 14:11:57 +01:00
Fabien Potencier
18495e7b3c Merge branch '2.1'
* 2.1: (29 commits)
  [DependencyInjection] fixed composer.json
  [Validator] Fix typos in validators.ru.xlf
  Edited some minor grammar and style errors in russian validation file
  Updated Bulgarian translation
  [Form] improve error message with a "hasser" hint for PropertyAccessDeniedException
  [Form] Updated checks for the ICU version from 4.5+ to 4.7+ due to test failures with ICU 4.6
  [Form] simplified a test from previous merge
  Update src/Symfony/Component/Form/Extension/Core/Type/FileType.php
  fixed CS
  Xliff with other node than source or target are ignored
  small fix of #5984 when the container param is not set
  Filesystem Component mirror symlinked directory fix
  [Process][Tests] fixed chainedCommandsOutput tests
  fixed CS
  Use better default ports in urlRedirectAction
  Add tests for urlRedirectAction
  info about session namespace
  fix upgrade info about locale
  Update src/Symfony/Component/DomCrawler/Tests/FormTest.php
  Update src/Symfony/Component/DomCrawler/Form.php
  ...
2012-11-29 11:32:45 +01:00
Tugdual Saunier
0f4d8af6cf [Process][Tests] fixed chainedCommandsOutput tests
for OS where echo does not support -n option (like MacOS X)
2012-11-19 21:53:52 +01:00
Fabien Potencier
b27b749025 made usage of Composer autoloader for subtree-split unit tests 2012-11-09 14:10:06 +01:00
Fabien Potencier
ef26a2185e [Process] added unit tests, phpdoc, and reorganized methods from previous merge 2012-10-27 18:54:34 +02:00
Fabien Potencier
d7a02b5433 [Process] fixed previous merge 2012-10-27 15:48:18 +02:00
Fabien Potencier
a6b2aa714b merged branch romainneutron/ProcessIncrementalOutput (PR #5546)
This PR was merged into the master branch.

Commits
-------

b89e413 [Process] Add output / error output incremental getters

Discussion
----------

[2.2][Process] Add output / error output incremental getters

Bug fix: #4999
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
License of the code: MIT

Travis fails ; tests are ok on my local clone but upstream symfony master is currently broken

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

by stof at 2012-10-13T21:20:47Z

@romainneutron is there anything left before merging ? And please open a PR to the documentation to document the new feature
2012-10-27 15:43:43 +02:00
Fabien Potencier
0f67dca1fe [Process] fixed a unit test 2012-10-04 16:37:34 +02:00
Fabien Potencier
0ba4886721 merged branch boombatower/process-restart (PR #5456)
This PR was squashed before being merged into the master branch (closes #5456).

Commits
-------

be62fcc [process] provide a restart method.

Discussion
----------

[process] provide a restart method.

Pull request for issue #5452.

Another possibility would be to allow for either run() or start() scenarios, but I am not sure that is terribly useful since restart() with a new process lends itself to restarting longer running services when they crash and you want the old process so you can inspect the logs and what not.

Otherwise, something like this might work, but doesn't allow for run() to return status code. Someone can get around that by getting manually on returned process.

```php
<?php
public function restart($method = 'start', $callback = null)
{
    if ($this->isRunning()) {
        throw new \RuntimeException('Process is already running');
    }

    if ($method != 'start' && $method != 'run') {
        throw new \RuntimeException('Method must be start or run');
    }

    $process = clone $this;
    $process->$method();
    return $process;
}
```

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

by pborreli at 2012-09-07T07:17:26Z

can you add some tests please ?
2012-10-04 16:20:59 +02:00
boombatower
be62fcca7f [process] provide a restart method. 2012-10-04 16:20:58 +02:00
Fabien Potencier
0a3b012619 Merge branch '2.1'
* 2.1:
  Added Base64 encoding, decoding to MongoDBProfilerStorage
  Fix duplicated code and a field name
  refactor src/Symfony/Component/Translation/Loader/MoFileLoader.php
  fixed typo
  Update src/Symfony/Component/Validator/Resources/translations/validators.pl.xlf
  fixed issue #5596 (Broken DOM with the profiler's toolbar set in position top)
  [Form] Fixed the testsuite for PHPUnit 3.6 as travis still uses it
  added dirs generated by build-data.php in locale component to .gitignore
  [Process] Fixed bug introduced by 7bafc69f38.
  [Process][Tests] Prove process fail (Add more test case)
  [Process][Tests] Prove process fail
  [HttpFoundation] Fixed the tests
  [DomCrawler] Added test for supported encodings by mbstring
  [Config] Fixed preserving keys in associative arrays
  [Console] Fixed return value for Command::run
  [Locale] Fixed tests
  [Console] Fix some input tests
  [Filesystem] Fixed tests on Windows
  [Config] Fixed tests on Windows
2012-09-28 19:52:09 +02:00
Grégoire Pineau
7a955c0e4b [Process][Tests] Prove process fail (Add more test case) 2012-09-25 14:47:45 +02:00
Grégoire Pineau
598dcf3c57 [Process][Tests] Prove process fail 2012-09-25 14:47:33 +02:00
Romain Neutron
b89e413a93 [Process] Add output / error output incremental getters 2012-09-19 08:30:27 +02:00
Fabien Potencier
e7b55fcda5 Merge branch '2.1'
* 2.1:
  [Form] removed comment now that PHPUnit 3.7 is out
  Add a Sigchild compatibility mode (set to false by default)
  fix Fatal error: Cannot access private property

Conflicts:
	src/Symfony/Component/Process/Process.php
2012-09-19 08:14:24 +02:00
Romain Neutron
7bafc69f38 Add a Sigchild compatibility mode (set to false by default)
This mode is required to use a hack to determine if the process finished with success when PHP has been compiled with the --enable-sigchild option
2012-09-19 00:37:29 +02:00
Romain Neutron
c5e7793004 [Process] Normalize exceptions 2012-08-30 21:25:16 +02:00
Romain Neutron
3bfb9762d7 Add unit test demonstrating bad exit code getter for a failing process 2012-08-30 12:55:38 +02:00
Pascal Borreli
6ac8e7308d Fixed typos 2012-07-28 22:02:29 +00:00
Fabien Potencier
f83401abd9 [Process] fixed setting the timeout to null 2012-07-11 14:21:05 +02:00
Fabien Potencier
884fffa9c0 [Process] fixed setTimeout() to not allow negative timeout values (closes #4647) 2012-07-10 15:21:59 +02:00
Fabien Potencier
80040c6a29 [Process] removed uninteresting tests 2012-07-10 15:19:05 +02:00
Jordi Boggiano
0c5aa8bf7e [Process] Add failing test for callbacks on windows 2012-05-24 19:52:29 +02:00
Fabien Potencier
9b7aab5e94 merged 2.0 2012-05-20 18:16:37 +02:00
Sebastian Marek
1c03a167bf [Process] Fixed ProcessFailedException not populating exception message due to a missing sprintf parameter 2012-04-25 15:42:54 +01:00
Joseph Bielawski
bfc1aafff6 [Tests] Use proper assertions 2012-04-14 10:05:05 +02:00
Kim Hemsø Rasmussen
89a5c1a845 [process] Added destructor to process to make sure handles are always closed in the right order. 2012-04-11 23:08:57 +02:00
Jordi Boggiano
6dca141de8 [Process] Skip signal assertion on windows 2012-04-08 20:29:02 +02:00
Jordi Boggiano
4cd0fb4c69 [Process] Skip test that is still getting stuck on windows 2012-04-08 20:28:28 +02:00
Fabien Potencier
fea6b79acd moved component and bridge unit tests to the src/ directory
This is the first step to make each Symfony Component and Bridge self-contained.
2012-03-29 08:37:22 +02:00