Commit Graph

438 Commits

Author SHA1 Message Date
Florin Patan
5bb41636bc Fixed tests 2013-04-25 12:42:02 +02:00
Jordi Boggiano
b62d35feb9 Fix handling of --verbose=... and BC break 2013-04-25 12:41:54 +02:00
Florin Patan
16cdb6128e Added more verbosity levels 2013-04-25 12:41:44 +02:00
Jordi Boggiano
a6421a0f23 [Console] Add support for multiple InputOption shortcuts 2013-04-25 12:32:10 +02:00
Fabien Potencier
61c56fc54a merged branch jfsimon/console-descriptor (PR #7454)
This PR was squashed before being merged into the master branch (closes #7454).

Discussion
----------

[Console] application/command as text/xml/whatever decoupling

This PR removes description generation from `Command`, `Application` and `InputDefinition` classes and delegate it to specialized descriptor classes, making it dead simple to add new output formats.

**Maybe this could include other commands, like `router:debug` or `container:debug` (see #5740)?**

- [x] Add a `DescriptorProvider` which uses `DescriptorInterface` objects to describe things.
- [x] Add `txt` descriptors.
- [x] Add `xml` descriptors.
- [x] Add `json` descriptors.
- [x] Add `md` descriptors.
- [x] Remove obsolete methods.
- [x] Repair tests.

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

Commits
-------

51512e6 [Console] application/command as text/xml/whatever decoupling
2013-04-23 18:54:01 +02:00
Jean-François Simon
51512e633b [Console] application/command as text/xml/whatever decoupling 2013-04-23 18:54:00 +02:00
Fabien Potencier
ec01e479c4 [Console] made the shel prompt easily customizable (closes #7710) 2013-04-21 12:38:46 +02:00
Fabien Potencier
2ff26b2208 [Console] updated CHANGELOG and added some more unit tests 2013-04-21 09:53:05 +02:00
Fabien Potencier
d9fa16087b merged branch quiqueporta/multiselect (PR #7602)
This PR was squashed before being merged into the master branch (closes #7602).

Discussion
----------

[DialogHelper] Multiselect : added an option to the "select" function that makes the possibility of multiselect options.

When the option list appears, you can select more than one value separated by comma.

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

Commits
-------

c8a5e02 [DialogHelper] Multiselect : added an option to the "select" function that makes the possibility of multiselect options.
2013-04-21 09:51:24 +02:00
Quique Porta
c8a5e021dc [DialogHelper] Multiselect : added an option to the "select" function that makes the possibility of multiselect options. 2013-04-21 09:51:23 +02:00
Pascal Borreli
173f15c200 Fixed typo 2013-04-21 04:09:58 +00:00
Fabien Potencier
6a2c71bad5 fixed previous merge 2013-04-17 07:37:48 +02:00
Fabien Potencier
1b2619078d Merge branch '2.2'
* 2.2:
  Fix default value handling for multi-value options
  [HttpKernel] truncate profiler token to 6 chars (see #7665)
  Disabled APC on Travis for PHP 5.5+ as it is not available
  [HttpFoundation] do not use server variable PATH_INFO because it is already decoded and thus symfony is fragile to double encoding of the path
  Fix download over SSL using IE < 8 and binary file response
  [Console] Fix merging of application definition, fixes #7068, replaces #7158
  [HttpKernel] fixed the Kernel when the ClassLoader component is not available (closes #7406)
  fixed output of bag values
  [Yaml] improved boolean naming ($notEOF -> !$EOF)
  [Yaml] fixed handling an empty value
  [Routing][XML Loader] Add a possibility to set a default value to null
  [Console] fixed handling of "0" input on ask
  The /e modifier for preg_replace() is deprecated in PHP 5.5; replace with preg_replace_callback()
  fixed handling of "0" input on ask
  [HttpFoundation] Fixed bug in key searching for NamespacedAttributeBag
  [Form] DateTimeToRfc3339Transformer use proper transformation exteption in reverse transformation
  Update PhpEngine.php
  [PropertyAccess] Add objectives to pluralMap
  [Security] Removed unused var
  [HttpFoundation] getClientIp is fixed.

Conflicts:
	src/Symfony/Component/Console/Tests/Command/CommandTest.php
	src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php
	src/Symfony/Component/HttpFoundation/Request.php
	src/Symfony/Component/HttpKernel/Kernel.php
2013-04-17 07:31:37 +02:00
Fabien Potencier
fd58a5f424 Merge branch '2.1' into 2.2
* 2.1:
  Fix default value handling for multi-value options
  [HttpKernel] truncate profiler token to 6 chars (see #7665)
  Disabled APC on Travis for PHP 5.5+ as it is not available
  [HttpFoundation] do not use server variable PATH_INFO because it is already decoded and thus symfony is fragile to double encoding of the path
  [Yaml] improved boolean naming ($notEOF -> !$EOF)
  [Yaml] fixed handling an empty value
  [Routing][XML Loader] Add a possibility to set a default value to null
  The /e modifier for preg_replace() is deprecated in PHP 5.5; replace with preg_replace_callback()
  [HttpFoundation] Fixed bug in key searching for NamespacedAttributeBag
  [Form] DateTimeToRfc3339Transformer use proper transformation exteption in reverse transformation
  Update PhpEngine.php
  [HttpFoundation] getClientIp is fixed.

Conflicts:
	.travis.yml
	src/Symfony/Component/Routing/Loader/XmlFileLoader.php
	src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
	src/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
	src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
2013-04-17 07:27:14 +02:00
Jeremy Mikola
5abf887180 Fix default value handling for multi-value options
The default value for array options will be an array, so it is not suitable to use as the default when processing one of many values for a multi-value option. Using null seems appropriate here, as it indicates the absence of a value and also converts nicely to an empty string (as opposed to an empty array).

Fixes #7689
2013-04-17 07:12:51 +02:00
Christophe Coevoet
1356050f21 Fixed the Console code on PHP 5.3
The PR #7657 introduced a requirement on PHP 5.4 by mistake.
2013-04-13 16:06:01 +02:00
Jordi Boggiano
93b1369bb5 [Console] Fix StringInput parsing to accept newlines and tabs 2013-04-12 17:23:00 +02:00
Jordi Boggiano
8642b676b3 [Console] Fix escaping of args 2013-04-12 17:22:47 +02:00
Jordi Boggiano
659eb663c6 [Console] Add ArgvInput::__toString and ArrayInput::__toString, fixes #7257 2013-04-12 15:43:52 +02:00
Jordi Boggiano
46909faff0 [Console] Fix merging of application definition, fixes #7068, replaces #7158 2013-04-12 15:15:07 +02:00
Fabien Potencier
3cb87a3f95 merged branch dantleech/enforce_sprintf_for_exceptions (PR #7620)
This PR was squashed before being merged into the master branch (closes #7620).

Discussion
----------

Enforce sprintf for exceptions

| Q             | A
| ------------- | ---
| Bug fix?      |no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | [yes|no]
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/2483

Changed format of exceptions which concatenate strings as follows

````
throw new \Exception('The '.$something.' needs the '.$foobar.' parameter');
````

to

````
throw new \Exception(sprintf('The %s needs the %s parameter', $something, $foobar));
````

This follows discussion on mailing list: https://groups.google.com/forum/?fromgroups#!topic/symfony-devs/tecj3UOAueM

Unit test results are pending...

Commits
-------

e655120 Enforce sprintf for exceptions
2013-04-11 08:50:46 +02:00
dantleech
e655120f05 Enforce sprintf for exceptions 2013-04-11 08:50:46 +02:00
Rénald Casagraude
383a84b807 fixed handling of "0" input on ask 2013-04-11 07:30:49 +02:00
Fabien Potencier
6f0a5ad314 merged branch jakzal/console-tests-cleanup (PR #6989)
This PR was merged into the master branch.

Discussion
----------

[Console] Cleaned up the unit tests.

Cleaned up some unit tests in the Console component as suggested in #6935. I didn't fully cleanup the Application tests to not to delay this PR. I might do it later as a separate one.

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

Commits
-------

5ca04b0 [Console] Cleaned up the unit tests.
2013-04-09 17:42:31 +02: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
Jordi Boggiano
9d71ebe8e2 Fix autocompletion of command names when namespaces conflict 2013-04-07 16:54:11 +02:00
Fabien Potencier
22adfdf504 merged branch umpirsky/console-helper-table (PR #6368)
This PR was squashed before being merged into the master branch (closes #6368).

Discussion
----------

[2.3] [Console] TableHelper

When building a console application it may be useful to display tabular data.

`TableHelper` can display table header and rows, customizable alignment of columns, cell padding and colors.

Basic usage example:
```php
$table = $app->getHelperSet()->get('table');
$table
    ->setHeaders(array('ISBN', 'Title', 'Author'))
    ->setRows(array(
        array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
        array('9971-5-0210-0', 'A Tale of Two Cities', 'Charles Dickens'),
        array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'),
        array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'),
    ))
;
$table->render($output);
```
Output:
![table](https://f.cloud.github.com/assets/208957/14955/6fb4f500-46ca-11e2-8435-0f6b22f96e58.png)

If this PR gets merged I will submit doc PR as well.

I'm sure there is a plenty of room for improvements so any feedback is welcome.

Commits
-------

8de7813 [2.3] [Console] TableHelper
2013-04-07 16:24:42 +02:00
umpirsky
8de7813cab [2.3] [Console] TableHelper 2013-04-07 16:24:41 +02:00
Dariusz Górecki
7c47e34928 [CS Fix] Consistent coding-style of concatenation operator usage 2013-04-02 10:39:57 +01:00
Fabien Potencier
c1bd3b5b25 merged branch fabpot/console-dispatcher (PR #7466)
This PR was merged into the master branch.

Discussion
----------

Console dispatcher

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #3889, #6124
| License       | MIT
| Doc PR        | symfony/symfony-docs#2352

refs #1884, #1929

This is an alternative implementation for adding events to console applications.

This implementation has the following features:

* Available for anyone using the Console component and it is not tied to
  FrameworkBundle (this is important as one thing we are trying to solve is
  email sending from a command, and frameworks like Silex using the Console
  component needs a solution too);

* Non-intrusive as the current code has not been changed (except for renaming
  an internal variable that was wrongly named -- so that's not strictly needed
  for this PR)

* The new DispatchableApplication class also works without a dispatcher,
  falling back to the regular behavior. That makes easy to create applications
  that can benefit from a dispatcher when available, but can still work
  otherwise.

* Besides the *before* and *after* events, there is also an *exception* event
  that is dispatched whenever an exception is thrown.

* Each event is quite powerful and can manipulate the input, the output, but
  also the command to be executed.

Commits
-------

4f9a55a refactored the implementation of how a console application can handle events
4edf29d added helperSet to console event objects
f224102 Added events for CLI commands
2013-03-25 21:03:44 +01:00
Fabien Potencier
4f9a55a03a refactored the implementation of how a console application can handle events 2013-03-25 09:14:22 +01:00
Fabien Potencier
afd7d055cd [Console] added a way to normalize a command display when using the tester 2013-03-24 10:36:53 +01:00
Fabien Potencier
9fba645cb2 [Console] added a note in the CHANGELOG for the previous merge, fixed some CS 2013-03-23 08:15:46 +01:00
Fabien Potencier
062cce0018 merged branch pkruithof/progress-helper-enhancements (PR #7300)
This PR was squashed before being merged into the master branch (closes #7300).

Discussion
----------

[Console] Progress helper enhancements

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

Two enhancements:

1. The progress bar clears the current line before writing the current progress. This can cause some flickering in the terminal. I've modified the write method to append whitespace to the line to be written, so it matches the previous line's length.
2. Added a `setCurrent` method to set the current progress. Rather than advancing by 1 or more steps, sometimes you want to just set the current state. For example if you are downloading a file, and a callback provides you with the current download status. A workaround for this could be to keep track of the previous event, calculate the difference, and advancing by the diff. But it's easier to just set the current progress.

Sidenotes:
* The [`overwrite`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Helper/ProgressHelper.php#L387) method copied documentation of the Output's [`write`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Output/Output.php#L139) method. The difference is, the overwrite method does not handle an array of messages. I've updated the documentation for this.
* The helper uses `strlen` to calculate line lengths. This could cause a problem when using multibyte strings. I'd change it to `mb_strlen`, but I'm not sure if the `mb_string` extension is required by Symfony.

Commits
-------

5ae76f0 [Console] Progress helper enhancements
2013-03-23 08:10:00 +01:00
Peter Kruithof
5ae76f0dbf [Console] Progress helper enhancements 2013-03-23 08:10:00 +01:00
Fabien Potencier
d699a929e0 Merge branch '2.2'
* 2.2: (70 commits)
  change wrapped exception message to be more usefull
  updated VERSION for 2.0.23
  update CONTRIBUTORS for 2.0.23
  updated CHANGELOG for 2.0.23
  [Form] fixed failing test
  [DomCrawler] added support for query string with slash
  Fixed invalid file path for hiddeninput.exe on Windows.
  fix xsd definition for strict-requirements
  [WebProfilerBundle] Fixed the toolbar styles to apply them in IE8
  [ClassLoader] fixed heredocs handling
  fixed handling of heredocs
  Add a public modifier to an interface method
  removing xdebug extension
  [HttpRequest] fixes Request::getLanguages() bug
  [HttpCache] added a test (cached content should be kept after purging)
  [DoctrineBridge] Fixed non-utf-8 recognition
  [Security] fixed HttpUtils class tests
  replaced new occurences of 'Request::create()' with '::create()'
  changed sub-requests creation to '::create()'
  fixed merge issue
  ...

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php
	src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.html.twig
	src/Symfony/Component/DomCrawler/Link.php
	src/Symfony/Component/Translation/Translator.php
2013-03-20 15:03:03 +01:00
Kevin Herrera
633c051409 Fixed invalid file path for hiddeninput.exe on Windows. 2013-03-19 13:48:08 -07:00
Fabien Potencier
feaee3615f Merge branch '2.2'
* 2.2: (26 commits)
  [FrameworkBundle] Fixes invalid serialized objects in cache
  remove dead code in yaml component
  Fixed typo in UPGRADE-2.2
  fixed typo
  RedisProfilerStorage wrong db-number/index-number selected
  [DependencyInjection] added a test for the previous merge (refs #7261)
  Unset loading[$id] in ContainerBuilder on exception
  Default validation message translation fix.
  remove() should not use deprecated getParent() so it does not trigger deprecation internally
  adjust routing tests to not use prefix in addCollection
  add test for uniqueness of resources
  added tests for addDefaults, addRequirements, addOptions
  adjust RouteCollectionTest for the addCollection change and refactor the tests to only skip the part that really needs the config component
  added tests for remove() that wasnt covered yet and special route name
  refactor interator test that was still assuming a tree
  adjust tests to no use addPrefix with options
  adjusted tests to not use RouteCollection::getPrefix
  [Routing] trigger deprecation warning for deprecated features that will be removed in 2.3
  [Console] fixed StringInput binding
  [Console] added string input test
  ...
2013-03-06 18:50:21 +01:00
Fabien Potencier
2850fca233 Merge branch '2.1' into 2.2
* 2.1:
  [FrameworkBundle] Fixes invalid serialized objects in cache
  remove dead code in yaml component
  fixed typo
  RedisProfilerStorage wrong db-number/index-number selected
  [DependencyInjection] added a test for the previous merge (refs #7261)
  Unset loading[$id] in ContainerBuilder on exception
  [Console] fixed StringInput binding
  [Console] added string input test
  Revert "merged branch jfsimon/issue-6749 (PR #7220)"
  fixed CS

Conflicts:
	src/Symfony/Component/Console/Tests/Input/StringInputTest.php
	src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
2013-03-06 18:38:49 +01:00
Jean-François Simon
6681df0a12 [Console] fixed StringInput binding 2013-03-01 17:50:10 +01:00
Jean-François Simon
6b98883903 [Console] added string input test 2013-03-01 17:44:08 +01:00
Jean-François Simon
32f190481a Revert "merged branch jfsimon/issue-6749 (PR #7220)"
This reverts commit f52120bdd3, reversing
changes made to 66c2be30d0.
2013-03-01 17:42:51 +01:00
Jean-François Simon
5bf2f7110f [Console] added deprecation annotation 2013-03-01 15:42:44 +01:00
Jean-François Simon
f95f8e2a3b [Console] added string input test 2013-03-01 15:41:03 +01:00
Jean-François Simon
4b12118bc2 Revert "merged branch jfsimon/issue-6749 (PR #7220)"
This reverts commit f52120bdd3, reversing
changes made to 66c2be30d0.
2013-03-01 15:36:15 +01:00
Fabien Potencier
fdb2948130 Merge branch '2.2'
* 2.2: (24 commits)
  Options small typo
  [Console] fixed unparsed StringInput tokens
  Mask PHP_AUTH_PW header in profiler
  [TwigBridge] fixed trans twig extractor
  [Finder] adds adapter selection/unselection capabilities
  [DomCrawler] fix handling of schemes by Link::getUri()
  [Console] Fixed comment
  [TwigBridge] fixed the translator extractor that were not trimming the text in trans tags (closes #7056)
  Fixed handling absent href attribute in base tag
  fixed paths/notPaths regex for shell adapters
  fix issue 4911
  Adds expandable globs support to shell adapters
  [HttpFoundation] Fixed messed up headers
  Fixes AppCache + ESI + Stopwatch problem
  added a DebuClassLoader::findFile() method to make the wrapping less invasive
  bumped Symfony version to 2.2.0-RC4-DEV
  updated VERSION for 2.2.0-RC3
  updated CHANGELOG for 2.2.0-RC3
  fixed CHANGELOG
  bumped Symfony version to 2.1.9-DEV
  ...
2013-03-01 07:43:27 +01:00
Fabien Potencier
556ca0cfbd Merge branch '2.1' into 2.2
* 2.1:
  Options small typo
  [Console] fixed unparsed StringInput tokens
  [TwigBridge] fixed trans twig extractor
  [DomCrawler] fix handling of schemes by Link::getUri()
  [Console] Fixed comment
  [TwigBridge] fixed the translator extractor that were not trimming the text in trans tags (closes #7056)
  Fixed handling absent href attribute in base tag
  added a DebuClassLoader::findFile() method to make the wrapping less invasive
  fixed CHANGELOG
  bumped Symfony version to 2.1.9-DEV
  updated VERSION for 2.1.8
  updated CHANGELOG for 2.1.8
  StringInput resets the given options.

Conflicts:
	src/Symfony/Component/HttpKernel/Kernel.php
2013-03-01 07:43:14 +01:00
Fabien Potencier
08757db05e Merge branch '2.0' into 2.1
* 2.0:
  [Console] Fixed comment

Conflicts:
	src/Symfony/Component/Console/Output/OutputInterface.php
2013-03-01 07:42:22 +01:00
Fabien Potencier
f52120bdd3 merged branch jfsimon/issue-6749 (PR #7220)
This PR was merged into the 2.1 branch.

Commits
-------

5b19c89 [Console] fixed unparsed StringInput tokens
635b1fc StringInput resets the given options.

Discussion
----------

[Console] fixes unparsed StringInput tokens

`StringInput` instances call `setToken` after constructor, `parse` method is called in constructor, so `StringInput` tokens where never parsed.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6749
2013-02-28 18:08:29 +01:00