From 1f599c0ee5db2b9e7f29345b22b65c60d32dfc03 Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Wed, 11 Jun 2014 12:05:55 +1000 Subject: [PATCH 1/9] Fix for potential static instance bug. --- .travis.env | 2 +- .travis.yml | 2 +- composer.json | 2 +- composer.lock | 195 +++++++++--------- src/Factory/PathFactory.php | 6 +- .../Factory/FileSystemPathFactory.php | 6 +- .../Factory/PlatformFileSystemPathFactory.php | 6 +- .../Normalizer/FileSystemPathNormalizer.php | 6 +- src/Normalizer/PathNormalizer.php | 6 +- src/Resolver/BasePathResolver.php | 6 +- src/Unix/Factory/UnixPathFactory.php | 6 +- src/Unix/Normalizer/UnixPathNormalizer.php | 6 +- src/Windows/Factory/WindowsPathFactory.php | 6 +- .../Normalizer/WindowsPathNormalizer.php | 6 +- .../Resolver/WindowsBasePathResolver.php | 6 +- 15 files changed, 139 insertions(+), 128 deletions(-) diff --git a/.travis.env b/.travis.env index 809d1e7..513d38a 100644 --- a/.travis.env +++ b/.travis.env @@ -1 +1 @@ -HNXjFjHzq5PPpooRsLe10NTc117F2SjLNzn+ZCnQxmzQdWXeHY+PlL9Nv7X2UIqxxeLddnBxzuJUmhucS7omG3dJ0q5yyf8ky3v3itBh/gd7C3mpIl5npFDSpxRFjksiQWHepISkHN5UeEivCy7ZGuF7N+QPOaiatcrLWVqCJ2s= \ No newline at end of file +W/NwiJDbrj6yiRmVsNAGYenJJjXVWTLhhi+0ykNVAJtq/akx+3HlE9WvrvUfGu+18o7VWHfFXdq8tln79SC873XKta7OYVqMRfdB+KxjIu1LWCEu5bD5AzGZ6vt/797XmYBMds02nyGVlFNY7fzF1QcWhFO0o+hrZKOj5cmmhIQ= \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index e7cc451..7664d5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ matrix: env: global: - ARCHER_PUBLISH_VERSION=5.5 - - secure: "HNXjFjHzq5PPpooRsLe10NTc117F2SjLNzn+ZCnQxmzQdWXeHY+PlL9Nv7X2UIqxxeLddnBxzuJUmhucS7omG3dJ0q5yyf8ky3v3itBh/gd7C3mpIl5npFDSpxRFjksiQWHepISkHN5UeEivCy7ZGuF7N+QPOaiatcrLWVqCJ2s=" + - secure: "W/NwiJDbrj6yiRmVsNAGYenJJjXVWTLhhi+0ykNVAJtq/akx+3HlE9WvrvUfGu+18o7VWHfFXdq8tln79SC873XKta7OYVqMRfdB+KxjIu1LWCEu5bD5AzGZ6vt/797XmYBMds02nyGVlFNY7fzF1QcWhFO0o+hrZKOj5cmmhIQ=" install: - ./.travis.install diff --git a/composer.json b/composer.json index dc45fef..b60ddce 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "icecave/isolator": "~2" }, "require-dev": { - "icecave/archer": "~1", + "icecave/archer": "dev-develop@dev", "eloquent/liberator": "~2" }, "autoload": { diff --git a/composer.lock b/composer.lock index 55e98e9..9d5c970 100644 --- a/composer.lock +++ b/composer.lock @@ -1,34 +1,38 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" ], - "hash": "660b51aa52e6032fd19253a3ba81e0be", + "hash": "00dfda84d65bc836ee0ee3804facf37c", "packages": [ { "name": "icecave/isolator", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/IcecaveStudios/isolator.git", - "reference": "2f3fbfcee90790fb3ddde9d4288a2a927cdf6dd6" + "reference": "1a97a7ea0a3acf4b6caf06313d72c32e0182bca5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/IcecaveStudios/isolator/zipball/2f3fbfcee90790fb3ddde9d4288a2a927cdf6dd6", - "reference": "2f3fbfcee90790fb3ddde9d4288a2a927cdf6dd6", + "url": "https://api.github.com/repos/IcecaveStudios/isolator/zipball/1a97a7ea0a3acf4b6caf06313d72c32e0182bca5", + "reference": "1a97a7ea0a3acf4b6caf06313d72c32e0182bca5", "shasum": "" }, "require": { "php": ">=5.3" }, "require-dev": { - "icecave/archer": "~0.4" + "icecave/archer": "~1" + }, + "suggest": { + "eloquent/asplode": "Drop-in exception-based error handling." }, "type": "library", "autoload": { - "psr-0": { - "Icecave\\Isolator": "lib" + "psr-4": { + "Icecave\\Isolator\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -42,7 +46,7 @@ "homepage": "https://github.com/jmalloc" } ], - "description": "Isolate PHP tests from the global environment.", + "description": "Dependency injection for global functions.", "homepage": "https://github.com/IcecaveStudios/isolator", "keywords": [ "fake", @@ -52,7 +56,7 @@ "test", "unit" ], - "time": "2013-06-04 05:00:29" + "time": "2014-02-27 04:33:16" } ], "packages-dev": [ @@ -215,22 +219,22 @@ }, { "name": "guzzle/guzzle", - "version": "v3.8.1", + "version": "v3.9.1", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba" + "url": "https://github.com/guzzle/guzzle3.git", + "reference": "92d9934f2fca1da15178c91239576ae26e505e60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/4de0618a01b34aa1c8c33a3f13f396dcd3882eba", - "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/92d9934f2fca1da15178c91239576ae26e505e60", + "reference": "92d9934f2fca1da15178c91239576ae26e505e60", "shasum": "" }, "require": { "ext-curl": "*", "php": ">=5.3.3", - "symfony/event-dispatcher": ">=2.1" + "symfony/event-dispatcher": "~2.1" }, "replace": { "guzzle/batch": "self.version", @@ -257,13 +261,13 @@ "guzzle/stream": "self.version" }, "require-dev": { - "doctrine/cache": "*", - "monolog/monolog": "1.*", + "doctrine/cache": "~1.3", + "monolog/monolog": "~1.0", "phpunit/phpunit": "3.7.*", - "psr/log": "1.0.*", - "symfony/class-loader": "*", - "zendframework/zend-cache": "<2.3", - "zendframework/zend-log": "<2.3" + "psr/log": "~1.0", + "symfony/class-loader": "~2.1", + "zendframework/zend-cache": "2.*,<2.3", + "zendframework/zend-log": "2.*,<2.3" }, "type": "library", "extra": { @@ -303,20 +307,20 @@ "rest", "web service" ], - "time": "2014-01-28 22:29:15" + "time": "2014-05-07 17:04:22" }, { "name": "icecave/archer", - "version": "1.1.4", + "version": "dev-develop", "source": { "type": "git", "url": "https://github.com/IcecaveStudios/archer.git", - "reference": "dfc39396bdd9bc22ba00beecc3cfc26fcb535197" + "reference": "852ad41e4e109a24262d93c5c00d75b579914455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/dfc39396bdd9bc22ba00beecc3cfc26fcb535197", - "reference": "dfc39396bdd9bc22ba00beecc3cfc26fcb535197", + "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/852ad41e4e109a24262d93c5c00d75b579914455", + "reference": "852ad41e4e109a24262d93c5c00d75b579914455", "shasum": "" }, "require": { @@ -375,7 +379,7 @@ "testing", "unit" ], - "time": "2014-02-18 03:03:13" + "time": "2014-05-20 12:46:19" }, { "name": "nikic/php-parser", @@ -423,21 +427,27 @@ }, { "name": "phake/phake", - "version": "v1.0.3", + "version": "v1.0.5", "source": { "type": "git", "url": "https://github.com/mlively/Phake.git", - "reference": "4d822246b401f4dc609500d47e42dac8df645f4f" + "reference": "14e4788698e4a21774220c22f3dcaa2e97648b61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mlively/Phake/zipball/4d822246b401f4dc609500d47e42dac8df645f4f", - "reference": "4d822246b401f4dc609500d47e42dac8df645f4f", + "url": "https://api.github.com/repos/mlively/Phake/zipball/14e4788698e4a21774220c22f3dcaa2e97648b61", + "reference": "14e4788698e4a21774220c22f3dcaa2e97648b61", "shasum": "" }, "require": { "php": ">=5.2.0" }, + "require-dev": { + "doctrine/common": "2.3.*", + "ext-soap": "*", + "hamcrest/hamcrest-php": "1.1.*", + "phpunit/phpunit": "3.7.*" + }, "type": "library", "autoload": { "classmap": [ @@ -463,7 +473,7 @@ "mock", "testing" ], - "time": "2012-05-14 15:06:51" + "time": "2014-04-16 14:49:56" }, { "name": "pimple/pimple", @@ -680,17 +690,17 @@ }, { "name": "symfony/config", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/Config", "source": { "type": "git", "url": "https://github.com/symfony/Config.git", - "reference": "d81bd01eac1514c10dcb3b11eaa9048d6b87dd1f" + "reference": "9c8caadb38ecc69ac35ab31af4d1996944b5a09f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Config/zipball/d81bd01eac1514c10dcb3b11eaa9048d6b87dd1f", - "reference": "d81bd01eac1514c10dcb3b11eaa9048d6b87dd1f", + "url": "https://api.github.com/repos/symfony/Config/zipball/9c8caadb38ecc69ac35ab31af4d1996944b5a09f", + "reference": "9c8caadb38ecc69ac35ab31af4d1996944b5a09f", "shasum": "" }, "require": { @@ -700,7 +710,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -726,36 +736,38 @@ ], "description": "Symfony Config Component", "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "time": "2014-04-22 08:11:23" }, { "name": "symfony/console", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/Console", "source": { "type": "git", "url": "https://github.com/symfony/Console.git", - "reference": "940f217cbc3c8a33e5403e7c595495c4884400fe" + "reference": "ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/940f217cbc3c8a33e5403e7c595495c4884400fe", - "reference": "940f217cbc3c8a33e5403e7c595495c4884400fe", + "url": "https://api.github.com/repos/symfony/Console/zipball/ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c", + "reference": "ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { + "psr/log": "~1.0", "symfony/event-dispatcher": "~2.1" }, "suggest": { + "psr/log": "For using the console logger", "symfony/event-dispatcher": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -781,28 +793,31 @@ ], "description": "Symfony Console Component", "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "time": "2014-05-22 08:54:24" }, { "name": "symfony/event-dispatcher", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/EventDispatcher", "source": { "type": "git", "url": "https://github.com/symfony/EventDispatcher.git", - "reference": "4708b8cd41984a5ba29fe7dd40716f7f761ac501" + "reference": "cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/4708b8cd41984a5ba29fe7dd40716f7f761ac501", - "reference": "4708b8cd41984a5ba29fe7dd40716f7f761ac501", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8", + "reference": "cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "symfony/dependency-injection": "~2.0" + "psr/log": "~1.0", + "symfony/config": "~2.0", + "symfony/dependency-injection": "~2.0", + "symfony/stopwatch": "~2.2" }, "suggest": { "symfony/dependency-injection": "", @@ -811,7 +826,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -837,21 +852,21 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "time": "2014-04-29 10:13:57" }, { "name": "symfony/filesystem", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/Filesystem", "source": { "type": "git", "url": "https://github.com/symfony/Filesystem.git", - "reference": "7e65abb06d3b38f4be89266fe3fb4a759544e713" + "reference": "98e831eac836a0a5911626ce82684155f21d0e4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Filesystem/zipball/7e65abb06d3b38f4be89266fe3fb4a759544e713", - "reference": "7e65abb06d3b38f4be89266fe3fb4a759544e713", + "url": "https://api.github.com/repos/symfony/Filesystem/zipball/98e831eac836a0a5911626ce82684155f21d0e4d", + "reference": "98e831eac836a0a5911626ce82684155f21d0e4d", "shasum": "" }, "require": { @@ -860,7 +875,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -886,21 +901,21 @@ ], "description": "Symfony Filesystem Component", "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "time": "2014-04-16 10:36:21" }, { "name": "symfony/finder", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/Finder", "source": { "type": "git", "url": "https://github.com/symfony/Finder.git", - "reference": "b6735d1fc16da13c4c7dddfe78366a4a098cf011" + "reference": "307aad2c541bbdf43183043645e186ef2cd6b973" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/b6735d1fc16da13c4c7dddfe78366a4a098cf011", - "reference": "b6735d1fc16da13c4c7dddfe78366a4a098cf011", + "url": "https://api.github.com/repos/symfony/Finder/zipball/307aad2c541bbdf43183043645e186ef2cd6b973", + "reference": "307aad2c541bbdf43183043645e186ef2cd6b973", "shasum": "" }, "require": { @@ -909,7 +924,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -935,21 +950,21 @@ ], "description": "Symfony Finder Component", "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "time": "2014-05-22 13:47:45" }, { "name": "symfony/process", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/Process", "source": { "type": "git", "url": "https://github.com/symfony/Process.git", - "reference": "c175448bac997556f8ab972908a4e14c7291fb03" + "reference": "5d7d78e23894544740219e006320678cfa4cd45b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/c175448bac997556f8ab972908a4e14c7291fb03", - "reference": "c175448bac997556f8ab972908a4e14c7291fb03", + "url": "https://api.github.com/repos/symfony/Process/zipball/5d7d78e23894544740219e006320678cfa4cd45b", + "reference": "5d7d78e23894544740219e006320678cfa4cd45b", "shasum": "" }, "require": { @@ -958,7 +973,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -984,21 +999,21 @@ ], "description": "Symfony Process Component", "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "time": "2014-05-23 09:02:52" }, { "name": "symfony/stopwatch", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/Stopwatch", "source": { "type": "git", "url": "https://github.com/symfony/Stopwatch.git", - "reference": "bffad325e36a3e71fba6d5dcce6e2f4b4637b91a" + "reference": "724d73604ebe6c1c9bdf36533b556123bd9075a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/bffad325e36a3e71fba6d5dcce6e2f4b4637b91a", - "reference": "bffad325e36a3e71fba6d5dcce6e2f4b4637b91a", + "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/724d73604ebe6c1c9bdf36533b556123bd9075a1", + "reference": "724d73604ebe6c1c9bdf36533b556123bd9075a1", "shasum": "" }, "require": { @@ -1007,7 +1022,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -1033,21 +1048,21 @@ ], "description": "Symfony Stopwatch Component", "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "time": "2014-04-18 20:40:13" }, { "name": "symfony/yaml", - "version": "v2.4.2", + "version": "v2.5.0", "target-dir": "Symfony/Component/Yaml", "source": { "type": "git", "url": "https://github.com/symfony/Yaml.git", - "reference": "bb6ddaf8956139d1b8c360b4b713ed0138e876b3" + "reference": "b4b09c68ec2f2727574544ef0173684281a5033c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/bb6ddaf8956139d1b8c360b4b713ed0138e876b3", - "reference": "bb6ddaf8956139d1b8c360b4b713ed0138e876b3", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/b4b09c68ec2f2727574544ef0173684281a5033c", + "reference": "b4b09c68ec2f2727574544ef0173684281a5033c", "shasum": "" }, "require": { @@ -1056,7 +1071,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -1082,7 +1097,7 @@ ], "description": "Symfony Yaml Component", "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "time": "2014-05-16 14:25:18" }, { "name": "twig/twig", @@ -1142,18 +1157,14 @@ "time": "2014-02-13 10:19:29" } ], - "aliases": [ - - ], + "aliases": [], "minimum-stability": "stable", - "stability-flags": [ - - ], + "stability-flags": { + "icecave/archer": 20 + }, "platform": { "php": ">=5.3", "ext-mbstring": "*" }, - "platform-dev": [ - - ] + "platform-dev": [] } diff --git a/src/Factory/PathFactory.php b/src/Factory/PathFactory.php index 75b8479..470ed3d 100644 --- a/src/Factory/PathFactory.php +++ b/src/Factory/PathFactory.php @@ -30,11 +30,11 @@ class PathFactory implements PathFactoryInterface */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/FileSystem/Factory/FileSystemPathFactory.php b/src/FileSystem/Factory/FileSystemPathFactory.php index 9dd7b5f..20b8465 100644 --- a/src/FileSystem/Factory/FileSystemPathFactory.php +++ b/src/FileSystem/Factory/FileSystemPathFactory.php @@ -28,11 +28,11 @@ class FileSystemPathFactory extends AbstractFileSystemPathFactory */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/FileSystem/Factory/PlatformFileSystemPathFactory.php b/src/FileSystem/Factory/PlatformFileSystemPathFactory.php index 748b0ac..4270fbf 100644 --- a/src/FileSystem/Factory/PlatformFileSystemPathFactory.php +++ b/src/FileSystem/Factory/PlatformFileSystemPathFactory.php @@ -27,11 +27,11 @@ class PlatformFileSystemPathFactory extends AbstractFileSystemPathFactory */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/FileSystem/Normalizer/FileSystemPathNormalizer.php b/src/FileSystem/Normalizer/FileSystemPathNormalizer.php index 08c39f1..149f16f 100644 --- a/src/FileSystem/Normalizer/FileSystemPathNormalizer.php +++ b/src/FileSystem/Normalizer/FileSystemPathNormalizer.php @@ -29,11 +29,11 @@ class FileSystemPathNormalizer implements PathNormalizerInterface */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/Normalizer/PathNormalizer.php b/src/Normalizer/PathNormalizer.php index d731470..63bf77e 100644 --- a/src/Normalizer/PathNormalizer.php +++ b/src/Normalizer/PathNormalizer.php @@ -30,11 +30,11 @@ class PathNormalizer implements PathNormalizerInterface */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/Resolver/BasePathResolver.php b/src/Resolver/BasePathResolver.php index 1884c95..565cf90 100644 --- a/src/Resolver/BasePathResolver.php +++ b/src/Resolver/BasePathResolver.php @@ -26,11 +26,11 @@ class BasePathResolver implements BasePathResolverInterface */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/Unix/Factory/UnixPathFactory.php b/src/Unix/Factory/UnixPathFactory.php index 50722e1..fa705e5 100644 --- a/src/Unix/Factory/UnixPathFactory.php +++ b/src/Unix/Factory/UnixPathFactory.php @@ -30,11 +30,11 @@ class UnixPathFactory extends PathFactory */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/Unix/Normalizer/UnixPathNormalizer.php b/src/Unix/Normalizer/UnixPathNormalizer.php index 0f89f08..d313bd9 100644 --- a/src/Unix/Normalizer/UnixPathNormalizer.php +++ b/src/Unix/Normalizer/UnixPathNormalizer.php @@ -28,11 +28,11 @@ class UnixPathNormalizer extends PathNormalizer */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/Windows/Factory/WindowsPathFactory.php b/src/Windows/Factory/WindowsPathFactory.php index 7290df7..65d5bba 100644 --- a/src/Windows/Factory/WindowsPathFactory.php +++ b/src/Windows/Factory/WindowsPathFactory.php @@ -32,11 +32,11 @@ class WindowsPathFactory extends PathFactory implements */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } // Implementation of PathFactoryInterface ================================== diff --git a/src/Windows/Normalizer/WindowsPathNormalizer.php b/src/Windows/Normalizer/WindowsPathNormalizer.php index 66eeeb3..80fd3e9 100644 --- a/src/Windows/Normalizer/WindowsPathNormalizer.php +++ b/src/Windows/Normalizer/WindowsPathNormalizer.php @@ -31,11 +31,11 @@ class WindowsPathNormalizer extends PathNormalizer */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** diff --git a/src/Windows/Resolver/WindowsBasePathResolver.php b/src/Windows/Resolver/WindowsBasePathResolver.php index a0691df..5056d16 100644 --- a/src/Windows/Resolver/WindowsBasePathResolver.php +++ b/src/Windows/Resolver/WindowsBasePathResolver.php @@ -28,11 +28,11 @@ class WindowsBasePathResolver implements BasePathResolverInterface */ public static function instance() { - if (null === static::$instance) { - static::$instance = new static; + if (null === self::$instance) { + self::$instance = new self; } - return static::$instance; + return self::$instance; } /** From c84a45e7b68be52c13b1dc03ba64404f8a7e58e6 Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Wed, 2 Jul 2014 19:31:46 +1000 Subject: [PATCH 2/9] Composer update. --- composer.lock | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/composer.lock b/composer.lock index 9d5c970..310feaa 100644 --- a/composer.lock +++ b/composer.lock @@ -315,12 +315,12 @@ "source": { "type": "git", "url": "https://github.com/IcecaveStudios/archer.git", - "reference": "852ad41e4e109a24262d93c5c00d75b579914455" + "reference": "2c94077ff80b34939860f6733e91d34fedd064e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/852ad41e4e109a24262d93c5c00d75b579914455", - "reference": "852ad41e4e109a24262d93c5c00d75b579914455", + "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/2c94077ff80b34939860f6733e91d34fedd064e8", + "reference": "2c94077ff80b34939860f6733e91d34fedd064e8", "shasum": "" }, "require": { @@ -379,7 +379,7 @@ "testing", "unit" ], - "time": "2014-05-20 12:46:19" + "time": "2014-06-23 00:33:26" }, { "name": "nikic/php-parser", @@ -481,12 +481,12 @@ "source": { "type": "git", "url": "https://github.com/fabpot/Pimple.git", - "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94" + "reference": "v1.0.2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fabpot/Pimple/zipball/ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", - "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", + "url": "https://api.github.com/repos/fabpot/Pimple/zipball/v1.0.2", + "reference": "v1.0.2", "shasum": "" }, "require": { @@ -510,9 +510,7 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" } ], "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", @@ -528,13 +526,13 @@ "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" + "url": "https://github.com/php-fig/log", + "reference": "1.0.0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", + "url": "https://github.com/php-fig/log/archive/1.0.0.zip", + "reference": "1.0.0", "shasum": "" }, "type": "library", @@ -608,9 +606,7 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" } ], "description": "Sami, an API documentation generator", @@ -626,12 +622,12 @@ "source": { "type": "git", "url": "https://github.com/satooshi/php-coveralls.git", - "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760" + "reference": "v0.6.1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", - "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", + "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/v0.6.1", + "reference": "v0.6.1", "shasum": "" }, "require": { @@ -1139,7 +1135,7 @@ "role": "Lead Developer" }, { - "name": "Armin Ronacher2", + "name": "Armin Ronacher", "email": "armin.ronacher@active-4.com", "role": "Project Founder" }, From fcc1a88e60aa3228a83b6ff4125c805f92650b9a Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Fri, 4 Jul 2014 10:49:39 +1000 Subject: [PATCH 3/9] Archer update. --- composer.json | 2 +- composer.lock | 46 ++++++++++++++++++++++++---------------------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/composer.json b/composer.json index b60ddce..dc45fef 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "icecave/isolator": "~2" }, "require-dev": { - "icecave/archer": "dev-develop@dev", + "icecave/archer": "~1", "eloquent/liberator": "~2" }, "autoload": { diff --git a/composer.lock b/composer.lock index 310feaa..4e4dff1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "00dfda84d65bc836ee0ee3804facf37c", + "hash": "660b51aa52e6032fd19253a3ba81e0be", "packages": [ { "name": "icecave/isolator", @@ -311,16 +311,16 @@ }, { "name": "icecave/archer", - "version": "dev-develop", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/IcecaveStudios/archer.git", - "reference": "2c94077ff80b34939860f6733e91d34fedd064e8" + "reference": "49e90d8c0d0a63e537b26d90591367093ebf45be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/2c94077ff80b34939860f6733e91d34fedd064e8", - "reference": "2c94077ff80b34939860f6733e91d34fedd064e8", + "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/49e90d8c0d0a63e537b26d90591367093ebf45be", + "reference": "49e90d8c0d0a63e537b26d90591367093ebf45be", "shasum": "" }, "require": { @@ -379,7 +379,7 @@ "testing", "unit" ], - "time": "2014-06-23 00:33:26" + "time": "2014-06-23 00:33:17" }, { "name": "nikic/php-parser", @@ -481,12 +481,12 @@ "source": { "type": "git", "url": "https://github.com/fabpot/Pimple.git", - "reference": "v1.0.2" + "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fabpot/Pimple/zipball/v1.0.2", - "reference": "v1.0.2", + "url": "https://api.github.com/repos/fabpot/Pimple/zipball/ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", + "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", "shasum": "" }, "require": { @@ -510,7 +510,9 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" } ], "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", @@ -526,13 +528,13 @@ "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log", - "reference": "1.0.0" + "url": "https://github.com/php-fig/log.git", + "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" }, "dist": { "type": "zip", - "url": "https://github.com/php-fig/log/archive/1.0.0.zip", - "reference": "1.0.0", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", + "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", "shasum": "" }, "type": "library", @@ -606,7 +608,9 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" } ], "description": "Sami, an API documentation generator", @@ -622,12 +626,12 @@ "source": { "type": "git", "url": "https://github.com/satooshi/php-coveralls.git", - "reference": "v0.6.1" + "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/v0.6.1", - "reference": "v0.6.1", + "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", + "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", "shasum": "" }, "require": { @@ -1135,7 +1139,7 @@ "role": "Lead Developer" }, { - "name": "Armin Ronacher", + "name": "Armin Ronacher2", "email": "armin.ronacher@active-4.com", "role": "Project Founder" }, @@ -1155,9 +1159,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "icecave/archer": 20 - }, + "stability-flags": [], "platform": { "php": ">=5.3", "ext-mbstring": "*" From 1de7c3ff55b06a02911a69246a01418d00f4ad6b Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Wed, 22 Oct 2014 09:50:02 +1000 Subject: [PATCH 4/9] Fix broken links in contribution guidelines. [ci skip] --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 622b4a0..c8efa06 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,7 +26,7 @@ branching structure please see the [git-flow cheatsheet]. -[Fork the repository](https://help.github.com/articles/fork-a-repo) -[git-flow cheatsheet](http://danielkummer.github.com/git-flow-cheatsheet/) -[PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) -[Squash](http://git-scm.com/book/en/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) +[Fork the repository]: https://help.github.com/articles/fork-a-repo +[git-flow cheatsheet]: http://danielkummer.github.com/git-flow-cheatsheet/ +[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md +[Squash]: http://git-scm.com/book/en/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages From 57452b0ac9cac54bc1e7e0efc6297b429432f931 Mon Sep 17 00:00:00 2001 From: Rixbeck Date: Tue, 21 Oct 2014 11:58:54 +0200 Subject: [PATCH 5/9] Quick filter for edge cases like $path='/A///B///C' that isn't filtered correctly --- src/Factory/PathFactory.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Factory/PathFactory.php b/src/Factory/PathFactory.php index 470ed3d..95d3155 100644 --- a/src/Factory/PathFactory.php +++ b/src/Factory/PathFactory.php @@ -70,12 +70,7 @@ public function create($path) } } - foreach ($atoms as $index => $atom) { - if ('' === $atom) { - array_splice($atoms, $index, 1); - --$numAtoms; - } - } + $atoms = array_filter($atoms, 'strlen'); return $this->createFromAtoms( $atoms, From d0cff4a5a0e9e3323916538281713b03143b3877 Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Wed, 22 Oct 2014 10:25:59 +1000 Subject: [PATCH 6/9] Tests for #38, also fixed Windows path factory. --- src/Factory/PathFactory.php | 5 +---- src/Windows/Factory/WindowsPathFactory.php | 9 +-------- test/suite/Factory/PathFactoryTest.php | 2 ++ test/suite/Unix/Factory/UnixPathFactoryTest.php | 2 ++ test/suite/Windows/Factory/WindowsPathFactoryTest.php | 6 ++++++ 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Factory/PathFactory.php b/src/Factory/PathFactory.php index 95d3155..384fc59 100644 --- a/src/Factory/PathFactory.php +++ b/src/Factory/PathFactory.php @@ -66,14 +66,11 @@ public function create($path) if ('' === $atoms[$numAtoms - 1]) { $hasTrailingSeparator = !$isAbsolute || $numAtoms > 1; array_pop($atoms); - --$numAtoms; } } - $atoms = array_filter($atoms, 'strlen'); - return $this->createFromAtoms( - $atoms, + array_filter($atoms, 'strlen'), $isAbsolute, $hasTrailingSeparator ); diff --git a/src/Windows/Factory/WindowsPathFactory.php b/src/Windows/Factory/WindowsPathFactory.php index 65d5bba..af4055d 100644 --- a/src/Windows/Factory/WindowsPathFactory.php +++ b/src/Windows/Factory/WindowsPathFactory.php @@ -91,18 +91,11 @@ public function create($path) if ('' === $atoms[$numAtoms - 1]) { $hasTrailingSeparator = true; array_pop($atoms); - --$numAtoms; - } - } - - foreach ($atoms as $index => $atom) { - if ('' === $atom) { - array_splice($atoms, $index, 1); } } return $this->createFromDriveAndAtoms( - $atoms, + array_filter($atoms, 'strlen'), $drive, $isAbsolute, $isAnchored, diff --git a/test/suite/Factory/PathFactoryTest.php b/test/suite/Factory/PathFactoryTest.php index 689d8b5..771d899 100644 --- a/test/suite/Factory/PathFactoryTest.php +++ b/test/suite/Factory/PathFactoryTest.php @@ -35,6 +35,7 @@ public function createData() 'Absolute with empty atoms' => array('/foo//bar', array('foo', 'bar'), true, false), 'Absolute with empty atoms at start' => array('//foo', array('foo'), true, false), 'Absolute with empty atoms at end' => array('/foo//', array('foo'), true, true), + 'Absolute with excessive separators' => array('/A///B///C', array('A', 'B', 'C'), true, false), 'Absolute with whitespace atoms' => array('/ foo bar / baz qux ', array(' foo bar ', ' baz qux '), true, false), 'Empty' => array('', array('.'), false, false), @@ -43,6 +44,7 @@ public function createData() 'Relative with trailing separator' => array('foo/bar/', array('foo', 'bar'), false, true), 'Relative with empty atoms' => array('foo//bar', array('foo', 'bar'), false, false), 'Relative with empty atoms at end' => array('foo/bar//', array('foo', 'bar'), false, true), + 'Excessive separators' => array('A///B///C', array('A', 'B', 'C'), false, false), 'Relative with whitespace atoms' => array(' foo bar / baz qux ', array(' foo bar ', ' baz qux '), false, false), ); } diff --git a/test/suite/Unix/Factory/UnixPathFactoryTest.php b/test/suite/Unix/Factory/UnixPathFactoryTest.php index f86fddf..9631618 100644 --- a/test/suite/Unix/Factory/UnixPathFactoryTest.php +++ b/test/suite/Unix/Factory/UnixPathFactoryTest.php @@ -35,6 +35,7 @@ public function createData() 'Absolute with empty atoms' => array('/foo//bar', array('foo', 'bar'), true, false), 'Absolute with empty atoms at start' => array('//foo', array('foo'), true, false), 'Absolute with empty atoms at end' => array('/foo//', array('foo'), true, true), + 'Absolute with excessive separators' => array('/A///B///C', array('A', 'B', 'C'), true, false), 'Absolute with whitespace atoms' => array('/ foo bar / baz qux ', array(' foo bar ', ' baz qux '), true, false), 'Empty' => array('', array('.'), false, false), @@ -43,6 +44,7 @@ public function createData() 'Relative with trailing separator' => array('foo/bar/', array('foo', 'bar'), false, true), 'Relative with empty atoms' => array('foo//bar', array('foo', 'bar'), false, false), 'Relative with empty atoms at end' => array('foo/bar//', array('foo', 'bar'), false, true), + 'Excessive separators' => array('A///B///C', array('A', 'B', 'C'), false, false), 'Relative with whitespace atoms' => array(' foo bar / baz qux ', array(' foo bar ', ' baz qux '), false, false), ); } diff --git a/test/suite/Windows/Factory/WindowsPathFactoryTest.php b/test/suite/Windows/Factory/WindowsPathFactoryTest.php index ab48a1f..42c5a3e 100644 --- a/test/suite/Windows/Factory/WindowsPathFactoryTest.php +++ b/test/suite/Windows/Factory/WindowsPathFactoryTest.php @@ -36,6 +36,7 @@ public function createData() 'Absolute with empty atoms' => array('C:/foo//bar', array('foo', 'bar'), 'C', true, false, false), 'Absolute with empty atoms at start' => array('C://foo', array('foo'), 'C', true, false, false), 'Absolute with empty atoms at end' => array('C:/foo//', array('foo'), 'C', true, false, true), + 'Absolute with excessive separators' => array('C:/A///B///C', array('A', 'B', 'C'), 'C', true, false, false), 'Absolute with whitespace atoms' => array('C:/ foo bar / baz qux ', array(' foo bar ', ' baz qux '), 'C', true, false, false), 'Anchored relative root' => array('/', array(), null, false, true, false), @@ -44,6 +45,7 @@ public function createData() 'Anchored relative with empty atoms' => array('/foo//bar', array('foo', 'bar'), null, false, true, false), 'Anchored relative with empty atoms at start' => array('//foo', array('foo'), null, false, true, false), 'Anchored relative with empty atoms at end' => array('/foo//', array('foo'), null, false, true, true), + 'Anchored relative with excessive separators' => array('/A///B///C', array('A', 'B', 'C'), null, false, true, false), 'Anchored relative with whitespace atoms' => array('/ foo bar / baz qux ', array(' foo bar ', ' baz qux '), null, false, true, false), 'Empty' => array('', array('.'), null, false, false, false), @@ -52,6 +54,7 @@ public function createData() 'Relative with trailing separator' => array('foo/bar/', array('foo', 'bar'), null, false, false, true), 'Relative with empty atoms' => array('foo//bar', array('foo', 'bar'), null, false, false, false), 'Relative with empty atoms at end' => array('foo/bar//', array('foo', 'bar'), null, false, false, true), + 'Relative with excessive separators' => array('A///B///C', array('A', 'B', 'C'), null, false, false, false), 'Relative with whitespace atoms' => array(' foo bar / baz qux ', array(' foo bar ', ' baz qux '), null, false, false, false), 'Self with drive' => array('C:.', array('.'), 'C', false, false, false), @@ -68,6 +71,7 @@ public function createData() 'Absolute with empty atoms with backslashes' => array('C:\foo\\\\bar', array('foo', 'bar'), 'C', true, false, false), 'Absolute with empty atoms at start with backslashes' => array('C:\\\\foo', array('foo'), 'C', true, false, false), 'Absolute with empty atoms at end with backslashes' => array('C:\foo\\\\', array('foo'), 'C', true, false, true), + 'Absolute with excessive separators with backslashes' => array('C:\\A\\\\\\B\\\\\\C', array('A', 'B', 'C'), 'C', true, false, false), 'Absolute with whitespace atoms with backslashes' => array('C:\ foo bar \ baz qux ', array(' foo bar ', ' baz qux '), 'C', true, false, false), 'Anchored relative root with backslashes' => array('\\', array(), null, false, true, false), @@ -76,6 +80,7 @@ public function createData() 'Anchored relative with empty atoms with backslashes' => array('\foo\\\\bar', array('foo', 'bar'), null, false, true, false), 'Anchored relative with empty atoms at start with backslashes' => array('\\\\foo', array('foo'), null, false, true, false), 'Anchored relative with empty atoms at end with backslashes' => array('\foo\\\\', array('foo'), null, false, true, true), + 'Anchored relative with excessive separators with backslashes' => array('\\A\\\\\\B\\\\\\C', array('A', 'B', 'C'), null, false, true, false), 'Anchored relative with whitespace atoms with backslashes' => array('\ foo bar \ baz qux ', array(' foo bar ', ' baz qux '), null, false, true, false), 'Empty with backslashes' => array('', array('.'), null, false, false, false), @@ -84,6 +89,7 @@ public function createData() 'Relative with trailing separator with backslashes' => array('foo\bar\\', array('foo', 'bar'), null, false, false, true), 'Relative with empty atoms with backslashes' => array('foo\\\\bar', array('foo', 'bar'), null, false, false, false), 'Relative with empty atoms at end with backslashes' => array('foo\bar\\\\', array('foo', 'bar'), null, false, false, true), + 'Relative with excessive separators' => array('A\\\\\\B\\\\\\C', array('A', 'B', 'C'), null, false, false, false), 'Relative with whitespace atoms with backslashes' => array(' foo bar \ baz qux ', array(' foo bar ', ' baz qux '), null, false, false, false), 'Self with drive with backslashes' => array('C:.', array('.'), 'C', false, false, false), From aadfd5d633b06e0d8000d1d5bb27eb5d738d0412 Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Wed, 22 Oct 2014 10:30:15 +1000 Subject: [PATCH 7/9] Archer update. --- .travis.yml | 8 +- composer.lock | 226 ++++++++++++++++++++++++-------------------------- 2 files changed, 113 insertions(+), 121 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7664d5e..21bf6fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,14 @@ language: php -php: ["5.3", "5.4", "5.5", "hhvm"] +php: ["5.3", "5.4", "5.5", "5.6", "hhvm", "hhvm-nightly"] matrix: - allow_failures: - - php: hhvm + allow_failures: [{"php": "hhvm"}, {"php": "hhvm-nightly"}] + fast_finish: true env: global: - - ARCHER_PUBLISH_VERSION=5.5 + - ARCHER_PUBLISH_VERSION=5.6 - secure: "W/NwiJDbrj6yiRmVsNAGYenJJjXVWTLhhi+0ykNVAJtq/akx+3HlE9WvrvUfGu+18o7VWHfFXdq8tln79SC873XKta7OYVqMRfdB+KxjIu1LWCEu5bD5AzGZ6vt/797XmYBMds02nyGVlFNY7fzF1QcWhFO0o+hrZKOj5cmmhIQ=" install: diff --git a/composer.lock b/composer.lock index 4e4dff1..244ae37 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "icecave/isolator", - "version": "2.2.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/IcecaveStudios/isolator.git", - "reference": "1a97a7ea0a3acf4b6caf06313d72c32e0182bca5" + "reference": "97c51fafa39c57a8f1a31f978a48fbe6cea4a5d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/IcecaveStudios/isolator/zipball/1a97a7ea0a3acf4b6caf06313d72c32e0182bca5", - "reference": "1a97a7ea0a3acf4b6caf06313d72c32e0182bca5", + "url": "https://api.github.com/repos/IcecaveStudios/isolator/zipball/97c51fafa39c57a8f1a31f978a48fbe6cea4a5d5", + "reference": "97c51fafa39c57a8f1a31f978a48fbe6cea4a5d5", "shasum": "" }, "require": { @@ -56,7 +56,7 @@ "test", "unit" ], - "time": "2014-02-27 04:33:16" + "time": "2014-08-12 03:16:11" } ], "packages-dev": [ @@ -219,16 +219,16 @@ }, { "name": "guzzle/guzzle", - "version": "v3.9.1", + "version": "v3.9.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle3.git", - "reference": "92d9934f2fca1da15178c91239576ae26e505e60" + "reference": "54991459675c1a2924122afbb0e5609ade581155" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/92d9934f2fca1da15178c91239576ae26e505e60", - "reference": "92d9934f2fca1da15178c91239576ae26e505e60", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/54991459675c1a2924122afbb0e5609ade581155", + "reference": "54991459675c1a2924122afbb0e5609ade581155", "shasum": "" }, "require": { @@ -272,7 +272,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.8-dev" + "dev-master": "3.9-dev" } }, "autoload": { @@ -307,20 +307,20 @@ "rest", "web service" ], - "time": "2014-05-07 17:04:22" + "time": "2014-08-11 04:32:36" }, { "name": "icecave/archer", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/IcecaveStudios/archer.git", - "reference": "49e90d8c0d0a63e537b26d90591367093ebf45be" + "reference": "5b1b4748d0fd6a8f977486d15d10e52e68349379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/49e90d8c0d0a63e537b26d90591367093ebf45be", - "reference": "49e90d8c0d0a63e537b26d90591367093ebf45be", + "url": "https://api.github.com/repos/IcecaveStudios/archer/zipball/5b1b4748d0fd6a8f977486d15d10e52e68349379", + "reference": "5b1b4748d0fd6a8f977486d15d10e52e68349379", "shasum": "" }, "require": { @@ -333,6 +333,7 @@ }, "require-dev": { "eloquent/liberator": "~1", + "phpunit/phpunit": "~4", "symfony/event-dispatcher": "~2.1" }, "suggest": { @@ -343,6 +344,11 @@ "bin/woodhouse" ], "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "1.3.x-dev" + } + }, "autoload": { "psr-4": { "Icecave\\Archer\\": "src" @@ -379,23 +385,24 @@ "testing", "unit" ], - "time": "2014-06-23 00:33:17" + "time": "2014-09-18 03:05:28" }, { "name": "nikic/php-parser", - "version": "v0.9.4", + "version": "v0.9.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1e5e280ae88a27effa2ae4aa2bd088494ed8594f" + "reference": "ef70767475434bdb3615b43c327e2cae17ef12eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1e5e280ae88a27effa2ae4aa2bd088494ed8594f", - "reference": "1e5e280ae88a27effa2ae4aa2bd088494ed8594f", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ef70767475434bdb3615b43c327e2cae17ef12eb", + "reference": "ef70767475434bdb3615b43c327e2cae17ef12eb", "shasum": "" }, "require": { + "ext-tokenizer": "*", "php": ">=5.2" }, "type": "library", @@ -423,7 +430,7 @@ "parser", "php" ], - "time": "2013-08-25 17:11:40" + "time": "2014-07-23 18:24:17" }, { "name": "phake/phake", @@ -690,17 +697,17 @@ }, { "name": "symfony/config", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/Config", "source": { "type": "git", "url": "https://github.com/symfony/Config.git", - "reference": "9c8caadb38ecc69ac35ab31af4d1996944b5a09f" + "reference": "0316364bfebc8b080077c731a99f189341476bd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Config/zipball/9c8caadb38ecc69ac35ab31af4d1996944b5a09f", - "reference": "9c8caadb38ecc69ac35ab31af4d1996944b5a09f", + "url": "https://api.github.com/repos/symfony/Config/zipball/0316364bfebc8b080077c731a99f189341476bd7", + "reference": "0316364bfebc8b080077c731a99f189341476bd7", "shasum": "" }, "require": { @@ -723,34 +730,32 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony Config Component", "homepage": "http://symfony.com", - "time": "2014-04-22 08:11:23" + "time": "2014-09-23 05:25:11" }, { "name": "symfony/console", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/Console", "source": { "type": "git", "url": "https://github.com/symfony/Console.git", - "reference": "ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c" + "reference": "ca053eaa031c93afb68a71e4eb1f4168dfd4a661" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c", - "reference": "ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c", + "url": "https://api.github.com/repos/symfony/Console/zipball/ca053eaa031c93afb68a71e4eb1f4168dfd4a661", + "reference": "ca053eaa031c93afb68a71e4eb1f4168dfd4a661", "shasum": "" }, "require": { @@ -780,34 +785,32 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony Console Component", "homepage": "http://symfony.com", - "time": "2014-05-22 08:54:24" + "time": "2014-09-25 09:53:56" }, { "name": "symfony/event-dispatcher", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/EventDispatcher", "source": { "type": "git", "url": "https://github.com/symfony/EventDispatcher.git", - "reference": "cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8" + "reference": "f6281337bf5f985f585d1db6a83adb05ce531f46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8", - "reference": "cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/f6281337bf5f985f585d1db6a83adb05ce531f46", + "reference": "f6281337bf5f985f585d1db6a83adb05ce531f46", "shasum": "" }, "require": { @@ -816,7 +819,7 @@ "require-dev": { "psr/log": "~1.0", "symfony/config": "~2.0", - "symfony/dependency-injection": "~2.0", + "symfony/dependency-injection": "~2.0,<2.6.0", "symfony/stopwatch": "~2.2" }, "suggest": { @@ -839,34 +842,32 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony EventDispatcher Component", "homepage": "http://symfony.com", - "time": "2014-04-29 10:13:57" + "time": "2014-09-28 15:56:11" }, { "name": "symfony/filesystem", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/Filesystem", "source": { "type": "git", "url": "https://github.com/symfony/Filesystem.git", - "reference": "98e831eac836a0a5911626ce82684155f21d0e4d" + "reference": "4e62fab0060a826561c78b665925b37c870c45f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Filesystem/zipball/98e831eac836a0a5911626ce82684155f21d0e4d", - "reference": "98e831eac836a0a5911626ce82684155f21d0e4d", + "url": "https://api.github.com/repos/symfony/Filesystem/zipball/4e62fab0060a826561c78b665925b37c870c45f5", + "reference": "4e62fab0060a826561c78b665925b37c870c45f5", "shasum": "" }, "require": { @@ -888,34 +889,32 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony Filesystem Component", "homepage": "http://symfony.com", - "time": "2014-04-16 10:36:21" + "time": "2014-09-22 09:14:18" }, { "name": "symfony/finder", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/Finder", "source": { "type": "git", "url": "https://github.com/symfony/Finder.git", - "reference": "307aad2c541bbdf43183043645e186ef2cd6b973" + "reference": "d5033742b9a6206ef6d06e813870bca18e9205df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/307aad2c541bbdf43183043645e186ef2cd6b973", - "reference": "307aad2c541bbdf43183043645e186ef2cd6b973", + "url": "https://api.github.com/repos/symfony/Finder/zipball/d5033742b9a6206ef6d06e813870bca18e9205df", + "reference": "d5033742b9a6206ef6d06e813870bca18e9205df", "shasum": "" }, "require": { @@ -937,34 +936,32 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony Finder Component", "homepage": "http://symfony.com", - "time": "2014-05-22 13:47:45" + "time": "2014-09-27 08:35:39" }, { "name": "symfony/process", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/Process", "source": { "type": "git", "url": "https://github.com/symfony/Process.git", - "reference": "5d7d78e23894544740219e006320678cfa4cd45b" + "reference": "8a1ec96c4e519cee0fb971ea48a1eb7369dda54b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/5d7d78e23894544740219e006320678cfa4cd45b", - "reference": "5d7d78e23894544740219e006320678cfa4cd45b", + "url": "https://api.github.com/repos/symfony/Process/zipball/8a1ec96c4e519cee0fb971ea48a1eb7369dda54b", + "reference": "8a1ec96c4e519cee0fb971ea48a1eb7369dda54b", "shasum": "" }, "require": { @@ -986,34 +983,32 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony Process Component", "homepage": "http://symfony.com", - "time": "2014-05-23 09:02:52" + "time": "2014-09-23 05:25:11" }, { "name": "symfony/stopwatch", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/Stopwatch", "source": { "type": "git", "url": "https://github.com/symfony/Stopwatch.git", - "reference": "724d73604ebe6c1c9bdf36533b556123bd9075a1" + "reference": "9f8a33a24f2378c0ec5f372a8d50b2d43069c050" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/724d73604ebe6c1c9bdf36533b556123bd9075a1", - "reference": "724d73604ebe6c1c9bdf36533b556123bd9075a1", + "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/9f8a33a24f2378c0ec5f372a8d50b2d43069c050", + "reference": "9f8a33a24f2378c0ec5f372a8d50b2d43069c050", "shasum": "" }, "require": { @@ -1035,34 +1030,32 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony Stopwatch Component", "homepage": "http://symfony.com", - "time": "2014-04-18 20:40:13" + "time": "2014-09-22 09:14:18" }, { "name": "symfony/yaml", - "version": "v2.5.0", + "version": "v2.5.5", "target-dir": "Symfony/Component/Yaml", "source": { "type": "git", "url": "https://github.com/symfony/Yaml.git", - "reference": "b4b09c68ec2f2727574544ef0173684281a5033c" + "reference": "b1dbc53593b98c2d694ebf383660ac9134d30b96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/b4b09c68ec2f2727574544ef0173684281a5033c", - "reference": "b4b09c68ec2f2727574544ef0173684281a5033c", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/b1dbc53593b98c2d694ebf383660ac9134d30b96", + "reference": "b1dbc53593b98c2d694ebf383660ac9134d30b96", "shasum": "" }, "require": { @@ -1084,33 +1077,31 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony Yaml Component", "homepage": "http://symfony.com", - "time": "2014-05-16 14:25:18" + "time": "2014-09-22 09:14:18" }, { "name": "twig/twig", - "version": "v1.15.1", + "version": "v1.16.2", "source": { "type": "git", "url": "https://github.com/fabpot/Twig.git", - "reference": "1fb5784662f438d7d96a541e305e28b812e2eeed" + "reference": "42f758d9fe2146d1f0470604fc05ee43580873fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fabpot/Twig/zipball/1fb5784662f438d7d96a541e305e28b812e2eeed", - "reference": "1fb5784662f438d7d96a541e305e28b812e2eeed", + "url": "https://api.github.com/repos/fabpot/Twig/zipball/42f758d9fe2146d1f0470604fc05ee43580873fc", + "reference": "42f758d9fe2146d1f0470604fc05ee43580873fc", "shasum": "" }, "require": { @@ -1119,7 +1110,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -1139,7 +1130,7 @@ "role": "Lead Developer" }, { - "name": "Armin Ronacher2", + "name": "Armin Ronacher", "email": "armin.ronacher@active-4.com", "role": "Project Founder" }, @@ -1154,12 +1145,13 @@ "keywords": [ "templating" ], - "time": "2014-02-13 10:19:29" + "time": "2014-10-17 12:53:44" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": [], + "prefer-stable": false, "platform": { "php": ">=5.3", "ext-mbstring": "*" From e960dfca237383e2487e18d46c796c40232f7a81 Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Wed, 22 Oct 2014 10:58:04 +1000 Subject: [PATCH 8/9] Updated changelog, readme. --- CHANGELOG.md | 8 ++++++++ README.md | 57 +++++++++++++++++++++++++--------------------------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76fca07..438847e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Pathogen changelog +## 0.6.1 (2014-10-22) + +- **[FIXED]** Path factories handle excessive separators like '/A///B///C' + ([#38] - thanks [@rixbeck]). + +[#38]: https://github.com/eloquent/pathogen/issues/38 +[@rixbeck]: https://github.com/rixbeck + ## 0.6.0 (2014-02-19) - **[BC BREAK]** Path resolvers refactored: diff --git a/README.md b/README.md index 44332d3..bef0120 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,26 @@ *General-purpose path library for PHP.* -[![The most recent stable version is 0.6.0][version-image]][Semantic versioning] +[![The most recent stable version is 0.6.1][version-image]][Semantic versioning] [![Current build status image][build-image]][Current build status] [![Current coverage status image][coverage-image]][Current coverage status] +[build-image]: http://img.shields.io/travis/eloquent/pathogen/develop.svg "Current build status for the develop branch" +[Current build status]: https://travis-ci.org/eloquent/pathogen +[coverage-image]: http://img.shields.io/coveralls/eloquent/pathogen/develop.svg "Current test coverage for the develop branch" +[Current coverage status]: https://coveralls.io/r/eloquent/pathogen +[Semantic versioning]: http://semver.org/ +[version-image]: http://img.shields.io/:semver-0.6.1-yellow.svg "This project uses semantic versioning" + ## Installation and documentation - Available as [Composer] package [eloquent/pathogen]. - [API documentation] available. +[API documentation]: http://lqnt.co/pathogen/artifacts/documentation/api/ +[Composer]: http://getcomposer.org/ +[eloquent/pathogen]: https://packagist.org/packages/eloquent/pathogen + ## What is Pathogen? *Pathogen* is a library for path manipulation. *Pathogen* supports file system @@ -167,6 +178,10 @@ function relativeOnly(RelativePathInterface $path) } ``` +[AbsolutePathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/AbsolutePathInterface.html +[PathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/PathInterface.html +[RelativePathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/RelativePathInterface.html + ### Special paths The 'root' path is considered the top-most absolute path, and is represented as @@ -238,6 +253,8 @@ $pathFoo = $factory->create('/path/to/foo'); $pathBar = $factory->create('C:/path/to/bar'); ``` +[PathFactoryInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/Factory/PathFactoryInterface.html + ### Path resolution Resolution of a path involves taking a path which may be relative or absolute, @@ -369,6 +386,10 @@ with static methods. The actual path class used will depend on the input. If it is necessary to type hint for a file system path, [FileSystemPathInterface] or one of its more specialized child interfaces should be used instead. +[FileSystemPath]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/FileSystem/FileSystemPath.html +[FileSystemPathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/FileSystem/FileSystemPathInterface.html +[PlatformFileSystemPath]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/FileSystem/PlatformFileSystemPath.html + ### Immutability of paths Paths in *Pathogen* are *immutable*, meaning that once they are created, they @@ -411,11 +432,13 @@ $consumer = new ExampleConsumer; echo get_class($consumer->pathFactory()); // outputs 'Eloquent\Pathogen\FileSystem\Factory\FileSystemPathFactory' ``` +[traits]: http://php.net/traits + #### Available dependency consumer traits -- [PlatformFileSystemPathFactoryTrait] -- [FileSystemPathFactoryTrait] -- [PathFactoryTrait] +- [PlatformFileSystemPathFactoryTrait](src/Eloquent/Pathogen/FileSystem/Factory/Consumer/PlatformFileSystemPathFactoryTrait.php) +- [FileSystemPathFactoryTrait](src/Eloquent/Pathogen/FileSystem/Factory/Consumer/FileSystemPathFactoryTrait.php) +- [PathFactoryTrait](src/Eloquent/Pathogen/Factory/Consumer/PathFactoryTrait.php) ## Usage examples @@ -491,29 +514,3 @@ $pathWithReplacement = $path->replace(1, array('for', 'baz'), 2); echo $pathWithReplacement->string(); // outputs '/path/for/baz/bar' ``` - - - -[AbsolutePathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/AbsolutePathInterface.html -[FileSystemPath]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/FileSystem/FileSystemPath.html -[FileSystemPathFactoryTrait]: src/Eloquent/Pathogen/FileSystem/Factory/Consumer/FileSystemPathFactoryTrait.php -[FileSystemPathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/FileSystem/FileSystemPathInterface.html -[NormalizingPathResolverTrait]: src/Eloquent/Pathogen/Resolver/Consumer/NormalizingPathResolverTrait.php -[PathFactoryInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/Factory/PathFactoryInterface.html -[PathFactoryTrait]: src/Eloquent/Pathogen/Factory/Consumer/PathFactoryTrait.php -[PathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/PathInterface.html -[PathResolverTrait]: src/Eloquent/Pathogen/Resolver/Consumer/PathResolverTrait.php -[PlatformFileSystemPath]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/FileSystem/PlatformFileSystemPath.html -[PlatformFileSystemPathFactoryTrait]: src/Eloquent/Pathogen/FileSystem/Factory/Consumer/PlatformFileSystemPathFactoryTrait.php -[RelativePathInterface]: http://lqnt.co/pathogen/artifacts/documentation/api/Eloquent/Pathogen/RelativePathInterface.html -[traits]: http://php.net/traits - -[API documentation]: http://lqnt.co/pathogen/artifacts/documentation/api/ -[Composer]: http://getcomposer.org/ -[build-image]: http://img.shields.io/travis/eloquent/pathogen/develop.svg "Current build status for the develop branch" -[Current build status]: https://travis-ci.org/eloquent/pathogen -[coverage-image]: http://img.shields.io/coveralls/eloquent/pathogen/develop.svg "Current test coverage for the develop branch" -[Current coverage status]: https://coveralls.io/r/eloquent/pathogen -[eloquent/pathogen]: https://packagist.org/packages/eloquent/pathogen -[Semantic versioning]: http://semver.org/ -[version-image]: http://img.shields.io/:semver-0.6.0-yellow.svg "This project uses semantic versioning" From f02ea9972a00dcd8b83c1297dd28b15e2aa2f050 Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Wed, 22 Oct 2014 11:04:26 +1000 Subject: [PATCH 9/9] Updated contribution guidelines. --- CONTRIBUTING.md | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c8efa06..11cde59 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,25 +8,18 @@ changes. All PHP code must adhere to the [PSR-2] standards. +[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md + ## Branching and pull requests As a guideline, please follow this process: 1. [Fork the repository]. - 2. Create a topic branch for the change: - - New features should branch from **develop**. - - Bug fixes to existing versions should branch from **master**. - - Please ensure the branch is clearly labelled as a feature or fix. + 2. Create a topic branch for the change, branching from **develop** + (`git checkout -b branch-name develop`). 3. Make the relevant changes. - 4. [Squash] commits if necessary. - 4. Submit a pull request to the **develop** branch. - -Please note this is a general guideline only. For more information on the -branching structure please see the [git-flow cheatsheet]. - - + 4. [Squash] commits if necessary (`git rebase -i develop`). + 5. Submit a pull request to the **develop** branch. [Fork the repository]: https://help.github.com/articles/fork-a-repo -[git-flow cheatsheet]: http://danielkummer.github.com/git-flow-cheatsheet/ -[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md [Squash]: http://git-scm.com/book/en/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages