Commit Graph

111 Commits

Author SHA1 Message Date
Florin Patan
5bb41636bc Fixed tests 2013-04-25 12:42:02 +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
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
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
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
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
Peter Kruithof
5ae76f0dbf [Console] Progress helper enhancements 2013-03-23 08:10:00 +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
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
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
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
Jakub Zalas
5ca04b02fd [Console] Cleaned up the unit tests. 2013-02-07 10:31:48 +00: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
a25fad847b Merge branch '2.0' into 2.1
* 2.0:
  [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()
  [Console] fixed input bug when the value of an option is empty (closes #6649, closes #6689)

Conflicts:
	src/Symfony/Component/Yaml/Dumper.php
	src/Symfony/Component/Yaml/Parser.php
	src/Symfony/Component/Yaml/Tests/DumperTest.php
	src/Symfony/Component/Yaml/Tests/ParserTest.php
	src/Symfony/Component/Yaml/Yaml.php
2013-01-17 16:20:05 +01:00
Fabien Potencier
2dfe9660a2 fixed CS 2013-01-16 10:27:54 +01:00
Martin Eckhardt
635b1fcb77 StringInput resets the given options. 2013-01-15 12:11:45 +01:00
Fabien Potencier
aba96c7cae Merge branch '2.1'
* 2.1:
  [Console] Fix style escaping parsing
  [Console] Make style formatter matching less greedy to avoid having to escape when not needed
  [Bundle] [FrameworkBundle] fixed indentation in esi.xml services file.
  [Component] [Security] fixed PSR-2 coding violation in ClassUtilsTest class.
  [Form] Fixed EntityChoiceList when loading objects with negative integer IDs
  [TwigBundle] There is no CSS visibility of display, should be visible instead
  [Form] corrected source node for a Danish translation
  [DependencyInjection] fixed a bug where the strict flag on references were lost (closes #6607)
  [HttpFoundation] Check if required shell functions for `FileBinaryMimeTypeGuesser` are not disabled
  [CssSelector] added css selector with empty string
  [HttpFoundation] Docblock for Request::isXmlHttpRequest() now points to Wikipedia
  [DependencyInjection] refactored code to avoid logic duplication
  [Form] Deleted references in FormBuilder::getFormConfig() to improve performance
  [HttpFoundation] Update docblock for non-working method

Conflicts:
	src/Symfony/Bundle/TwigBundle/Resources/views/Exception/trace.html.twig
	src/Symfony/Bundle/TwigBundle/Resources/views/Exception/traces.html.twig
2013-01-08 19:17:41 +01:00
Jordi Boggiano
eb93e66aa7 [Console] Fix style escaping parsing 2013-01-08 17:21:26 +01:00
Jordi Boggiano
8ca1b805ce [Console] Make style formatter matching less greedy to avoid having to escape when not needed 2013-01-08 17:05:32 +01:00
Lee McDermott
4d7c895021 Fix bug where backspacing to an empty string and using the arrow keys would fail. Added test to prevent in future 2013-01-08 13:05:24 +01:00
Joseph Bielawski
7f149ae0aa [Console] Split tests for DialogHelper that tests ask() method 2013-01-08 12:54:42 +01:00
Lee McDermott
2b73975023 Add new tests and fix problem with the second option being chosen on down arrow 2013-01-06 04:05:03 +00:00
Lee McDermott
7bad0ef691 [Console] Add autocomplete as you type 2013-01-03 23:03:04 +01:00
Fabien Potencier
008dc8f1ce [Console] tweaked the select() method in the dialog helper to be more consistent with other method in the same class 2012-12-14 10:43:16 +01:00
Serge Smertin
692b0f41ae [Console] added select() method for DialogHelper 2012-12-14 08:36:07 +01:00