composer: JsonManipulator regexes run into PREG_BACKTRACK_LIMIT_ERROR or PREG_JIT_STACKLIMIT_ERROR for large composer.json files
JsonManipulator
uses regular expressions to parse composer.json
for e.g. composer require
runs, so inserting, changing, or removing packages leaves the original formatting of the file (mostly) intact.
If the files are large (in particular, if there is a lot of JSON before the require
section), the regular expressions used for this “parsing” may fail in two different ways.
PREG_BACKTRACK_LIMIT_ERROR
With the following composer.json, running composer require ext-foo:*
using any PHP version causes a PREG_BACKTRACK_LIMIT_ERROR
:
{
"config": {
"cache-files-ttl": 0,
"discard-changes": true
},
"minimum-stability": "stable",
"prefer-stable": false,
"provide": {
"heroku-sys\/cedar": "14.2016.03.22"
},
"repositories": [
{
"packagist": false
},
{
"type": "package",
"package": [
{
"type": "metapackage",
"name": "anthonymartin\/geo-location",
"version": "v1.0.0",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "aws\/aws-sdk-php",
"version": "3.9.4",
"require": {
"heroku-sys\/php": ">=5.5"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "cloudinary\/cloudinary_php",
"version": "dev-master",
"require": {
"heroku-sys\/ext-curl": "*",
"heroku-sys\/ext-json": "*",
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/annotations",
"version": "v1.2.7",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/cache",
"version": "v1.6.0",
"require": {
"heroku-sys\/php": "~5.5|~7.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/collections",
"version": "v1.3.0",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/common",
"version": "v2.6.1",
"require": {
"heroku-sys\/php": "~5.5|~7.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/inflector",
"version": "v1.1.0",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/lexer",
"version": "v1.0.1",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "geoip\/geoip",
"version": "v1.16",
"require": [],
"replace": [],
"provide": [],
"conflict": {
"heroku-sys\/ext-geoip": "*"
}
},
{
"type": "metapackage",
"name": "giggsey\/libphonenumber-for-php",
"version": "7.2.5",
"require": {
"heroku-sys\/ext-mbstring": "*"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/guzzle",
"version": "5.3.0",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/promises",
"version": "1.0.3",
"require": {
"heroku-sys\/php": ">=5.5.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/psr7",
"version": "1.2.3",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/ringphp",
"version": "1.1.0",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/streams",
"version": "3.0.0",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "hipchat\/hipchat-php",
"version": "v1.4",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "kriswallsmith\/buzz",
"version": "v0.15",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "league\/csv",
"version": "8.0.0",
"require": {
"heroku-sys\/ext-mbstring": "*",
"heroku-sys\/php": ">=5.5.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "league\/fractal",
"version": "0.13.0",
"require": {
"heroku-sys\/php": ">=5.4"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "mashape\/unirest-php",
"version": "1.2.1",
"require": {
"heroku-sys\/ext-curl": "*",
"heroku-sys\/ext-json": "*",
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "mtdowling\/jmespath.php",
"version": "2.3.0",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "palex\/phpstructureddata",
"version": "v2.0.1",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "psr\/http-message",
"version": "1.0",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "react\/promise",
"version": "v2.2.1",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "rollbar\/rollbar",
"version": "v0.15.0",
"require": {
"heroku-sys\/ext-curl": "*"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "ronanguilloux\/isocodes",
"version": "1.2.0",
"require": {
"heroku-sys\/ext-bcmath": "*",
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "sendgrid\/sendgrid",
"version": "2.1.1",
"require": {
"heroku-sys\/php": ">=5.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "sendgrid\/smtpapi",
"version": "0.0.1",
"require": {
"heroku-sys\/php": ">=5.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/css-selector",
"version": "v2.8.2",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/http-foundation",
"version": "v2.8.2",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/polyfill-php54",
"version": "v1.1.0",
"require": {
"heroku-sys\/php": ">=5.3.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/polyfill-php55",
"version": "v1.1.0",
"require": {
"heroku-sys\/php": ">=5.3.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "thepixeldeveloper\/sitemap",
"version": "3.0.0",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "tijsverkoyen\/css-to-inline-styles",
"version": "1.5.5",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "yiisoft\/yii",
"version": "1.1.17",
"require": {
"heroku-sys\/php": ">=5.1.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "composer.json\/composer.lock",
"version": "dev-597511d6d51b96e4a8afeba2c79982e5",
"require": {
"heroku-sys\/php": "~5.6.0",
"heroku-sys\/ext-newrelic": "*",
"heroku-sys\/ext-gd": "*",
"heroku-sys\/ext-redis": "*"
},
"replace": [],
"provide": [],
"conflict": []
}
]
}
],
"require": {
"composer.json\/composer.lock": "dev-597511d6d51b96e4a8afeba2c79982e5",
"anthonymartin\/geo-location": "v1.0.0",
"aws\/aws-sdk-php": "3.9.4",
"cloudinary\/cloudinary_php": "dev-master",
"doctrine\/annotations": "v1.2.7",
"doctrine\/cache": "v1.6.0",
"doctrine\/collections": "v1.3.0",
"doctrine\/common": "v2.6.1",
"doctrine\/inflector": "v1.1.0",
"doctrine\/lexer": "v1.0.1",
"geoip\/geoip": "v1.16",
"giggsey\/libphonenumber-for-php": "7.2.5",
"guzzlehttp\/guzzle": "5.3.0",
"guzzlehttp\/promises": "1.0.3",
"guzzlehttp\/psr7": "1.2.3",
"guzzlehttp\/ringphp": "1.1.0",
"guzzlehttp\/streams": "3.0.0",
"hipchat\/hipchat-php": "v1.4",
"kriswallsmith\/buzz": "v0.15",
"league\/csv": "8.0.0",
"league\/fractal": "0.13.0",
"mashape\/unirest-php": "1.2.1",
"mtdowling\/jmespath.php": "2.3.0",
"palex\/phpstructureddata": "v2.0.1",
"psr\/http-message": "1.0",
"react\/promise": "v2.2.1",
"rollbar\/rollbar": "v0.15.0",
"ronanguilloux\/isocodes": "1.2.0",
"sendgrid\/sendgrid": "2.1.1",
"sendgrid\/smtpapi": "0.0.1",
"symfony\/css-selector": "v2.8.2",
"symfony\/http-foundation": "v2.8.2",
"symfony\/polyfill-php54": "v1.1.0",
"symfony\/polyfill-php55": "v1.1.0",
"thepixeldeveloper\/sitemap": "3.0.0",
"tijsverkoyen\/css-to-inline-styles": "1.5.5",
"yiisoft\/yii": "1.1.17",
"heroku-sys\/apache": "^2.4.10",
"heroku-sys\/nginx": "~1.8.0"
}
}
PREG_JIT_STACKLIMIT_ERROR
With the following composer.json
, running composer require ext-foo:*
using PHP 7 causes a PREG_JIT_STACKLIMIT_ERROR
(which Composer does not handle, so it reports it as “Failed to execute regex: Unknown error”):
{
"config": {
"cache-files-ttl": 0,
"discard-changes": true
},
"minimum-stability": "stable",
"prefer-stable": false,
"provide": {
"heroku-sys\/cedar": "14.2016.03.22"
},
"repositories": [
{
"packagist": false
},
{
"type": "package",
"package": [
{
"type": "metapackage",
"name": "algolia\/algoliasearch-client-php",
"version": "1.8.1",
"require": {
"heroku-sys\/ext-mbstring": "*",
"heroku-sys\/php": ">=5.4"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "algolia\/algoliasearch-laravel",
"version": "1.0.10",
"require": {
"heroku-sys\/php": ">=5.5.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "asm89\/stack-cors",
"version": "0.2.1",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "aws\/aws-sdk-php",
"version": "3.15.9",
"require": {
"heroku-sys\/php": ">=5.5"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "aws\/aws-sdk-php-laravel",
"version": "3.1.0",
"require": {
"heroku-sys\/php": ">=5.5.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "barryvdh\/laravel-cors",
"version": "v0.7.3",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "bookingsync\/oauth2-bookingsync-php",
"version": "0.1.3",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "classpreloader\/classpreloader",
"version": "3.0.0",
"require": {
"heroku-sys\/php": ">=5.5.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "danielstjules\/stringy",
"version": "1.10.0",
"require": {
"heroku-sys\/ext-mbstring": "*",
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "dnoegel\/php-xdg-base-dir",
"version": "0.1",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/annotations",
"version": "v1.2.7",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/cache",
"version": "v1.6.0",
"require": {
"heroku-sys\/php": "~5.5|~7.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/collections",
"version": "v1.3.0",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/common",
"version": "v2.6.1",
"require": {
"heroku-sys\/php": "~5.5|~7.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/dbal",
"version": "v2.5.4",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/inflector",
"version": "v1.1.0",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "doctrine\/lexer",
"version": "v1.0.1",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "fabpot\/goutte",
"version": "v3.1.2",
"require": {
"heroku-sys\/php": ">=5.5.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "graham-campbell\/manager",
"version": "v2.3.1",
"require": {
"heroku-sys\/php": ">=5.5.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzle\/guzzle",
"version": "v3.9.3",
"require": {
"heroku-sys\/ext-curl": "*",
"heroku-sys\/php": ">=5.3.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/guzzle",
"version": "6.1.1",
"require": {
"heroku-sys\/php": ">=5.5.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/promises",
"version": "1.1.0",
"require": {
"heroku-sys\/php": ">=5.5.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "guzzlehttp\/psr7",
"version": "1.2.3",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "intercom\/intercom-php",
"version": "v1.4.0",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "intervention\/image",
"version": "2.3.6",
"require": {
"heroku-sys\/ext-fileinfo": "*",
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "jakub-onderka\/php-console-color",
"version": "0.1",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "jakub-onderka\/php-console-highlighter",
"version": "v0.3.2",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "jeremeamia\/SuperClosure",
"version": "2.2.0",
"require": {
"heroku-sys\/php": ">=5.4"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "jlapp\/swaggervel",
"version": "dev-master",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "laravel\/framework",
"version": "v5.1.31",
"require": {
"heroku-sys\/ext-mbstring": "*",
"heroku-sys\/ext-openssl": "*",
"heroku-sys\/php": ">=5.5.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "laravelcollective\/html",
"version": "v5.1.9",
"require": {
"heroku-sys\/php": ">=5.5.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "league\/flysystem",
"version": "1.0.19",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "league\/flysystem-aws-s3-v3",
"version": "1.0.9",
"require": {
"heroku-sys\/php": ">=5.5.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "league\/fractal",
"version": "0.13.0",
"require": {
"heroku-sys\/php": ">=5.4"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "league\/glide",
"version": "1.0.0",
"require": {
"heroku-sys\/php": "^5.4 | ^7.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "league\/oauth2-client",
"version": "0.12.1",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "mindscape\/raygun4php",
"version": "dev-master",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "monolog\/monolog",
"version": "1.18.1",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "mtdowling\/cron-expression",
"version": "v1.1.0",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "mtdowling\/jmespath.php",
"version": "2.3.0",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "namshi\/jose",
"version": "5.0.2",
"require": {
"heroku-sys\/php": ">=5.3.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "nesbot\/carbon",
"version": "1.21.0",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "nikic\/php-parser",
"version": "v2.0.1",
"require": {
"heroku-sys\/ext-tokenizer": "*",
"heroku-sys\/php": ">=5.4"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "orangehill\/iseed",
"version": "dev-master",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "paragonie\/random_compat",
"version": "v1.2.2",
"require": {
"heroku-sys\/php": ">=5.2.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "phpseclib\/phpseclib",
"version": "0.3.10",
"require": {
"heroku-sys\/php": ">=5.0.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "predis\/predis",
"version": "v1.0.3",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "psr\/http-message",
"version": "1.0",
"require": {
"heroku-sys\/php": ">=5.3.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "psy\/psysh",
"version": "v0.7.2",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "swiftmailer\/swiftmailer",
"version": "v5.4.1",
"require": {
"heroku-sys\/php": ">=5.3.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/browser-kit",
"version": "v2.8.3",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/console",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/css-selector",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/debug",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/dom-crawler",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/event-dispatcher",
"version": "v2.8.3",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/finder",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/http-foundation",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/http-kernel",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/polyfill-php56",
"version": "v1.1.1",
"require": {
"heroku-sys\/php": ">=5.3.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/polyfill-util",
"version": "v1.1.1",
"require": {
"heroku-sys\/php": ">=5.3.3"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/process",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/routing",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/translation",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "symfony\/var-dumper",
"version": "v2.7.10",
"require": {
"heroku-sys\/php": ">=5.3.9"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "twilio\/sdk",
"version": "4.10.0",
"require": {
"heroku-sys\/php": ">=5.2.1"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "tymon\/jwt-auth",
"version": "0.5.9",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "vinkla\/algolia",
"version": "2.2.1",
"require": {
"heroku-sys\/php": "^5.5.9 || ^7.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "vlucas\/phpdotenv",
"version": "v1.1.1",
"require": {
"heroku-sys\/php": ">=5.3.2"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "zircote\/swagger-php",
"version": "2.0.6",
"require": {
"heroku-sys\/php": ">=5.4.0"
},
"replace": [],
"provide": [],
"conflict": []
},
{
"type": "metapackage",
"name": "composer.json\/composer.lock",
"version": "dev-9206c0799c01f2eb16f18efa00210bb6",
"require": {
"heroku-sys\/php": ">=5.5.9",
"heroku-sys\/ext-gd": "*",
"heroku-sys\/ext-exif": "*",
"heroku-sys\/ext-fileinfo": "*"
},
"replace": [],
"provide": [],
"conflict": []
}
]
}
],
"require": {
"composer.json\/composer.lock": "dev-9206c0799c01f2eb16f18efa00210bb6",
"algolia\/algoliasearch-client-php": "1.8.1",
"algolia\/algoliasearch-laravel": "1.0.10",
"asm89\/stack-cors": "0.2.1",
"aws\/aws-sdk-php": "3.15.9",
"aws\/aws-sdk-php-laravel": "3.1.0",
"barryvdh\/laravel-cors": "v0.7.3",
"bookingsync\/oauth2-bookingsync-php": "0.1.3",
"classpreloader\/classpreloader": "3.0.0",
"danielstjules\/stringy": "1.10.0",
"dnoegel\/php-xdg-base-dir": "0.1",
"doctrine\/annotations": "v1.2.7",
"doctrine\/cache": "v1.6.0",
"doctrine\/collections": "v1.3.0",
"doctrine\/common": "v2.6.1",
"doctrine\/dbal": "v2.5.4",
"doctrine\/inflector": "v1.1.0",
"doctrine\/lexer": "v1.0.1",
"fabpot\/goutte": "v3.1.2",
"graham-campbell\/manager": "v2.3.1",
"guzzle\/guzzle": "v3.9.3",
"guzzlehttp\/guzzle": "6.1.1",
"guzzlehttp\/promises": "1.1.0",
"guzzlehttp\/psr7": "1.2.3",
"intercom\/intercom-php": "v1.4.0",
"intervention\/image": "2.3.6",
"jakub-onderka\/php-console-color": "0.1",
"jakub-onderka\/php-console-highlighter": "v0.3.2",
"jeremeamia\/SuperClosure": "2.2.0",
"jlapp\/swaggervel": "dev-master",
"laravel\/framework": "v5.1.31",
"laravelcollective\/html": "v5.1.9",
"league\/flysystem": "1.0.19",
"league\/flysystem-aws-s3-v3": "1.0.9",
"league\/fractal": "0.13.0",
"league\/glide": "1.0.0",
"league\/oauth2-client": "0.12.1",
"mindscape\/raygun4php": "dev-master",
"monolog\/monolog": "1.18.1",
"mtdowling\/cron-expression": "v1.1.0",
"mtdowling\/jmespath.php": "2.3.0",
"namshi\/jose": "5.0.2",
"nesbot\/carbon": "1.21.0",
"nikic\/php-parser": "v2.0.1",
"orangehill\/iseed": "dev-master",
"paragonie\/random_compat": "v1.2.2",
"phpseclib\/phpseclib": "0.3.10",
"predis\/predis": "v1.0.3",
"psr\/http-message": "1.0",
"psy\/psysh": "v0.7.2",
"swiftmailer\/swiftmailer": "v5.4.1",
"symfony\/browser-kit": "v2.8.3",
"symfony\/console": "v2.7.10",
"symfony\/css-selector": "v2.7.10",
"symfony\/debug": "v2.7.10",
"symfony\/dom-crawler": "v2.7.10",
"symfony\/event-dispatcher": "v2.8.3",
"symfony\/finder": "v2.7.10",
"symfony\/http-foundation": "v2.7.10",
"symfony\/http-kernel": "v2.7.10",
"symfony\/polyfill-php56": "v1.1.1",
"symfony\/polyfill-util": "v1.1.1",
"symfony\/process": "v2.7.10",
"symfony\/routing": "v2.7.10",
"symfony\/translation": "v2.7.10",
"symfony\/var-dumper": "v2.7.10",
"twilio\/sdk": "4.10.0",
"tymon\/jwt-auth": "0.5.9",
"vinkla\/algolia": "2.2.1",
"vlucas\/phpdotenv": "v1.1.1",
"zircote\/swagger-php": "2.0.6",
"heroku-sys\/apache": "^2.4.10",
"heroku-sys\/nginx": "~1.8.0",
"heroku-sys/ext-blackfire": "*"
}
}
I understand these are extreme cases (generated by code, not humans), and the quick workaround is to have the require
section before the big repositories
chunk, but maybe the regexes in JsonManipulator
should/could be more… efficient? 😃
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 16 (16 by maintainers)
Commits related to this issue
- Add support for PREG_JIT_STACKLIMIT_ERROR, refs #5104 — committed to composer/composer by Seldaek 8 years ago
Just to add some closure here, I did the switch over to this new pattern 5ee22f25ba2163d79df4c2b67a3b4fb29e8532af
Found a way to fix the current patterns, but we discussed with @dzuelke and he’s working on cleaning it up with a more readable regex from http://stackoverflow.com/questions/2583472/regex-to-validate-json/3845829#3845829 which would be a cool improvement 😃