This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Fabien Potencier 81bf9108a0 feature #13220 [Console] Made output docopt compatible (WouterJ)
This PR was squashed before being merged into the 2.7 branch (closes #13220).

Discussion
----------

[Console] Made output docopt compatible

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

This was harder than I thought. To sum up:

 * The output now follows the [docopt](http://docopt.org/) specification
 * There is a new `addUsage` method to add more usage patterns
 * The handling of spaces in the descriptors is refactored to make it easier to understand and to make it render better (using sprintf's features only made it worse imo)

Todo
---

 * [x] Add test for `addUsage` and friends
 * [x] Add test for multiline descriptions of arguments
 * <s>Convert long descriptions to multiline automatically</s>
 * [ ] Submit a doc PR for `addUsage`

Question
---

The docopt specification suggests we should add these usage patterns:

    %command.name% -h | --help
    %command.name% --version

I didn't do that yet, as I think it'll only makes the output more verbose and it's already pretty obvious.

I've taken some decisions which I don't think everybody agrees with. I'm willing to change it, so feel free to comment :)

/cc @Seldaek

Commits
-------

3910940 [Console] Made output docopt compatible
2015-04-08 07:37:48 +02:00
src/Symfony feature #13220 [Console] Made output docopt compatible (WouterJ) 2015-04-08 07:37:48 +02:00
.editorconfig Add EditorConfig File 2012-06-16 14:08:15 +02:00
.gitignore CS: general fixes 2015-03-25 00:47:08 +01:00
.php_cs CS: general fixes 2015-03-25 00:47:08 +01:00
.travis.sh [travis] Do no tar in // 2015-03-13 13:47:20 +01:00
.travis.yml [Debug] Add debug extension to the test suite 2015-04-03 17:33:45 +02:00
CHANGELOG-2.2.md Merge branch '2.2' into 2.3 2013-12-03 15:51:26 +01:00
CHANGELOG-2.3.md updated CHANGELOG for 2.3.27 2015-04-01 16:27:49 +02:00
CHANGELOG-2.4.md updated CHANGELOG for 2.4.9 2014-09-03 11:50:09 +02:00
CHANGELOG-2.5.md updated CHANGELOG for 2.5.10 2015-02-02 10:26:02 +01:00
CHANGELOG-2.6.md updated CHANGELOG for 2.6.6 2015-04-01 18:55:18 +02:00
composer.json [PhpUnitBridge] do not replace but require-dev in symfony/symfony 2015-03-07 17:28:03 +01:00
CONTRIBUTING.md [2.3] Update CONTRIBUTING.md 2015-02-24 10:01:10 +01:00
CONTRIBUTORS.md update CONTRIBUTORS for 2.3.27 2015-04-01 16:28:11 +02:00
LICENSE Updated copyright to 2015 2015-01-01 13:56:52 +01:00
phpunit.xml.dist Merge branch '2.3' into 2.6 2015-02-24 12:52:21 +01:00
README.md Update README.md to min PHP 5.3.9 2015-01-10 19:20:22 +01:00
UPGRADE-2.1.md Remove aligned '=>' and '=' 2014-10-26 08:30:58 +01:00
UPGRADE-2.2.md Merge branch '2.3' into 2.5 2014-10-01 07:50:18 +02:00
UPGRADE-2.3.md [Doc] Use Markdown syntax highlighting 2014-10-01 07:38:33 +02:00
UPGRADE-2.4.md [Form] Changed (Number|Integer)ToLocalizedStringTransformer::reverseTransform() to do rounding 2013-08-01 17:19:11 +02:00
UPGRADE-2.5.md Merge branch '2.5' into 2.6 2015-01-05 21:59:13 +01:00
UPGRADE-2.6.md Fix grammar 2014-12-30 09:24:50 +01:00
UPGRADE-2.7.md [Config] Delegate creation of ConfigCache instances to a factory. 2015-04-08 07:21:35 +02:00
UPGRADE-3.0.md feature #13717 Deprecated precision option in favor of scale (WouterJ) 2015-04-03 19:01:25 +02:00

README

What is Symfony?

Symfony is a PHP 5.3 full-stack web framework. It is written with speed and flexibility in mind. It allows developers to build better and easy to maintain websites with PHP.

Symfony can be used to develop all kind of websites, from your personal blog to high traffic ones like Dailymotion or Yahoo! Answers.

Requirements

Symfony is only supported on PHP 5.3.9 and up.

Be warned that PHP 5.3.16 has a major bug in the Reflection subsystem and is not suitable to run Symfony (https://bugs.php.net/bug.php?id=62715)

Installation

The best way to install Symfony is to download the Symfony Standard Edition available at http://symfony.com/download.

Documentation

The "Quick Tour" tutorial gives you a first feeling of the framework. If, like us, you think that Symfony can help speed up your development and take the quality of your work to the next level, read the official Symfony documentation.

Contributing

Symfony is an open source, community-driven project. If you'd like to contribute, please read the Contributing Code part of the documentation. If you're submitting a pull request, please follow the guidelines in the Submitting a Patch section and use Pull Request Template.

Running Symfony Tests

Information on how to run the Symfony test suite can be found in the Running Symfony Tests section.