Przeglądaj źródła

merged branch igorw/composer (PR #2275)

Commits
-------

731b28b [composer] add missing deps for FrameworkBundle
9c8f100 [composer] change ext/intl to the new ext-intl syntax
d535afe [composer] fix monolog-bridge composer.json, add more inter-component deps
9ade639 [composer] add composer.json

Discussion
----------

Composer

This PR adds a composer.json file for [composer](https://github.com/composer/composer) ([more info](packagist.org/about-composer)).

For discussion you can also go into #composer-dev on freenode and argue with naderman, seldaek and everzet.

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

by naderman at 2011/09/26 15:51:51 -0700

You haven't entered any keywords, they might come in handy when searching for packages on packagist.

But really this is just a +1 ;-)

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

by stof at 2011/09/26 16:12:21 -0700

See my comments on your previous (non-rebased) commit: https://github.com/igorw/symfony/commit/f1c0242b5ae9137c5519557144e803cf50ae9213

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

by igorw at 2011/09/27 00:04:36 -0700

Following dependencies do not have a composer.json yet: Twig, Doctrine (orm, dbal, common), swiftmailer.

Also missing from the standard edition: assetic, twig-extensions, jsm-metadata, SensioFrameworkExtraBundle, JMSSecurityExtraBundle, SensioDistributionBundle, SensioGeneratorBundle, AsseticBundle.

The point is, those can be added later on. Having the components composerized is already a leap forward. Also, doctrine depends on some symfony components, we've got to start somewhere.

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

by Seldaek at 2011/09/27 00:36:41 -0700

Also, just for information, the plan is to have `symfony/framework-bundle` be the "framework", with all dependencies to doctrine etc, though we should really only have strict requirements in there, and then in symfony-standard we ship a composer.json that requires the framework-bundle, doctrine-orm and things like that that are not essential to core. Otherwise people don't have a choice about what they use anymore.

Just a comment btw, the json is invalid, all / should be escaped. However json_decode is nice enough to parse those without complaining, browsers do too, even Crockford's json2.js does, so I'm not sure if we should privilege readability over strictness, since it seems nobody really cares about this escaping.

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

by igorw at 2011/09/27 00:41:39 -0700

So, I've implemented all of @stof's suggestions, except (for reasons stated above):

* doctrine to DoctrineBundle
* swiftmailer to SwiftmailerBundle
* twig to TwigBundle
* doctrine-common to Validator
* FrameworkBundle (what exactly does it depend on?)

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

by stof at 2011/09/27 00:52:31 -0700

@igorw at least HttpKernel, Routing, Templating, EventDispatcher, Doctrine Common (annotations cannot be disabled), Translator, Form (optional), Validator (optional), Console (optional). See the service definitions to see the others

@Seldaek FrameworkBundle does not depend on Doctrine, except for Common

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

by beberlei at 2011/09/27 03:15:34 -0700

What does the symfony/ or ext/ prefix control in composer?

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

by Seldaek at 2011/09/27 03:33:52 -0700

symfony/ is just the (mandatory) vendor namespace. Also ext/ has been renamed to ext- now, so it's not in any vendor, and should avoid potential issues.

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

by beberlei at 2011/09/27 05:07:03 -0700

@Seldaek Mandatory? So every package name is "vendor/package"? I like that because previously i thought package names are not namespaced, and thus clashes could occur between different communities easily.

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

by Seldaek at 2011/09/27 05:16:20 -0700

@beberlei: Mandatory. As of yesterday http://packagist.org/ will tell you you have an invalid package name if there's no slash in it. See https://github.com/composer/packagist/commit/1306d1ca82ecb004a885671b823c9793efa9354b#diff-3
Fabien Potencier 14 lat temu
rodzic
commit
5c760b0d40
33 zmienionych plików z 841 dodań i 0 usunięć
  1. 56 0
      composer.json
  2. 26 0
      src/Symfony/Bridge/Doctrine/composer.json
  3. 24 0
      src/Symfony/Bridge/Monolog/composer.json
  4. 28 0
      src/Symfony/Bridge/Twig/composer.json
  5. 22 0
      src/Symfony/Bundle/DoctrineAbstractBundle/composer.json
  6. 24 0
      src/Symfony/Bundle/DoctrineBundle/composer.json
  7. 32 0
      src/Symfony/Bundle/FrameworkBundle/composer.json
  8. 24 0
      src/Symfony/Bundle/MonologBundle/composer.json
  9. 23 0
      src/Symfony/Bundle/SecurityBundle/composer.json
  10. 22 0
      src/Symfony/Bundle/SwiftmailerBundle/composer.json
  11. 22 0
      src/Symfony/Bundle/TwigBundle/composer.json
  12. 23 0
      src/Symfony/Bundle/WebProfilerBundle/composer.json
  13. 26 0
      src/Symfony/Component/BrowserKit/composer.json
  14. 22 0
      src/Symfony/Component/ClassLoader/composer.json
  15. 22 0
      src/Symfony/Component/Config/composer.json
  16. 22 0
      src/Symfony/Component/Console/composer.json
  17. 22 0
      src/Symfony/Component/CssSelector/composer.json
  18. 28 0
      src/Symfony/Component/DependencyInjection/composer.json
  19. 25 0
      src/Symfony/Component/DomCrawler/composer.json
  20. 22 0
      src/Symfony/Component/EventDispatcher/composer.json
  21. 22 0
      src/Symfony/Component/Finder/composer.json
  22. 28 0
      src/Symfony/Component/Form/composer.json
  23. 22 0
      src/Symfony/Component/HttpFoundation/composer.json
  24. 32 0
      src/Symfony/Component/HttpKernel/composer.json
  25. 25 0
      src/Symfony/Component/Locale/composer.json
  26. 22 0
      src/Symfony/Component/Process/composer.json
  27. 26 0
      src/Symfony/Component/Routing/composer.json
  28. 31 0
      src/Symfony/Component/Security/composer.json
  29. 22 0
      src/Symfony/Component/Serializer/composer.json
  30. 22 0
      src/Symfony/Component/Templating/composer.json
  31. 26 0
      src/Symfony/Component/Translation/composer.json
  32. 26 0
      src/Symfony/Component/Validator/composer.json
  33. 22 0
      src/Symfony/Component/Yaml/composer.json

+ 56 - 0
composer.json

@@ -0,0 +1,56 @@
+{
+    "name": "symfony/symfony",
+    "type": "library",
+    "description": "The Symfony PHP framework",
+    "keywords": ["framework"],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "replace": {
+        "symfony/doctrine-bridge": ">=2.0",
+        "symfony/monolog-bridge": ">=2.0",
+        "symfony/twig-bridge": ">=2.0",
+        "symfony/doctrine-abstract-bundle": ">=2.0",
+        "symfony/doctrine-bundle": ">=2.0",
+        "symfony/framework-bundle": ">=2.0",
+        "symfony/monolog-bundle": ">=2.0",
+        "symfony/security-bundle": ">=2.0",
+        "symfony/swiftmailer-bundle": ">=2.0",
+        "symfony/twig-bundle": ">=2.0",
+        "symfony/web-profiler-bundle": ">=2.0",
+        "symfony/browser-kit": ">=2.0",
+        "symfony/class-loader": ">=2.0",
+        "symfony/config": ">=2.0",
+        "symfony/console": ">=2.0",
+        "symfony/css-selector": ">=2.0",
+        "symfony/dependency-injection": ">=2.0",
+        "symfony/dom-crawler": ">=2.0",
+        "symfony/event-dispatcher": ">=2.0",
+        "symfony/finder": ">=2.0",
+        "symfony/form": ">=2.0",
+        "symfony/http-foundation": ">=2.0",
+        "symfony/http-kernel": ">=2.0",
+        "symfony/locale": ">=2.0",
+        "symfony/process": ">=2.0",
+        "symfony/routing": ">=2.0",
+        "symfony/security": ">=2.0",
+        "symfony/serializer": ">=2.0",
+        "symfony/templating": ">=2.0",
+        "symfony/translation": ">=2.0",
+        "symfony/validator": ">=2.0",
+        "symfony/yaml": ">=2.0"
+    }
+}

+ 26 - 0
src/Symfony/Bridge/Doctrine/composer.json

@@ -0,0 +1,26 @@
+{
+    "name": "symfony/doctrine-bridge",
+    "type": "symfony-bridge",
+    "description": "Symfony Doctrine Bridge",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "suggest": {
+        "symfony/form": ">=2.0",
+        "symfony/validator": ">=2.0"
+    }
+}

+ 24 - 0
src/Symfony/Bridge/Monolog/composer.json

@@ -0,0 +1,24 @@
+{
+    "name": "symfony/monolog-bridge",
+    "type": "symfony-bridge",
+    "description": "Symfony Monolog Bridge",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/http-kernel": ">=2.0",
+        "monolog/monolog": ">=1.0"
+    }
+}

+ 28 - 0
src/Symfony/Bridge/Twig/composer.json

@@ -0,0 +1,28 @@
+{
+    "name": "symfony/twig-bridge",
+    "type": "symfony-bridge",
+    "description": "Symfony Twig Bridge",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "suggest": {
+        "symfony/form": ">=2.0",
+        "symfony/routing": ">=2.0",
+        "symfony/translation": ">=2.0",
+        "symfony/yaml": ">=2.0"
+    }
+}

+ 22 - 0
src/Symfony/Bundle/DoctrineAbstractBundle/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/doctrine-abstract-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony DoctrineAbstractBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 24 - 0
src/Symfony/Bundle/DoctrineBundle/composer.json

@@ -0,0 +1,24 @@
+{
+    "name": "symfony/doctrine-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony DoctrineBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/doctrine-bridge": ">=2.0",
+        "symfony/doctrine-abstract-bundle": ">=2.0"
+    }
+}

+ 32 - 0
src/Symfony/Bundle/FrameworkBundle/composer.json

@@ -0,0 +1,32 @@
+{
+    "name": "symfony/framework-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony FrameworkBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/event-dispatcher": ">=2.0",
+        "symfony/http-kernel": ">=2.0",
+        "symfony/routing": ">=2.0",
+        "symfony/templating": ">=2.0",
+        "symfony/translator": ">=2.0"
+    },
+    "recommend": {
+        "symfony/console": ">=2.0",
+        "symfony/form": ">=2.0",
+        "symfony/validator": ">=2.0"
+    }
+}

+ 24 - 0
src/Symfony/Bundle/MonologBundle/composer.json

@@ -0,0 +1,24 @@
+{
+    "name": "symfony/monolog-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony MonologBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "monolog/monolog": ">=1.0",
+        "symfony/monolog-bridge": ">=2.0"
+    }
+}

+ 23 - 0
src/Symfony/Bundle/SecurityBundle/composer.json

@@ -0,0 +1,23 @@
+{
+    "name": "symfony/security-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony SecurityBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/security": ">=2.0"
+    }
+}

+ 22 - 0
src/Symfony/Bundle/SwiftmailerBundle/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/swiftmailer-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony SwiftmailerBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 22 - 0
src/Symfony/Bundle/TwigBundle/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/twig-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony TwigBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 23 - 0
src/Symfony/Bundle/WebProfilerBundle/composer.json

@@ -0,0 +1,23 @@
+{
+    "name": "symfony/web-profiler-bundle",
+    "type": "symfony-bundle",
+    "description": "Symfony WebProfilerBundle",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/twig-bundle": ">=2.0"
+    }
+}

+ 26 - 0
src/Symfony/Component/BrowserKit/composer.json

@@ -0,0 +1,26 @@
+{
+    "name": "symfony/browser-kit",
+    "type": "library",
+    "description": "Symfony BrowserKit Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/dom-crawler": ">=2.0"
+    },
+    "suggest": {
+        "symfony/process": ">=2.0"
+    }
+}

+ 22 - 0
src/Symfony/Component/ClassLoader/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/class-loader",
+    "type": "library",
+    "description": "Symfony ClassLoader Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 22 - 0
src/Symfony/Component/Config/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/config",
+    "type": "library",
+    "description": "Symfony Config Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 22 - 0
src/Symfony/Component/Console/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/console",
+    "type": "library",
+    "description": "Symfony Console Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 22 - 0
src/Symfony/Component/CssSelector/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/css-selector",
+    "type": "library",
+    "description": "Symfony CssSelector Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 28 - 0
src/Symfony/Component/DependencyInjection/composer.json

@@ -0,0 +1,28 @@
+{
+    "name": "symfony/dependency-injection",
+    "type": "library",
+    "description": "Symfony DependencyInjection Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "recommend": {
+        "symfony/config": ">=2.0"
+    },
+    "suggest": {
+        "symfony/yaml": ">=2.0"
+    }
+}

+ 25 - 0
src/Symfony/Component/DomCrawler/composer.json

@@ -0,0 +1,25 @@
+{
+    "name": "symfony/dom-crawler",
+    "type": "library",
+    "description": "Symfony DomCrawler Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "suggest": {
+        "symfony/css-selector": ">=2.0"
+    }
+}

+ 22 - 0
src/Symfony/Component/EventDispatcher/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/event-dispatcher",
+    "type": "library",
+    "description": "Symfony EventDispatcher Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 22 - 0
src/Symfony/Component/Finder/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/finder",
+    "type": "library",
+    "description": "Symfony Finder Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 28 - 0
src/Symfony/Component/Form/composer.json

@@ -0,0 +1,28 @@
+{
+    "name": "symfony/form",
+    "type": "library",
+    "description": "Symfony Form Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/event-dispatcher": ">=2.0",
+        "symfony/locale": ">=2.0",
+        "symfony/validator": ">=2.0"
+    },
+    "suggest": {
+        "symfony/http-foundation": ">=2.0"
+    }
+}

+ 22 - 0
src/Symfony/Component/HttpFoundation/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/http-foundation",
+    "type": "library",
+    "description": "Symfony HttpFoundation Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 32 - 0
src/Symfony/Component/HttpKernel/composer.json

@@ -0,0 +1,32 @@
+{
+    "name": "symfony/http-kernel",
+    "type": "library",
+    "description": "Symfony HttpKernel Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/event-dispatcher": ">=2.0",
+        "symfony/http-foundation": ">=2.0"
+    },
+    "suggest": {
+        "symfony/browser-kit": ">=2.0",
+        "symfony/class-loader": ">=2.0",
+        "symfony/config": ">=2.0",
+        "symfony/console": ">=2.0",
+        "symfony/dependency-injection": ">=2.0",
+        "symfony/finder": ">=2.0"
+    }
+}

+ 25 - 0
src/Symfony/Component/Locale/composer.json

@@ -0,0 +1,25 @@
+{
+    "name": "symfony/locale",
+    "type": "library",
+    "description": "Symfony Locale Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "suggest": {
+        "ext-intl": ">=5.3.2"
+    }
+}

+ 22 - 0
src/Symfony/Component/Process/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/process",
+    "type": "library",
+    "description": "Symfony Process Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 26 - 0
src/Symfony/Component/Routing/composer.json

@@ -0,0 +1,26 @@
+{
+    "name": "symfony/routing",
+    "type": "library",
+    "description": "Symfony Routing Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "suggest": {
+        "symfony/config": ">=2.0",
+        "symfony/yaml": ">=2.0"
+    }
+}

+ 31 - 0
src/Symfony/Component/Security/composer.json

@@ -0,0 +1,31 @@
+{
+    "name": "symfony/security",
+    "type": "library",
+    "description": "Symfony Security Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2",
+        "symfony/event-dispatcher": ">=2.0",
+        "symfony/http-foundation": ">=2.0",
+        "symfony/http-kernel": ">=2.0"
+    },
+    "suggest": {
+        "symfony/class-loader": ">=2.0",
+        "symfony/finder": ">=2.0",
+        "symfony/form": ">=2.0",
+        "symfony/routing": ">=2.0"
+    }
+}

+ 22 - 0
src/Symfony/Component/Serializer/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/serializer",
+    "type": "library",
+    "description": "Symfony Serializer Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 22 - 0
src/Symfony/Component/Templating/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/templating",
+    "type": "library",
+    "description": "Symfony Templating Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}

+ 26 - 0
src/Symfony/Component/Translation/composer.json

@@ -0,0 +1,26 @@
+{
+    "name": "symfony/translation",
+    "type": "library",
+    "description": "Symfony Translation Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "suggest": {
+        "symfony/config": ">=2.0",
+        "symfony/yaml": ">=2.0"
+    }
+}

+ 26 - 0
src/Symfony/Component/Validator/composer.json

@@ -0,0 +1,26 @@
+{
+    "name": "symfony/validator",
+    "type": "library",
+    "description": "Symfony Validator Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    },
+    "suggest": {
+        "symfony/http-foundation": ">=2.0",
+        "symfony/yaml": ">=2.0"
+    }
+}

+ 22 - 0
src/Symfony/Component/Yaml/composer.json

@@ -0,0 +1,22 @@
+{
+    "name": "symfony/yaml",
+    "type": "library",
+    "description": "Symfony Yaml Component",
+    "keywords": [],
+    "homepage": "http://symfony.com",
+    "version": "2.0.4",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "http://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.2"
+    }
+}