├── .gitignore ├── .travis.yml ├── .editorconfig ├── composer.json ├── command.php ├── spec ├── template │ ├── CommandArguments.php │ └── CommandArgumentsParameters.php └── ViewOne │ └── WPCLIEnvironment │ ├── CommandSpec.php │ ├── EnvironmentSpec.php │ └── GeneratorSpec.php ├── template └── command.mustache ├── LICENSE.txt ├── src └── ViewOne │ └── WPCLIEnvironment │ ├── Generator.php │ ├── Command.php │ └── Environment.php ├── README.md └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | vendor -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | php: 3 | - "5.4" 4 | - "5.3" 5 | 6 | before_script: 7 | - composer self-update 8 | - composer install 9 | 10 | script: ./build/build.sh 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | # Matches project php files the composer.json and .travis.yml 13 | [src/**/*.php, src/**/*.php] 14 | indent_style = space 15 | indent_size = 4 16 | 17 | # Matches the composer.json and .travis.yml 18 | [{composer.json,.travis.yml}] 19 | indent_style = space 20 | indent_size = 2 21 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "viewone/wp-cli-environment", 3 | "license": "MIT", 4 | "description": "Environment package for wp-cli", 5 | "authors": [ 6 | { 7 | "name": "Piotr Kierzniewski", 8 | "email": "p.kierzniewski@viewone.pl" 9 | } 10 | ], 11 | "require-dev": { 12 | "phpspec/phpspec": "~2.0", 13 | "instaclick/php-code-sniffer": "~1.4", 14 | "sebastian/phpcpd": "~2.0", 15 | "czproject/phpdepend": "~1.0", 16 | "phploc/phploc": "~2.0", 17 | "phpmd/phpmd": "~1.5", 18 | "fabpot/php-cs-fixer": "~0.4", 19 | "mustache/mustache": "~2.4" 20 | }, 21 | "autoload": { 22 | "psr-0": { 23 | "ViewOne": "src/" 24 | }, 25 | "files": [ "command.php" ] 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /command.php: -------------------------------------------------------------------------------- 1 | 10 | * 11 | * 12 | * 13 | * 14 | * @when before_wp_load 15 | */ 16 | public function __invoke($args, $assoc_args) 17 | { 18 | global $argv; 19 | 20 | try { 21 | $environment = new \ViewOne\WPCLIEnvironment\Environment(); 22 | $environment->run($argv[1]); 23 | } catch (Exception $e) { 24 | \WP_CLI::error( $e->getMessage() ); 25 | } 26 | 27 | $command = \ViewOne\WPCLIEnvironment\Command::getCommand($args, $assoc_args); 28 | 29 | WP_CLI::launch($command); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /spec/template/CommandArgumentsParameters.php: -------------------------------------------------------------------------------- 1 | 10 | * 11 | * 12 | * 13 | * [--force] 14 | * 15 | * [--path=] 16 | * 17 | * 18 | * @when before_wp_load 19 | */ 20 | public function __invoke($args, $assoc_args) 21 | { 22 | global $argv; 23 | 24 | try { 25 | $environment = new \ViewOne\WPCLIEnvironment\Environment(); 26 | $environment->run($argv[1]); 27 | } catch (Exception $e) { 28 | \WP_CLI::error( $e->getMessage() ); 29 | } 30 | 31 | $command = \ViewOne\WPCLIEnvironment\Command::getCommand($args, $assoc_args); 32 | 33 | WP_CLI::launch($command); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spec/ViewOne/WPCLIEnvironment/CommandSpec.php: -------------------------------------------------------------------------------- 1 | getCommand('local')->shouldReturn('wp core download'); 20 | } 21 | 22 | public function it_should_return_proper_command_with_parameters() 23 | { 24 | global $argv; 25 | 26 | $args = array('local', 'core', 'download', '--path=wordpress', '--url=http://example.org', '--force'); 27 | 28 | $argv = $args; 29 | 30 | $this->getCommand('local')->shouldReturn('wp core download --path=wordpress --url=http://example.org --force'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /template/command.mustache: -------------------------------------------------------------------------------- 1 | 11 | * 12 | {{/ args }} 13 | {{# params }} 14 | * [--{{ param }}] 15 | * 16 | {{/ params }} 17 | {{# assoc_params }} 18 | * [--{{ param }}=<{{ value }}>] 19 | * 20 | {{/ assoc_params }} 21 | * 22 | * @when before_wp_load 23 | */ 24 | public function __invoke($args, $assoc_args) 25 | { 26 | global $argv; 27 | 28 | try { 29 | $environment = new \ViewOne\WPCLIEnvironment\Environment(); 30 | $environment->run($argv[1]); 31 | } catch (Exception $e) { 32 | \WP_CLI::error( $e->getMessage() ); 33 | } 34 | 35 | $command = \ViewOne\WPCLIEnvironment\Command::getCommand($args, $assoc_args); 36 | 37 | WP_CLI::launch($command); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 ViewOne Sp. z o.o. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /spec/ViewOne/WPCLIEnvironment/EnvironmentSpec.php: -------------------------------------------------------------------------------- 1 | run($env); 25 | $this->shouldHaveEnv($cwd . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "wp-cli." . $env . ".yml"); 26 | 27 | unlink($config); 28 | rmdir(dirname($config)); 29 | } 30 | 31 | public function it_should_throw_exception_if_there_is_no_such_a_file() 32 | { 33 | 34 | $cwd = getcwd(); 35 | $env = "testing"; 36 | 37 | $this->shouldThrow(new \Exception('File ' . $cwd . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "wp-cli." . $env . ".yml" . ' doesn\'t exists.'))->duringRun($env); 38 | } 39 | 40 | public function it_should_throw_exception_if_argument_is_not_string_or_null() 41 | { 42 | 43 | $cwd = getcwd(); 44 | $obj = new \stdClass(); 45 | 46 | $this->shouldThrow(new \Exception('$environment should be string or null insted of ' . gettype($obj) . '.'))->duringRun($obj); 47 | } 48 | 49 | public function it_should_not_break_if_there_is_no_environment_argument() 50 | { 51 | 52 | $this->shouldNotThrow('\Exception')->duringRun(null); 53 | } 54 | 55 | public function getMatchers() 56 | { 57 | return array( 58 | 'haveEnv' => function($subject, $env) { 59 | return getenv('WP_CLI_CONFIG_PATH') === $env; 60 | }, 61 | ); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /spec/ViewOne/WPCLIEnvironment/GeneratorSpec.php: -------------------------------------------------------------------------------- 1 | getCachePath()->shouldReturn($dir); 24 | } 25 | 26 | public function it_should_generate_proper_command_class_with_arguments() 27 | { 28 | 29 | global $argv; 30 | 31 | $args = array('local', 'core', 'download'); 32 | 33 | $argv = $args; 34 | 35 | \ViewOne\WPCLIEnvironment\Generator::generateCommandClass(); 36 | 37 | $test_class = file_get_contents(__DIR__ . '/../../template/CommandArguments.php'); 38 | 39 | $this->shouldHaveGenerateFile($test_class); 40 | } 41 | 42 | public function it_should_generate_proper_command_class_with_arguments_and_parameters() 43 | { 44 | 45 | global $argv; 46 | 47 | $args = array('local', 'core', 'download', '--path=wordpress', '--force'); 48 | 49 | $argv = $args; 50 | 51 | \ViewOne\WPCLIEnvironment\Generator::generateCommandClass(); 52 | 53 | $test_class = file_get_contents(__DIR__ . '/../../template/CommandArgumentsParameters.php'); 54 | 55 | $this->shouldHaveGenerateFile($test_class); 56 | } 57 | 58 | public function getMatchers() 59 | { 60 | return array( 61 | 'haveGenerateFile' => function($subject, $file) { 62 | 63 | $dir = \ViewOne\WPCLIEnvironment\Generator::getCachePath(); 64 | 65 | $generatedClass = file_get_contents($dir . '/wp-cli-environment/Command.php'); 66 | return $generatedClass === $file; 67 | }, 68 | ); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/ViewOne/WPCLIEnvironment/Generator.php: -------------------------------------------------------------------------------- 1 | 20 | * @copyright 2014 ViewOne Sp. z o.o. 21 | * @license http://opensource.org/licenses/MIT MIT 22 | * @link https://github.com/viewone 23 | */ 24 | 25 | namespace ViewOne\WPCLIEnvironment; 26 | 27 | class Generator 28 | { 29 | /** 30 | * Get wp-cli global path 31 | * 32 | * Method is using code from wp-cli 33 | * 34 | * @return string $dir 35 | */ 36 | 37 | public static function getCachePath() 38 | { 39 | $home = getenv('HOME'); 40 | 41 | if ( !$home ) { 42 | $home = getenv('HOMEDRIVE') . '/' . getenv('HOMEPATH'); 43 | } 44 | 45 | $dir = getenv('WP_CLI_CACHE_DIR') ? : "$home/.wp-cli/cache"; 46 | 47 | return $dir; 48 | } 49 | 50 | /** 51 | * Generate command class based on $args, $assocParams and $params 52 | * and put content in Command.php file in global cache wp-cli path. 53 | * 54 | * @return void 55 | */ 56 | 57 | public static function generateCommandClass() 58 | { 59 | $args = \ViewOne\WPCLIEnvironment\Command::getArguments(); 60 | $assocParams = \ViewOne\WPCLIEnvironment\Command::getAssocParameters(); 61 | $params = \ViewOne\WPCLIEnvironment\Command::getParameters(); 62 | 63 | $moutstache = new \Mustache_Engine; 64 | 65 | $dir = self::getCachePath(); 66 | 67 | if (!file_exists($dir . '/wp-cli-environment')) { 68 | mkdir($dir . '/wp-cli-environment', 0777, true); 69 | } 70 | 71 | $template = file_get_contents(__DIR__ . '/../../../template/command.mustache'); 72 | $variables = array('args' => $args, 'assoc_params' => $assocParams, 'params' => $params); 73 | 74 | $class = $moutstache->render($template, $variables); 75 | 76 | file_put_contents($dir . '/wp-cli-environment/Command.php', $class); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/ViewOne/WPCLIEnvironment/Command.php: -------------------------------------------------------------------------------- 1 | 13 | * @copyright 2014 ViewOne Sp. z o.o. 14 | * @license http://opensource.org/licenses/MIT MIT 15 | * @link https://github.com/viewone 16 | */ 17 | 18 | namespace ViewOne\WPCLIEnvironment; 19 | 20 | class Command 21 | { 22 | 23 | /** 24 | * Avaiable environments 25 | * 26 | * TO-DO: Find way to not repeat variables from Environment class. 27 | * 28 | * @var array 29 | */ 30 | private static $environments = array( 'local', 'development', 'testing', 'staging', 'production' ); 31 | 32 | /** 33 | * Build command 34 | * 35 | * Method is using global $argv 36 | * 37 | * @return string $command 38 | */ 39 | 40 | public static function getCommand() 41 | { 42 | global $argv; 43 | 44 | $args = self::getArguments(); 45 | $assocParams = self::getAssocParameters(); 46 | $params = self::getParameters(); 47 | 48 | $command = "wp " . implode(" ", $args); 49 | 50 | foreach ($assocParams as $param) { 51 | 52 | $command .= " --" . $param['param'] . "=" . $param['value']; 53 | } 54 | 55 | foreach ($params as $param) { 56 | 57 | $command .= " --" . $param['param']; 58 | } 59 | 60 | return $command; 61 | } 62 | 63 | /** 64 | * Get arguments from global $argv 65 | * 66 | * Method is using global $argv 67 | * 68 | * @return array $localArgs 69 | */ 70 | 71 | public static function getArguments() 72 | { 73 | global $argv; 74 | 75 | $localArgs = array(); 76 | 77 | foreach ($argv as $arg) { 78 | if (preg_match("/^(?!(--|\/)).+$/", $arg, $match) == 1) { 79 | 80 | if (array_search($match[0], self::$environments) === false) { 81 | 82 | //Check if argument has spaces if so wrap argument with quotation marks 83 | if (preg_match('/\s/', $match[0])) { 84 | $localArgs[] = '"' . $match[0] . '"'; 85 | } else { 86 | $localArgs[] = $match[0]; 87 | } 88 | } 89 | } 90 | } 91 | 92 | return $localArgs; 93 | } 94 | 95 | /** 96 | * Get associative parameters from global $argv 97 | * 98 | * Method is using global $argv 99 | * 100 | * @return array $assocParams 101 | */ 102 | 103 | public static function getAssocParameters() 104 | { 105 | global $argv; 106 | 107 | $assocParams = array(); 108 | 109 | foreach ($argv as $arg) { 110 | if (preg_match("/^--([a-zA-Z0-9-]+)\=([a-zA-Z0-9:'\/\.]+)$/", $arg, $match) == 1) { 111 | 112 | $assocParams[] = array( 113 | 'param' => $match[1], 114 | 'value' => $match[2], 115 | ); 116 | } 117 | } 118 | 119 | return $assocParams; 120 | } 121 | 122 | /** 123 | * Get single parameters from global $argv 124 | * 125 | * Method is using global $argv 126 | * 127 | * @return array $params 128 | */ 129 | 130 | public static function getParameters() 131 | { 132 | global $argv; 133 | 134 | $params = array(); 135 | 136 | foreach ($argv as $arg) { 137 | if (preg_match("/^--([a-zA-Z0-9-]+)$/", $arg, $match) == 1) { 138 | 139 | $params[] = array( 140 | 'param' => $match[1], 141 | ); 142 | } 143 | } 144 | 145 | return $params; 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #WP-CLI-Environment 2 | 3 | 4 | ![image](http://img.shields.io/travis/viewone/wp-cli-environment.svg) 5 | 6 | WP-CLI-Environment is wp-cli package which add support to have multiple environments `wp-cli.yml` files. 7 | 8 | WP-CLI allow you to have two wp-cli.yml files. One global `wp-cli.yml` and one for local development `wp-cli.local.yml`. This package give you possibility to have additional files and firendly cli tool for using them. 9 | 10 | ##Installation 11 | 12 | To install package follow instructions from wp-cli documentation https://github.com/wp-cli/wp-cli/wiki/Community-Packages 13 | 14 | ##Getting Started 15 | Create directory `config` and put inside file `wp-cli.production.yml`. Content of `wp-cli.production.yml` is standard `wp-cli.yml` file and it can looks like. 16 | 17 | ``` 18 | path: ../ 19 | url: http://example.org/ 20 | core config: 21 | dbname: your_production_dbname 22 | dbuser: your_production_dbuser 23 | dbpass: your_production_dbpassword 24 | skip-check: true 25 | disabled_commands: 26 | - db drop 27 | - plugin install 28 | ``` 29 | 30 | Exec command: 31 | 32 | ``` 33 | wp production core download 34 | ``` 35 | 36 | WP-CLI will download WordPress using settings in `wp-cli.production.yml` file. Not so impressive. WP-CLI-Environment is design to work with multiple `wp-cli.yml` files so now create `wp-cli.developemnt.yml` file in `config` directory with content. 37 | 38 | ``` 39 | path: ../ 40 | url: http://example.dev.org/ 41 | core config: 42 | dbname: your_dev_dbname 43 | dbuser: your_dev_dbuser 44 | dbpass: your_dev_dbpassword 45 | skip-check: true 46 | ``` 47 | 48 | Exec command: 49 | 50 | ``` 51 | wp production core config 52 | ``` 53 | As you see wp-cli created wp-config.php with settings from `wp-cli.production.yml`. Delete wp-config.php and exec command: 54 | 55 | ``` 56 | wp development core config 57 | ``` 58 | Now hovewever wp-cli created wp-config.php with settings from `wp-cli.development.yml` 59 | 60 | ##Usage 61 | 62 | WP-CLI-Environment support 5 environments: `local`, `development`, `testing`, `staging`, `production`. For each environment you can create `wp-cli.environment.yml` file e.g.: `wp-cli.testing.yml` or `wp-cli.staging.yml`. All environments files must be in config directory. 63 | 64 | When you want to refer to particular file when executing wp-cli command simply type environment as first argument e.g: `wp testing core download` or `wp staging core config`. 65 | 66 | If there is no `wp-cli.environemnt.yml` file. You will se an error about this. 67 | 68 | ##The order of precedence 69 | 70 | WP-CLI-Environment use `WP_CLI_CONFIG_PATH` environment variable to require specific config file. It means that wp-cli-environemnt has very low priority. If you will have wp-cli.yml or wp-cli.local.yml files in your wordpress root directory, settings from this files will overwrite settings from wp-cli.environment.yml. 71 | 72 | ##License 73 | 74 | The MIT License (MIT) 75 | 76 | Copyright (c) 2014 ViewOne Sp. z o.o. 77 | 78 | Permission is hereby granted, free of charge, to any person obtaining a copy 79 | of this software and associated documentation files (the "Software"), to deal 80 | in the Software without restriction, including without limitation the rights 81 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 82 | copies of the Software, and to permit persons to whom the Software is 83 | furnished to do so, subject to the following conditions: 84 | 85 | The above copyright notice and this permission notice shall be included in 86 | all copies or substantial portions of the Software. 87 | 88 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 89 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 90 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 91 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 92 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 93 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 94 | THE SOFTWARE. 95 | -------------------------------------------------------------------------------- /src/ViewOne/WPCLIEnvironment/Environment.php: -------------------------------------------------------------------------------- 1 | 13 | * @copyright 2014 ViewOne Sp. z o.o. 14 | * @license http://opensource.org/licenses/MIT MIT 15 | * @link https://github.com/viewone 16 | */ 17 | 18 | namespace ViewOne\WPCLIEnvironment; 19 | 20 | class Environment 21 | { 22 | 23 | /** 24 | * Avaiable environments 25 | * 26 | * @var array 27 | */ 28 | private $environments = array( 'local', 'development', 'testing', 'staging', 'production' ); 29 | 30 | /** 31 | * Config file 32 | * 33 | * @var string 34 | */ 35 | private $config = null; 36 | 37 | /** 38 | * Environment 39 | * 40 | * Potential values are 'local', 'development', 'testing', 'staging', 'production' or null. 41 | * 42 | * @var string 43 | */ 44 | private $environment = null; 45 | 46 | /** 47 | * Set WP_CLI_CONFIG_PATH based on second argument passed to wp 48 | * 49 | * This method use WP_CLI_CONFIG_PATH environment vairable 50 | * to pass config file. 51 | * 52 | * For example, if we execute this command: 53 | * 54 | * wp production core download 55 | * 56 | * 57 | * WP CLI will use config file wp-cli.production.yml 58 | * 59 | * Avaiable environments are: local, development, testing, 60 | * staging, production. 61 | * 62 | * @param string|null $environment Possible enviroemnt 63 | * 64 | * @return void 65 | */ 66 | public function run($environment) 67 | { 68 | if (!is_string($environment) && !is_null($environment)) { 69 | throw new \Exception('$environment should be string or null insted of ' . gettype($environment) . '.'); 70 | } 71 | 72 | $this->resolveEnvironment($environment); 73 | $this->resolveConfig(); 74 | 75 | if ($this->config) { 76 | putenv("WP_CLI_CONFIG_PATH=" . $this->config); 77 | } 78 | } 79 | 80 | /** 81 | * Resolve environment based on first argument passed to wp-cli 82 | * 83 | * This method use global $argv variable to read first argument 84 | * passed to wp-cli. If argument match one of the avaiable environments, 85 | * method will set environment to it and remove this argument from $argv. 86 | * 87 | * For example, if we execute this command: 88 | * 89 | * wp production core download 90 | * 91 | * 92 | * Method will set environment to production 93 | * 94 | * Avaiable environments are: local, development, testing, 95 | * staging, production. 96 | * 97 | * @param string $environment Possible enviroemnt 98 | * 99 | * @return void 100 | */ 101 | 102 | private function resolveEnvironment($environment) 103 | { 104 | global $argv; 105 | 106 | if (array_search($environment, $this->environments) !== false) { 107 | unset($argv[1]); 108 | $this->environment = $environment; 109 | } 110 | } 111 | 112 | /** 113 | * Resolve config path based on environment 114 | * 115 | * Use $environment to resolve config path. If such a file doesn't exists 116 | * method will throw an exception: File $configPath doesn't exists. 117 | * 118 | * @throws Exception File $configPath doesn't exists. 119 | * 120 | * @return void 121 | */ 122 | 123 | private function resolveConfig() 124 | { 125 | if ($this->environment) { 126 | 127 | $configFile = 'wp-cli.' . $this->environment . '.yml'; 128 | $configPath = getcwd() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . $configFile; 129 | 130 | if (file_exists($configPath)) { 131 | $this->config = $configPath; 132 | } else { 133 | throw new \Exception('File ' . $configPath . ' doesn\'t exists.'); 134 | } 135 | } 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" 5 | ], 6 | "hash": "1af1f552c49c5b1362670b6ae5e8a0b3", 7 | "packages": [ 8 | 9 | ], 10 | "packages-dev": [ 11 | { 12 | "name": "czproject/phpdepend", 13 | "version": "v1.0.6", 14 | "source": { 15 | "type": "git", 16 | "url": "https://github.com/czproject/phpdepend.git", 17 | "reference": "734a6d7545fd647f31f3d30f7807c375f541ba42" 18 | }, 19 | "dist": { 20 | "type": "zip", 21 | "url": "https://api.github.com/repos/czproject/phpdepend/zipball/734a6d7545fd647f31f3d30f7807c375f541ba42", 22 | "reference": "734a6d7545fd647f31f3d30f7807c375f541ba42", 23 | "shasum": "" 24 | }, 25 | "require": { 26 | "ext-tokenizer": "*", 27 | "php": ">=5.3.0" 28 | }, 29 | "require-dev": { 30 | "nette/tester": "0.9.3" 31 | }, 32 | "type": "library", 33 | "autoload": { 34 | "classmap": [ 35 | "src/PhpDepend.php" 36 | ] 37 | }, 38 | "notification-url": "https://packagist.org/downloads/", 39 | "license": [ 40 | "BSD-3-Clause" 41 | ], 42 | "authors": [ 43 | { 44 | "name": "Jan Pecha", 45 | "email": "janpecha@email.cz" 46 | } 47 | ], 48 | "description": "Extracts list of dependencies (classes, interfaces & traits) from PHP file or code snippet.", 49 | "time": "2013-10-13 14:48:51" 50 | }, 51 | { 52 | "name": "fabpot/php-cs-fixer", 53 | "version": "v0.4.0", 54 | "source": { 55 | "type": "git", 56 | "url": "https://github.com/fabpot/PHP-CS-Fixer.git", 57 | "reference": "ff49782b0d87007ec675216f3677644778489d7a" 58 | }, 59 | "dist": { 60 | "type": "zip", 61 | "url": "https://api.github.com/repos/fabpot/PHP-CS-Fixer/zipball/ff49782b0d87007ec675216f3677644778489d7a", 62 | "reference": "ff49782b0d87007ec675216f3677644778489d7a", 63 | "shasum": "" 64 | }, 65 | "require": { 66 | "php": ">=5.3.6", 67 | "sebastian/diff": "1.1.*", 68 | "symfony/console": "~2.1", 69 | "symfony/filesystem": "~2.1", 70 | "symfony/finder": "~2.1" 71 | }, 72 | "bin": [ 73 | "php-cs-fixer" 74 | ], 75 | "type": "application", 76 | "extra": { 77 | "branch-alias": { 78 | "dev-master": "0.4.x-dev" 79 | } 80 | }, 81 | "autoload": { 82 | "psr-0": { 83 | "Symfony\\CS": "." 84 | } 85 | }, 86 | "notification-url": "https://packagist.org/downloads/", 87 | "license": [ 88 | "MIT" 89 | ], 90 | "authors": [ 91 | { 92 | "name": "Fabien Potencier", 93 | "email": "fabien@symfony.com", 94 | "homepage": "http://fabien.potencier.org", 95 | "role": "Lead Developer" 96 | } 97 | ], 98 | "description": "A script to automatically fix Symfony Coding Standard", 99 | "time": "2014-01-07 09:13:46" 100 | }, 101 | { 102 | "name": "instaclick/php-code-sniffer", 103 | "version": "1.4.2", 104 | "source": { 105 | "type": "git", 106 | "url": "https://github.com/instaclick/PHP_CodeSniffer.git", 107 | "reference": "2e698c3fc4b73c67ad1e21245b0ab507b1847aab" 108 | }, 109 | "dist": { 110 | "type": "zip", 111 | "url": "https://api.github.com/repos/instaclick/PHP_CodeSniffer/zipball/2e698c3fc4b73c67ad1e21245b0ab507b1847aab", 112 | "reference": "2e698c3fc4b73c67ad1e21245b0ab507b1847aab", 113 | "shasum": "" 114 | }, 115 | "require": { 116 | "php": ">=5.1.2" 117 | }, 118 | "bin": [ 119 | "scripts/phpcs" 120 | ], 121 | "type": "library", 122 | "notification-url": "https://packagist.org/downloads/", 123 | "license": [ 124 | "BSD-3-Clause" 125 | ], 126 | "authors": [ 127 | { 128 | "name": "Greg Sherwood", 129 | "role": "lead" 130 | } 131 | ], 132 | "description": "PHP_CodeSniffer tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 133 | "homepage": "http://www.squizlabs.com/php-codesniffer", 134 | "keywords": [ 135 | "phpcs", 136 | "standards" 137 | ], 138 | "time": "2012-11-09 02:33:21" 139 | }, 140 | { 141 | "name": "mustache/mustache", 142 | "version": "v2.6.0", 143 | "source": { 144 | "type": "git", 145 | "url": "https://github.com/bobthecow/mustache.php.git", 146 | "reference": "43dc9457a2089cf86c0f7fdb79fcdc516293a4b6" 147 | }, 148 | "dist": { 149 | "type": "zip", 150 | "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/43dc9457a2089cf86c0f7fdb79fcdc516293a4b6", 151 | "reference": "43dc9457a2089cf86c0f7fdb79fcdc516293a4b6", 152 | "shasum": "" 153 | }, 154 | "require": { 155 | "php": ">=5.2.4" 156 | }, 157 | "require-dev": { 158 | "phpunit/phpunit": "*" 159 | }, 160 | "type": "library", 161 | "autoload": { 162 | "psr-0": { 163 | "Mustache": "src/" 164 | } 165 | }, 166 | "notification-url": "https://packagist.org/downloads/", 167 | "license": [ 168 | "MIT" 169 | ], 170 | "authors": [ 171 | { 172 | "name": "Justin Hileman", 173 | "email": "justin@justinhileman.info", 174 | "homepage": "http://justinhileman.com" 175 | } 176 | ], 177 | "description": "A Mustache implementation in PHP.", 178 | "homepage": "https://github.com/bobthecow/mustache.php", 179 | "keywords": [ 180 | "mustache", 181 | "templating" 182 | ], 183 | "time": "2014-04-14 01:24:40" 184 | }, 185 | { 186 | "name": "pdepend/pdepend", 187 | "version": "1.1.3", 188 | "source": { 189 | "type": "git", 190 | "url": "https://github.com/pdepend/pdepend.git", 191 | "reference": "1537f19d62d7b30c13ac173270106df7c6b9c459" 192 | }, 193 | "dist": { 194 | "type": "zip", 195 | "url": "https://api.github.com/repos/pdepend/pdepend/zipball/1537f19d62d7b30c13ac173270106df7c6b9c459", 196 | "reference": "1537f19d62d7b30c13ac173270106df7c6b9c459", 197 | "shasum": "" 198 | }, 199 | "require": { 200 | "php": ">=5.2.3" 201 | }, 202 | "bin": [ 203 | "src/bin/pdepend" 204 | ], 205 | "type": "library", 206 | "autoload": { 207 | "psr-0": { 208 | "PHP_": "src/main/php/" 209 | } 210 | }, 211 | "notification-url": "https://packagist.org/downloads/", 212 | "license": [ 213 | "BSD-3-Clause" 214 | ], 215 | "description": "Official version of pdepend to be handled with Composer", 216 | "time": "2013-12-04 17:46:00" 217 | }, 218 | { 219 | "name": "phploc/phploc", 220 | "version": "2.0.5", 221 | "source": { 222 | "type": "git", 223 | "url": "https://github.com/sebastianbergmann/phploc.git", 224 | "reference": "d177c22e2a08e448f7bdfa762045f7bd086834d7" 225 | }, 226 | "dist": { 227 | "type": "zip", 228 | "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/d177c22e2a08e448f7bdfa762045f7bd086834d7", 229 | "reference": "d177c22e2a08e448f7bdfa762045f7bd086834d7", 230 | "shasum": "" 231 | }, 232 | "require": { 233 | "php": ">=5.3.3", 234 | "sebastian/finder-facade": ">=1.1.0", 235 | "sebastian/git": ">=1.0.0", 236 | "sebastian/version": ">=1.0.3", 237 | "symfony/console": ">=2.2.0" 238 | }, 239 | "bin": [ 240 | "phploc" 241 | ], 242 | "type": "library", 243 | "extra": { 244 | "branch-alias": { 245 | "dev-master": "2.0-dev" 246 | } 247 | }, 248 | "autoload": { 249 | "classmap": [ 250 | "src/" 251 | ] 252 | }, 253 | "notification-url": "https://packagist.org/downloads/", 254 | "license": [ 255 | "BSD-3-Clause" 256 | ], 257 | "authors": [ 258 | { 259 | "name": "Sebastian Bergmann", 260 | "email": "sebastian@phpunit.de", 261 | "role": "lead" 262 | } 263 | ], 264 | "description": "A tool for quickly measuring the size of a PHP project.", 265 | "homepage": "https://github.com/sebastianbergmann/phploc", 266 | "time": "2014-04-27 06:47:27" 267 | }, 268 | { 269 | "name": "phpmd/phpmd", 270 | "version": "1.5.0", 271 | "source": { 272 | "type": "git", 273 | "url": "https://github.com/phpmd/phpmd.git", 274 | "reference": "692b7b1b64518091b2b1bea91b489dbb13598c07" 275 | }, 276 | "dist": { 277 | "type": "zip", 278 | "url": "https://api.github.com/repos/phpmd/phpmd/zipball/692b7b1b64518091b2b1bea91b489dbb13598c07", 279 | "reference": "692b7b1b64518091b2b1bea91b489dbb13598c07", 280 | "shasum": "" 281 | }, 282 | "require": { 283 | "pdepend/pdepend": ">=1.1.1", 284 | "php": ">=5.3.0" 285 | }, 286 | "bin": [ 287 | "src/bin/phpmd" 288 | ], 289 | "type": "library", 290 | "notification-url": "https://packagist.org/downloads/", 291 | "include-path": [ 292 | "../../pdepend/pdepend/src/main/php", 293 | "src/main/php" 294 | ], 295 | "description": "Official version of PHPMD handled with Composer.", 296 | "time": "2013-07-26 14:47:02" 297 | }, 298 | { 299 | "name": "phpspec/php-diff", 300 | "version": "v1.0.2", 301 | "source": { 302 | "type": "git", 303 | "url": "https://github.com/phpspec/php-diff.git", 304 | "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a" 305 | }, 306 | "dist": { 307 | "type": "zip", 308 | "url": "https://api.github.com/repos/phpspec/php-diff/zipball/30e103d19519fe678ae64a60d77884ef3d71b28a", 309 | "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a", 310 | "shasum": "" 311 | }, 312 | "type": "library", 313 | "autoload": { 314 | "psr-0": { 315 | "Diff": "lib/" 316 | } 317 | }, 318 | "notification-url": "https://packagist.org/downloads/", 319 | "license": [ 320 | "BSD-3-Clause" 321 | ], 322 | "authors": [ 323 | { 324 | "name": "Chris Boulton", 325 | "homepage": "http://github.com/chrisboulton" 326 | } 327 | ], 328 | "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", 329 | "time": "2013-11-01 13:02:21" 330 | }, 331 | { 332 | "name": "phpspec/phpspec", 333 | "version": "2.0.0", 334 | "source": { 335 | "type": "git", 336 | "url": "https://github.com/phpspec/phpspec.git", 337 | "reference": "1aade5766ddf4f28fdcf0a34d6ed642393d6c43d" 338 | }, 339 | "dist": { 340 | "type": "zip", 341 | "url": "https://api.github.com/repos/phpspec/phpspec/zipball/1aade5766ddf4f28fdcf0a34d6ed642393d6c43d", 342 | "reference": "1aade5766ddf4f28fdcf0a34d6ed642393d6c43d", 343 | "shasum": "" 344 | }, 345 | "require": { 346 | "php": ">=5.3.3", 347 | "phpspec/php-diff": "~1.0.0", 348 | "phpspec/prophecy": "~1.1", 349 | "symfony/console": "~2.1", 350 | "symfony/event-dispatcher": "~2.1", 351 | "symfony/finder": "~2.1", 352 | "symfony/yaml": "~2.1" 353 | }, 354 | "require-dev": { 355 | "behat/behat": "~2.5", 356 | "bossa/phpspec2-expect": "dev-master", 357 | "symfony/filesystem": "~2.1" 358 | }, 359 | "suggest": { 360 | "phpspec/nyan-formatters": "~1.0 – Adds Nyan formatters" 361 | }, 362 | "bin": [ 363 | "bin/phpspec" 364 | ], 365 | "type": "library", 366 | "extra": { 367 | "branch-alias": { 368 | "dev-master": "2.0.x-dev" 369 | } 370 | }, 371 | "autoload": { 372 | "psr-0": { 373 | "PhpSpec": "src/" 374 | } 375 | }, 376 | "notification-url": "https://packagist.org/downloads/", 377 | "license": [ 378 | "MIT" 379 | ], 380 | "authors": [ 381 | { 382 | "name": "Konstantin Kudryashov", 383 | "email": "ever.zet@gmail.com", 384 | "homepage": "http://everzet.com" 385 | }, 386 | { 387 | "name": "Marcello Duarte", 388 | "homepage": "http://marcelloduarte.net/" 389 | } 390 | ], 391 | "description": "Specification-oriented BDD framework for PHP 5.3+", 392 | "homepage": "http://phpspec.net/", 393 | "keywords": [ 394 | "BDD", 395 | "SpecBDD", 396 | "TDD", 397 | "spec", 398 | "specification", 399 | "testing", 400 | "tests" 401 | ], 402 | "time": "2014-03-19 14:23:43" 403 | }, 404 | { 405 | "name": "phpspec/prophecy", 406 | "version": "1.1.2", 407 | "source": { 408 | "type": "git", 409 | "url": "https://github.com/phpspec/prophecy.git", 410 | "reference": "976a65af02a2a0e17ce6c949f7b43437205628bb" 411 | }, 412 | "dist": { 413 | "type": "zip", 414 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/976a65af02a2a0e17ce6c949f7b43437205628bb", 415 | "reference": "976a65af02a2a0e17ce6c949f7b43437205628bb", 416 | "shasum": "" 417 | }, 418 | "require-dev": { 419 | "phpspec/phpspec": "2.0.*" 420 | }, 421 | "type": "library", 422 | "extra": { 423 | "branch-alias": { 424 | "dev-master": "1.1.x-dev" 425 | } 426 | }, 427 | "autoload": { 428 | "psr-0": { 429 | "Prophecy\\": "src/" 430 | } 431 | }, 432 | "notification-url": "https://packagist.org/downloads/", 433 | "license": [ 434 | "MIT" 435 | ], 436 | "authors": [ 437 | { 438 | "name": "Konstantin Kudryashov", 439 | "email": "ever.zet@gmail.com", 440 | "homepage": "http://everzet.com" 441 | }, 442 | { 443 | "name": "Marcello Duarte", 444 | "email": "marcello.duarte@gmail.com" 445 | } 446 | ], 447 | "description": "Highly opinionated mocking framework for PHP 5.3+", 448 | "homepage": "http://phpspec.org", 449 | "keywords": [ 450 | "Double", 451 | "Dummy", 452 | "fake", 453 | "mock", 454 | "spy", 455 | "stub" 456 | ], 457 | "time": "2014-01-24 11:03:43" 458 | }, 459 | { 460 | "name": "phpunit/php-timer", 461 | "version": "1.0.5", 462 | "source": { 463 | "type": "git", 464 | "url": "https://github.com/sebastianbergmann/php-timer.git", 465 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" 466 | }, 467 | "dist": { 468 | "type": "zip", 469 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", 470 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", 471 | "shasum": "" 472 | }, 473 | "require": { 474 | "php": ">=5.3.3" 475 | }, 476 | "type": "library", 477 | "autoload": { 478 | "classmap": [ 479 | "PHP/" 480 | ] 481 | }, 482 | "notification-url": "https://packagist.org/downloads/", 483 | "include-path": [ 484 | "" 485 | ], 486 | "license": [ 487 | "BSD-3-Clause" 488 | ], 489 | "authors": [ 490 | { 491 | "name": "Sebastian Bergmann", 492 | "email": "sb@sebastian-bergmann.de", 493 | "role": "lead" 494 | } 495 | ], 496 | "description": "Utility class for timing", 497 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 498 | "keywords": [ 499 | "timer" 500 | ], 501 | "time": "2013-08-02 07:42:54" 502 | }, 503 | { 504 | "name": "sebastian/diff", 505 | "version": "1.1.0", 506 | "source": { 507 | "type": "git", 508 | "url": "https://github.com/sebastianbergmann/diff.git", 509 | "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d" 510 | }, 511 | "dist": { 512 | "type": "zip", 513 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d", 514 | "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d", 515 | "shasum": "" 516 | }, 517 | "require": { 518 | "php": ">=5.3.3" 519 | }, 520 | "type": "library", 521 | "extra": { 522 | "branch-alias": { 523 | "dev-master": "1.1-dev" 524 | } 525 | }, 526 | "autoload": { 527 | "classmap": [ 528 | "src/" 529 | ] 530 | }, 531 | "notification-url": "https://packagist.org/downloads/", 532 | "license": [ 533 | "BSD-3-Clause" 534 | ], 535 | "authors": [ 536 | { 537 | "name": "Sebastian Bergmann", 538 | "email": "sebastian@phpunit.de", 539 | "role": "lead" 540 | }, 541 | { 542 | "name": "Kore Nordmann", 543 | "email": "mail@kore-nordmann.de" 544 | } 545 | ], 546 | "description": "Diff implementation", 547 | "homepage": "http://www.github.com/sebastianbergmann/diff", 548 | "keywords": [ 549 | "diff" 550 | ], 551 | "time": "2013-08-03 16:46:33" 552 | }, 553 | { 554 | "name": "sebastian/finder-facade", 555 | "version": "1.1.0", 556 | "source": { 557 | "type": "git", 558 | "url": "https://github.com/sebastianbergmann/finder-facade.git", 559 | "reference": "1e396fda3449fce9df032749fa4fa2619e0347e0" 560 | }, 561 | "dist": { 562 | "type": "zip", 563 | "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/1e396fda3449fce9df032749fa4fa2619e0347e0", 564 | "reference": "1e396fda3449fce9df032749fa4fa2619e0347e0", 565 | "shasum": "" 566 | }, 567 | "require": { 568 | "symfony/finder": ">=2.2.0", 569 | "theseer/fdomdocument": ">=1.3.1" 570 | }, 571 | "type": "library", 572 | "autoload": { 573 | "classmap": [ 574 | "src/" 575 | ] 576 | }, 577 | "notification-url": "https://packagist.org/downloads/", 578 | "license": [ 579 | "BSD-3-Clause" 580 | ], 581 | "authors": [ 582 | { 583 | "name": "Sebastian Bergmann", 584 | "email": "sebastian@phpunit.de", 585 | "role": "lead" 586 | } 587 | ], 588 | "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", 589 | "homepage": "https://github.com/sebastianbergmann/finder-facade", 590 | "time": "2013-05-28 06:10:03" 591 | }, 592 | { 593 | "name": "sebastian/git", 594 | "version": "1.2.0", 595 | "source": { 596 | "type": "git", 597 | "url": "https://github.com/sebastianbergmann/git.git", 598 | "reference": "a99fbc102e982c1404041ef3e4d431562b29bcba" 599 | }, 600 | "dist": { 601 | "type": "zip", 602 | "url": "https://api.github.com/repos/sebastianbergmann/git/zipball/a99fbc102e982c1404041ef3e4d431562b29bcba", 603 | "reference": "a99fbc102e982c1404041ef3e4d431562b29bcba", 604 | "shasum": "" 605 | }, 606 | "require": { 607 | "php": ">=5.3.3" 608 | }, 609 | "type": "library", 610 | "extra": { 611 | "branch-alias": { 612 | "dev-master": "1.2-dev" 613 | } 614 | }, 615 | "autoload": { 616 | "classmap": [ 617 | "src/" 618 | ] 619 | }, 620 | "notification-url": "https://packagist.org/downloads/", 621 | "license": [ 622 | "BSD-3-Clause" 623 | ], 624 | "authors": [ 625 | { 626 | "name": "Sebastian Bergmann", 627 | "email": "sebastian@phpunit.de", 628 | "role": "lead" 629 | } 630 | ], 631 | "description": "Simple wrapper for Git", 632 | "homepage": "http://www.github.com/sebastianbergmann/git", 633 | "keywords": [ 634 | "git" 635 | ], 636 | "time": "2013-08-04 09:35:29" 637 | }, 638 | { 639 | "name": "sebastian/phpcpd", 640 | "version": "2.0.1", 641 | "source": { 642 | "type": "git", 643 | "url": "https://github.com/sebastianbergmann/phpcpd.git", 644 | "reference": "a9462153f2dd90466a010179901d31fbff598365" 645 | }, 646 | "dist": { 647 | "type": "zip", 648 | "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/a9462153f2dd90466a010179901d31fbff598365", 649 | "reference": "a9462153f2dd90466a010179901d31fbff598365", 650 | "shasum": "" 651 | }, 652 | "require": { 653 | "php": ">=5.3.3", 654 | "phpunit/php-timer": ">=1.0.4", 655 | "sebastian/finder-facade": ">=1.1.0", 656 | "sebastian/version": ">=1.0.3", 657 | "symfony/console": ">=2.2.0", 658 | "theseer/fdomdocument": "~1.4" 659 | }, 660 | "bin": [ 661 | "phpcpd" 662 | ], 663 | "type": "library", 664 | "extra": { 665 | "branch-alias": { 666 | "dev-master": "2.0-dev" 667 | } 668 | }, 669 | "autoload": { 670 | "classmap": [ 671 | "src/" 672 | ] 673 | }, 674 | "notification-url": "https://packagist.org/downloads/", 675 | "license": [ 676 | "BSD-3-Clause" 677 | ], 678 | "authors": [ 679 | { 680 | "name": "Sebastian Bergmann", 681 | "email": "sebastian@phpunit.de", 682 | "role": "lead" 683 | } 684 | ], 685 | "description": "Copy/Paste Detector (CPD) for PHP code.", 686 | "homepage": "https://github.com/sebastianbergmann/phpcpd", 687 | "time": "2014-03-31 09:25:30" 688 | }, 689 | { 690 | "name": "sebastian/version", 691 | "version": "1.0.3", 692 | "source": { 693 | "type": "git", 694 | "url": "https://github.com/sebastianbergmann/version.git", 695 | "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43" 696 | }, 697 | "dist": { 698 | "type": "zip", 699 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43", 700 | "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43", 701 | "shasum": "" 702 | }, 703 | "type": "library", 704 | "autoload": { 705 | "classmap": [ 706 | "src/" 707 | ] 708 | }, 709 | "notification-url": "https://packagist.org/downloads/", 710 | "license": [ 711 | "BSD-3-Clause" 712 | ], 713 | "authors": [ 714 | { 715 | "name": "Sebastian Bergmann", 716 | "email": "sebastian@phpunit.de", 717 | "role": "lead" 718 | } 719 | ], 720 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 721 | "homepage": "https://github.com/sebastianbergmann/version", 722 | "time": "2014-03-07 15:35:33" 723 | }, 724 | { 725 | "name": "symfony/console", 726 | "version": "v2.4.4", 727 | "target-dir": "Symfony/Component/Console", 728 | "source": { 729 | "type": "git", 730 | "url": "https://github.com/symfony/Console.git", 731 | "reference": "2e452005b1e1d003d23702d227e23614679eb5ca" 732 | }, 733 | "dist": { 734 | "type": "zip", 735 | "url": "https://api.github.com/repos/symfony/Console/zipball/2e452005b1e1d003d23702d227e23614679eb5ca", 736 | "reference": "2e452005b1e1d003d23702d227e23614679eb5ca", 737 | "shasum": "" 738 | }, 739 | "require": { 740 | "php": ">=5.3.3" 741 | }, 742 | "require-dev": { 743 | "symfony/event-dispatcher": "~2.1" 744 | }, 745 | "suggest": { 746 | "symfony/event-dispatcher": "" 747 | }, 748 | "type": "library", 749 | "extra": { 750 | "branch-alias": { 751 | "dev-master": "2.4-dev" 752 | } 753 | }, 754 | "autoload": { 755 | "psr-0": { 756 | "Symfony\\Component\\Console\\": "" 757 | } 758 | }, 759 | "notification-url": "https://packagist.org/downloads/", 760 | "license": [ 761 | "MIT" 762 | ], 763 | "authors": [ 764 | { 765 | "name": "Fabien Potencier", 766 | "email": "fabien@symfony.com", 767 | "homepage": "http://fabien.potencier.org", 768 | "role": "Lead Developer" 769 | }, 770 | { 771 | "name": "Symfony Community", 772 | "homepage": "http://symfony.com/contributors" 773 | } 774 | ], 775 | "description": "Symfony Console Component", 776 | "homepage": "http://symfony.com", 777 | "time": "2014-04-27 13:34:57" 778 | }, 779 | { 780 | "name": "symfony/event-dispatcher", 781 | "version": "v2.4.4", 782 | "target-dir": "Symfony/Component/EventDispatcher", 783 | "source": { 784 | "type": "git", 785 | "url": "https://github.com/symfony/EventDispatcher.git", 786 | "reference": "e539602e5455aa086c0e81e604745af7789e4d8a" 787 | }, 788 | "dist": { 789 | "type": "zip", 790 | "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/e539602e5455aa086c0e81e604745af7789e4d8a", 791 | "reference": "e539602e5455aa086c0e81e604745af7789e4d8a", 792 | "shasum": "" 793 | }, 794 | "require": { 795 | "php": ">=5.3.3" 796 | }, 797 | "require-dev": { 798 | "symfony/dependency-injection": "~2.0" 799 | }, 800 | "suggest": { 801 | "symfony/dependency-injection": "", 802 | "symfony/http-kernel": "" 803 | }, 804 | "type": "library", 805 | "extra": { 806 | "branch-alias": { 807 | "dev-master": "2.4-dev" 808 | } 809 | }, 810 | "autoload": { 811 | "psr-0": { 812 | "Symfony\\Component\\EventDispatcher\\": "" 813 | } 814 | }, 815 | "notification-url": "https://packagist.org/downloads/", 816 | "license": [ 817 | "MIT" 818 | ], 819 | "authors": [ 820 | { 821 | "name": "Fabien Potencier", 822 | "email": "fabien@symfony.com", 823 | "homepage": "http://fabien.potencier.org", 824 | "role": "Lead Developer" 825 | }, 826 | { 827 | "name": "Symfony Community", 828 | "homepage": "http://symfony.com/contributors" 829 | } 830 | ], 831 | "description": "Symfony EventDispatcher Component", 832 | "homepage": "http://symfony.com", 833 | "time": "2014-04-16 10:34:31" 834 | }, 835 | { 836 | "name": "symfony/filesystem", 837 | "version": "v2.4.4", 838 | "target-dir": "Symfony/Component/Filesystem", 839 | "source": { 840 | "type": "git", 841 | "url": "https://github.com/symfony/Filesystem.git", 842 | "reference": "a3af8294bcce4a7c1b2892363b0c9d8109affad4" 843 | }, 844 | "dist": { 845 | "type": "zip", 846 | "url": "https://api.github.com/repos/symfony/Filesystem/zipball/a3af8294bcce4a7c1b2892363b0c9d8109affad4", 847 | "reference": "a3af8294bcce4a7c1b2892363b0c9d8109affad4", 848 | "shasum": "" 849 | }, 850 | "require": { 851 | "php": ">=5.3.3" 852 | }, 853 | "type": "library", 854 | "extra": { 855 | "branch-alias": { 856 | "dev-master": "2.4-dev" 857 | } 858 | }, 859 | "autoload": { 860 | "psr-0": { 861 | "Symfony\\Component\\Filesystem\\": "" 862 | } 863 | }, 864 | "notification-url": "https://packagist.org/downloads/", 865 | "license": [ 866 | "MIT" 867 | ], 868 | "authors": [ 869 | { 870 | "name": "Fabien Potencier", 871 | "email": "fabien@symfony.com", 872 | "homepage": "http://fabien.potencier.org", 873 | "role": "Lead Developer" 874 | }, 875 | { 876 | "name": "Symfony Community", 877 | "homepage": "http://symfony.com/contributors" 878 | } 879 | ], 880 | "description": "Symfony Filesystem Component", 881 | "homepage": "http://symfony.com", 882 | "time": "2014-04-16 10:34:31" 883 | }, 884 | { 885 | "name": "symfony/finder", 886 | "version": "v2.4.4", 887 | "target-dir": "Symfony/Component/Finder", 888 | "source": { 889 | "type": "git", 890 | "url": "https://github.com/symfony/Finder.git", 891 | "reference": "25e1e7d5e7376f8a92ae3b1d714d956edf33a730" 892 | }, 893 | "dist": { 894 | "type": "zip", 895 | "url": "https://api.github.com/repos/symfony/Finder/zipball/25e1e7d5e7376f8a92ae3b1d714d956edf33a730", 896 | "reference": "25e1e7d5e7376f8a92ae3b1d714d956edf33a730", 897 | "shasum": "" 898 | }, 899 | "require": { 900 | "php": ">=5.3.3" 901 | }, 902 | "type": "library", 903 | "extra": { 904 | "branch-alias": { 905 | "dev-master": "2.4-dev" 906 | } 907 | }, 908 | "autoload": { 909 | "psr-0": { 910 | "Symfony\\Component\\Finder\\": "" 911 | } 912 | }, 913 | "notification-url": "https://packagist.org/downloads/", 914 | "license": [ 915 | "MIT" 916 | ], 917 | "authors": [ 918 | { 919 | "name": "Fabien Potencier", 920 | "email": "fabien@symfony.com", 921 | "homepage": "http://fabien.potencier.org", 922 | "role": "Lead Developer" 923 | }, 924 | { 925 | "name": "Symfony Community", 926 | "homepage": "http://symfony.com/contributors" 927 | } 928 | ], 929 | "description": "Symfony Finder Component", 930 | "homepage": "http://symfony.com", 931 | "time": "2014-04-27 13:34:57" 932 | }, 933 | { 934 | "name": "symfony/yaml", 935 | "version": "v2.4.4", 936 | "target-dir": "Symfony/Component/Yaml", 937 | "source": { 938 | "type": "git", 939 | "url": "https://github.com/symfony/Yaml.git", 940 | "reference": "65539ecde838f9c0d18b006b2101e3deb4b5c9ff" 941 | }, 942 | "dist": { 943 | "type": "zip", 944 | "url": "https://api.github.com/repos/symfony/Yaml/zipball/65539ecde838f9c0d18b006b2101e3deb4b5c9ff", 945 | "reference": "65539ecde838f9c0d18b006b2101e3deb4b5c9ff", 946 | "shasum": "" 947 | }, 948 | "require": { 949 | "php": ">=5.3.3" 950 | }, 951 | "type": "library", 952 | "extra": { 953 | "branch-alias": { 954 | "dev-master": "2.4-dev" 955 | } 956 | }, 957 | "autoload": { 958 | "psr-0": { 959 | "Symfony\\Component\\Yaml\\": "" 960 | } 961 | }, 962 | "notification-url": "https://packagist.org/downloads/", 963 | "license": [ 964 | "MIT" 965 | ], 966 | "authors": [ 967 | { 968 | "name": "Fabien Potencier", 969 | "email": "fabien@symfony.com", 970 | "homepage": "http://fabien.potencier.org", 971 | "role": "Lead Developer" 972 | }, 973 | { 974 | "name": "Symfony Community", 975 | "homepage": "http://symfony.com/contributors" 976 | } 977 | ], 978 | "description": "Symfony Yaml Component", 979 | "homepage": "http://symfony.com", 980 | "time": "2014-04-18 20:37:09" 981 | }, 982 | { 983 | "name": "theseer/fdomdocument", 984 | "version": "1.5.0", 985 | "source": { 986 | "type": "git", 987 | "url": "https://github.com/theseer/fDOMDocument.git", 988 | "reference": "137aa3b13bef05b4e301899cbabdaf7d501847d2" 989 | }, 990 | "dist": { 991 | "type": "zip", 992 | "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/137aa3b13bef05b4e301899cbabdaf7d501847d2", 993 | "reference": "137aa3b13bef05b4e301899cbabdaf7d501847d2", 994 | "shasum": "" 995 | }, 996 | "require": { 997 | "ext-dom": "*", 998 | "lib-libxml": "*", 999 | "php": ">=5.3.3" 1000 | }, 1001 | "type": "library", 1002 | "autoload": { 1003 | "classmap": [ 1004 | "src/" 1005 | ] 1006 | }, 1007 | "notification-url": "https://packagist.org/downloads/", 1008 | "license": [ 1009 | "BSD-3-Clause" 1010 | ], 1011 | "authors": [ 1012 | { 1013 | "name": "Arne Blankerts", 1014 | "email": "arne@blankerts.de", 1015 | "role": "lead" 1016 | } 1017 | ], 1018 | "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", 1019 | "homepage": "https://github.com/theseer/fDOMDocument", 1020 | "time": "2014-02-19 00:20:43" 1021 | } 1022 | ], 1023 | "aliases": [ 1024 | 1025 | ], 1026 | "minimum-stability": "stable", 1027 | "stability-flags": [ 1028 | 1029 | ], 1030 | "platform": [ 1031 | 1032 | ], 1033 | "platform-dev": [ 1034 | 1035 | ] 1036 | } 1037 | --------------------------------------------------------------------------------