diff --git a/.gitignore b/.gitignore index 63e81c5b..e1958319 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ +/composer.lock .idea vendor/ +.gitignore composer.phar config.php .DS_Store @@ -9,7 +11,6 @@ config.php .htaccess PHPCI/config.yml cache -/loggerconfig.php /pluginconfig.php PHPCI/Model/Migration.php PHPCI/Model/Base/MigrationBase.php diff --git a/PHPCI/Application.php b/PHPCI/Application.php index a6eb646c..4b017dd4 100644 --- a/PHPCI/Application.php +++ b/PHPCI/Application.php @@ -104,7 +104,7 @@ class Application extends b8\Application $this->response->setContent($view->render()); } - if ($this->response->hasLayout() && $this->controller->layout) { + if (!empty($this->response->hasLayout()) && isset($this->controller->layout)) { $this->setLayoutVariables($this->controller->layout); $this->controller->layout->content = $this->response->getContent(); diff --git a/PHPCI/Builder.php b/PHPCI/Builder.php index 1aed3d3f..d455352c 100644 --- a/PHPCI/Builder.php +++ b/PHPCI/Builder.php @@ -246,7 +246,7 @@ class Builder implements LoggerAwareInterface // Clean up: $this->buildLogger->log(Lang::get('removing_build')); - $this->build->removeBuildDirectory(); + //$this->build->removeBuildDirectory(); $this->store->save($this->build); } diff --git a/PHPCI/Command/RunCommand.php b/PHPCI/Command/RunCommand.php index c2c352e6..99d895dd 100644 --- a/PHPCI/Command/RunCommand.php +++ b/PHPCI/Command/RunCommand.php @@ -74,14 +74,7 @@ class RunCommand extends Command protected function execute(InputInterface $input, OutputInterface $output) { $this->output = $output; - - // For verbose mode we want to output all informational and above - // messages to the symphony output interface. - if ($input->hasOption('verbose') && $input->getOption('verbose')) { - $this->logger->pushHandler( - new OutputLogHandler($this->output, Logger::INFO) - ); - } + $this->logger->pushHandler(new OutputLogHandler($output)); $running = $this->validateRunningBuilds(); diff --git a/PHPCI/Controller/WebhookController.php b/PHPCI/Controller/WebhookController.php index 4b444d03..c28a935a 100644 --- a/PHPCI/Controller/WebhookController.php +++ b/PHPCI/Controller/WebhookController.php @@ -12,7 +12,6 @@ namespace PHPCI\Controller; use b8; use b8\Store; use Exception; -use PHPCI\BuildFactory; use PHPCI\Model\Project; use PHPCI\Service\BuildService; use PHPCI\Store\BuildStore; @@ -60,7 +59,7 @@ class WebhookController extends \b8\Controller /** Handle the action, Ensuring to return a JsonResponse. * * @param string $action - * @param mixed $actionParams + * @param mixed $actionParams * * @return \b8\Http\Response */ @@ -78,6 +77,7 @@ class WebhookController extends \b8\Controller $response->setResponseCode(500); $response->setContent(array('status' => 'failed', 'error' => $ex->getMessage())); } + return $response; } @@ -216,8 +216,8 @@ class WebhookController extends \b8\Controller /** * Handle the payload when Github sends a commit webhook. * - * @param Project $project - * @param array $payload + * @param Project $project + * @param array $payload * @param b8\Http\Response\JsonResponse $response * * @return b8\Http\Response\JsonResponse @@ -256,6 +256,7 @@ class WebhookController extends \b8\Controller $results[$commit['id']] = array('status' => 'failed', 'error' => $ex->getMessage()); } } + return array('status' => $status, 'commits' => $results); } @@ -264,6 +265,7 @@ class WebhookController extends \b8\Controller $branch = str_replace('refs/tags/', 'Tag: ', $payload['ref']); $committer = $payload['pusher']['email']; $message = $payload['head_commit']['message']; + return $this->createBuild($project, $payload['after'], $branch, $committer, $message); } @@ -274,7 +276,7 @@ class WebhookController extends \b8\Controller * Handle the payload when Github sends a Pull Request webhook. * * @param Project $project - * @param array $payload + * @param array $payload */ protected function githubPullRequest(Project $project, array $payload) { @@ -290,10 +292,17 @@ class WebhookController extends \b8\Controller $headers[] = 'Authorization: token ' . $token; } - $url = $payload['pull_request']['commits_url']; - $http = new \b8\HttpClient(); + $url = $payload['pull_request']['commits_url']; + $http = new \b8\HttpClient(); $http->setHeaders($headers); - $response = $http->get($url); + //for large pull requests, allow grabbing more then the default number of commits + $custom_per_page = \b8\Config::getInstance()->get('phpci.github.per_page'); + $params = []; + if ($custom_per_page) { + $params["per_page"] = $custom_per_page; + } + + $response = $http->get($url, $params); // Check we got a success response: if (!$response['success']) { @@ -379,6 +388,7 @@ class WebhookController extends \b8\Controller $results[$commit['id']] = array('status' => 'failed', 'error' => $ex->getMessage()); } } + return array('status' => $status, 'commits' => $results); } @@ -389,11 +399,11 @@ class WebhookController extends \b8\Controller * Wrapper for creating a new build. * * @param Project $project - * @param string $commitId - * @param string $branch - * @param string $committer - * @param string $commitMessage - * @param array $extra + * @param string $commitId + * @param string $branch + * @param string $committer + * @param string $commitMessage + * @param array $extra * * @return array * @@ -406,7 +416,8 @@ class WebhookController extends \b8\Controller $committer, $commitMessage, array $extra = null - ) { + ) + { // Check if a build already exists for this commit ID: $builds = $this->buildStore->getByProjectAndCommit($project->getId(), $commitId); @@ -426,7 +437,7 @@ class WebhookController extends \b8\Controller /** * Fetch a project and check its type. * - * @param int $projectId + * @param int $projectId * @param array|string $expectedType * * @return Project diff --git a/PHPCI/Helper/Lang.php b/PHPCI/Helper/Lang.php index 42027cee..3771db86 100644 --- a/PHPCI/Helper/Lang.php +++ b/PHPCI/Helper/Lang.php @@ -37,7 +37,7 @@ class Lang return call_user_func_array('sprintf', $vars); } - return '%%MISSING STRING: ' . $string . '%%'; + return $string; } /** diff --git a/PHPCI/Languages/lang.en.php b/PHPCI/Languages/lang.en.php index 63df75d2..4639b74b 100644 --- a/PHPCI/Languages/lang.en.php +++ b/PHPCI/Languages/lang.en.php @@ -438,7 +438,6 @@ PHPCI', 'php_unit' => 'PHP Unit', 'php_cpd' => 'PHP Copy/Paste Detector', 'php_docblock_checker' => 'PHP Docblock Checker', - 'behat' => 'Behat', - 'technical_debt' => 'Technical Debt', + 'php_lint' => 'PHP Lint', ); diff --git a/PHPCI/Languages/lang.ru.php b/PHPCI/Languages/lang.ru.php index 0a7acff2..af46dbdf 100644 --- a/PHPCI/Languages/lang.ru.php +++ b/PHPCI/Languages/lang.ru.php @@ -98,8 +98,8 @@ PHPCI', 'gitlab' => 'GitLab', 'remote' => 'Внешний URL', 'local' => 'Локальный путь', - 'hg' => 'Mercurial', - 'svn' => 'Subversion', + 'hg' => 'Mercurial', + 'svn' => 'Subversion', 'where_hosted' => 'Расположение проекта', 'choose_github' => 'Выберите GitHub репозиторий:', @@ -148,11 +148,12 @@ PHPCI', Services вашего Bitbucket репозитория.', // View Build - 'build_x_not_found' => 'Сборки с ID %d не существует.', + 'errors' => 'Ошибки', + 'information' => 'Информация', + 'build_x_not_found' => 'Сборки с ID %d не существует.', 'build_n' => 'Сборка %d', 'rebuild_now' => 'Пересобрать сейчас', - 'committed_by_x' => 'Отправил %s', 'commit_id_x' => 'Коммит: %s', @@ -164,6 +165,7 @@ PHPCI', 'noncomment_lines' => 'Строк некомментариев', 'logical_lines' => 'Строк логики', 'lines_of_code' => 'Строк кода', + 'structure' => 'Структура', 'build_log' => 'Лог сборки', 'quality_trend' => 'Тенденция качества', 'codeception_errors' => 'Ошибки Codeception', @@ -205,8 +207,8 @@ PHPCI', 'build_created' => 'Сборка создана', 'build_started' => 'Сборка запущена', 'build_finished' => 'Сборка окончена', - 'test_message' => 'Message', - 'test_no_message' => 'No message', + 'test_message' => 'Сообщение', + 'test_no_message' => 'Нет сообщений', 'test_success' => 'Успешно: %d', 'test_fail' => 'Провалено: %d', 'test_skipped' => 'Пропущено: %d', @@ -268,8 +270,8 @@ PHPCI', '5_mins' => '5 минут', '15_mins' => '15 минут', '30_mins' => '30 минут', - '1_hour' => '1 часа', - '3_hours' => '3 часов', + '1_hour' => '1 час', + '3_hours' => '3 часа', // Plugins 'cannot_update_composer' => 'PHPCI не может обновить composer.json, если он недоступен на запись.', @@ -293,11 +295,11 @@ PHPCI', 'duration' => 'Продолжительность', 'plugin' => 'Плагин', 'stage_setup' => 'Установка', - 'stage_test' => 'тестирование', - 'stage_complete' => 'Завершение', - 'stage_success' => 'Успешное завершение', - 'stage_failure' => 'Провал', - 'stage_broken' => 'Поломка', + 'stage_test' => 'Тестирование', + 'stage_complete' => 'Завершено', + 'stage_success' => 'Успешно', + 'stage_failure' => 'Провалено', + 'stage_broken' => 'Поломка', 'stage_fixed' => 'Исправление', // Installer @@ -408,5 +410,19 @@ PHPCI', 'build_file_missing' => 'Указанного файла сборки не существует.', 'property_file_missing' => 'Указанного файла сборки не существует.', 'could_not_process_report' => 'Невозможно обработать отчет этой утилиты.', - 'shell_not_enabled' => 'Плагин shell не включен. Пожалуйста, включите его в файле config.yml.' + 'shell_not_enabled' => 'Плагин shell не включен. Пожалуйста, включите его в файле config.yml.', + + // Error Levels: + 'critical' => 'Критическая', + 'high' => 'Высокий', + 'normal' => 'Обычный', + 'low' => 'Низкий', + + // Plugins that generate errors: + 'php_mess_detector' => 'PHP Mess Detector', + 'php_code_sniffer' => 'PHP Code Sniffer', + 'php_unit' => 'PHP Unit', + 'php_cpd' => 'PHP Copy/Paste Detector', + 'php_docblock_checker' => 'PHP Docblock Checker', + 'php_lint' => 'PHP Lint' ); diff --git a/PHPCI/Logging/OutputLogHandler.php b/PHPCI/Logging/OutputLogHandler.php index 4b4c81a4..fc5eae5d 100644 --- a/PHPCI/Logging/OutputLogHandler.php +++ b/PHPCI/Logging/OutputLogHandler.php @@ -10,40 +10,82 @@ namespace PHPCI\Logging; use Monolog\Handler\AbstractProcessingHandler; -use Psr\Log\LogLevel; +use Monolog\Logger; +use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Output\OutputInterface; /** * Class OutputLogHandler outputs the build log to the terminal. + * * @package PHPCI\Logging */ class OutputLogHandler extends AbstractProcessingHandler { + /** + * @var array + */ + protected static $levels = array( + OutputInterface::VERBOSITY_QUIET => Logger::ERROR, + OutputInterface::VERBOSITY_NORMAL => Logger::WARNING, + OutputInterface::VERBOSITY_VERBOSE => Logger::NOTICE, + OutputInterface::VERBOSITY_VERY_VERBOSE => Logger::INFO, + OutputInterface::VERBOSITY_DEBUG => Logger::DEBUG, + ); + /** + * @var array + */ + protected static $colors = array( + Logger::ERROR => 'red', + Logger::WARNING => 'yellow', + Logger::NOTICE => 'green', + Logger::INFO => 'white' + ); /** * @var OutputInterface */ protected $output; /** + * OutputLogHandler constructor. + * * @param OutputInterface $output - * @param bool|string $level - * @param bool $bubble */ - public function __construct( - OutputInterface $output, - $level = LogLevel::INFO, - $bubble = true - ) { - parent::__construct($level, $bubble); + public function __construct(OutputInterface $output) + { + parent::__construct(static::$levels[$output->getVerbosity()]); $this->output = $output; + $this->pushProcessor(array($this, 'addConsoleColor')); + + } + + public function addConsoleColor($record) + { + foreach (static::$colors as $level => $color) { + if ($record['level'] >= $level) { + break; + } + + } + + $record['message'] = sprintf('%s', $color, rtrim($record['message']), $color); + + return $record; } /** * Write a log entry to the terminal. + * * @param array $record */ protected function write(array $record) { - $this->output->writeln((string)$record['formatted']); + + if ($record['level'] >= Logger::ERROR && $this->output instanceof ConsoleOutputInterface) { + $output = $this->output->getErrorOutput(); + } else { + $output = $this->output; + } + + $output->write($record['formatted']); } } diff --git a/PHPCI/Plugin/PhpLoc.php b/PHPCI/Plugin/PhpLoc.php index c8dedb91..e7d03057 100644 --- a/PHPCI/Plugin/PhpLoc.php +++ b/PHPCI/Plugin/PhpLoc.php @@ -15,6 +15,7 @@ use PHPCI\Model\Build; /** * PHP Loc - Allows PHP Copy / Lines of Code testing. + * * @author Johan van der Heide * @package PHPCI * @subpackage Plugins @@ -30,11 +31,18 @@ class PhpLoc implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin */ protected $phpci; + /** + * @var Build + */ + protected $build; + /** * Check if this plugin can be executed. - * @param $stage + * + * @param $stage * @param Builder $builder - * @param Build $build + * @param Build $build + * * @return bool */ public static function canExecute($stage, Builder $builder, Build $build) @@ -48,14 +56,15 @@ class PhpLoc implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin /** * Set up the plugin, configure options, etc. + * * @param Builder $phpci - * @param Build $build - * @param array $options + * @param Build $build + * @param array $options */ public function __construct(Builder $phpci, Build $build, array $options = array()) { - $this->phpci = $phpci; - $this->build = $build; + $this->phpci = $phpci; + $this->build = $build; $this->directory = $phpci->buildPath; if (isset($options['directory'])) { @@ -82,17 +91,30 @@ class PhpLoc implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin $phploc = $this->phpci->findBinary('phploc'); $success = $this->phpci->executeCommand($phploc . ' %s "%s"', $ignore, $this->directory); - $output = $this->phpci->getLastOutput(); + $output = $this->phpci->getLastOutput(); - if (preg_match_all('/\((LOC|CLOC|NCLOC|LLOC)\)\s+([0-9]+)/', $output, $matches)) { + if (preg_match_all('/\((LOC|CLOC|NCLOC|LLOC)\)\s+([0-9]+)/', $output, $matches2)) { $data = array(); - foreach ($matches[1] as $k => $v) { - $data[$v] = (int)$matches[2][$k]; + foreach ($matches2[1] as $k => $v) { + $data[$v] = (int) $matches2[2][$k]; } $this->build->storeMeta('phploc', $data); } + if (preg_match_all('/(Namespaces|Interfaces|Classes|Methods)\s+([0-9]+)/', $output, $matches)) { + $key = $matches[1]; + $val = $matches[2]; + $data = array( + $key[1] => (int) $val[1], + $key[2] => (int) $val[2], + $key[3] => (int) $val[3], + $key[6] => (int) $val[6], + ); + + $this->build->storeMeta('phploc-structure', $data); + } + return $success; } } diff --git a/PHPCI/Plugin/Util/Factory.php b/PHPCI/Plugin/Util/Factory.php index b6d11e5e..a62b6335 100644 --- a/PHPCI/Plugin/Util/Factory.php +++ b/PHPCI/Plugin/Util/Factory.php @@ -2,32 +2,37 @@ namespace PHPCI\Plugin\Util; +use Pimple\Container; + /** * Plugin Factory - Loads Plugins and passes required dependencies. + * * @package PHPCI\Plugin\Util */ class Factory { - const TYPE_ARRAY = "array"; - const TYPE_CALLABLE = "callable"; + const TYPE_ARRAY = "array"; + const TYPE_CALLABLE = "callable"; const INTERFACE_PHPCI_PLUGIN = '\PHPCI\Plugin'; private $currentPluginOptions; /** - * @var \Pimple + * @var Container */ private $container; /** - * @param \Pimple $container + * Factory constructor. + * + * @param Container|null $container */ - public function __construct(\Pimple $container = null) + public function __construct(Container $container = null) { if ($container) { $this->container = $container; } else { - $this->container = new \Pimple(); + $this->container = new Container(); } $self = $this; @@ -46,6 +51,7 @@ class Factory * This enables the config file to call any public methods. * * @param $configPath + * * @return bool - true if the function exists else false. */ public function addConfigFromFile($configPath) @@ -56,14 +62,17 @@ class Factory $configFunction = require($configPath); if (is_callable($configFunction)) { $configFunction($this); + return true; } } + return false; } /** * Get most recently used factory options. + * * @return mixed */ public function getLastOptions() @@ -75,8 +84,9 @@ class Factory * Builds an instance of plugin of class $className. $options will * be passed along with any resources registered with the factory. * - * @param $className + * @param $className * @param array|null $options + * * @throws \InvalidArgumentException if $className doesn't represent a valid plugin * @return \PHPCI\Plugin */ @@ -108,9 +118,10 @@ class Factory } /** - * @param callable $loader + * @param callable $loader * @param string|null $name * @param string|null $type + * * @throws \InvalidArgumentException * @internal param mixed $resource */ @@ -118,7 +129,8 @@ class Factory $loader, $name = null, $type = null - ) { + ) + { if ($name === null && $type === null) { throw new \InvalidArgumentException( "Type or Name must be specified" @@ -138,20 +150,24 @@ class Factory /** * Get an internal resource ID. + * * @param null $type * @param null $name + * * @return string */ private function getInternalID($type = null, $name = null) { - $type = $type ? : ""; - $name = $name ? : ""; + $type = $type ?: ""; + $name = $name ?: ""; + return $type . "-" . $name; } /** * @param string $type * @param string $name + * * @return mixed */ public function getResourceFor($type = null, $name = null) @@ -176,6 +192,7 @@ class Factory /** * @param \ReflectionParameter $param + * * @return null|string */ private function getParamType(\ReflectionParameter $param) @@ -193,8 +210,9 @@ class Factory } /** - * @param $existingArgs + * @param $existingArgs * @param \ReflectionParameter $param + * * @return array * @throws \DomainException */ diff --git a/PHPCI/View/Project/view.phtml b/PHPCI/View/Project/view.phtml index 79b7ef0e..01ef306f 100644 --- a/PHPCI/View/Project/view.phtml +++ b/PHPCI/View/Project/view.phtml @@ -9,7 +9,7 @@ - + diff --git a/PHPCI/View/layout.phtml b/PHPCI/View/layout.phtml index 1960aff6..5b4197ae 100644 --- a/PHPCI/View/layout.phtml +++ b/PHPCI/View/layout.phtml @@ -31,6 +31,7 @@ + diff --git a/composer.json b/composer.json deleted file mode 100644 index a9080a94..00000000 --- a/composer.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name" : "block8/phpci", - "description" : "Simple continuous integration for PHP projects.", - "minimum-stability": "stable", - "type" : "library", - "keywords" : ["php", "phpci", "ci", "continuous", "integration", "testing", "phpunit", "continuous integration", "jenkins", "travis"], - "homepage" : "http://www.phptesting.org/", - "license" : "BSD-2-Clause", - - "authors": [ - { - "name" : "Dan Cryer", - "email" : "dan.cryer@block8.co.uk", - "homepage": "http://www.block8.co.uk", - "role" : "Developer" - } - ], - - "support": { - "email" : "hello+phpci@block8.co.uk", - "issues": "https://github.com/Block8/PHPCI/issues", - "source": "https://github.com/Block8/PHPCI" - }, - - "autoload": { - "psr-4": { - "PHPCI\\": "PHPCI" - } - }, - - "autoload-dev": { - "psr-4": { - "Tests\\PHPCI\\": "Tests/PHPCI/" - } - }, - - "require": { - "php": ">=5.3.8", - "ext-pdo": "*", - "ext-pdo_mysql": "*", - "block8/b8framework": "~1.0", - "ircmaxell/password-compat": "~1.0", - "swiftmailer/swiftmailer": "~5.0", - "symfony/yaml": "~2.1", - "symfony/console": "~2.1", - "psr/log": "~1.0", - "monolog/monolog": "~1.6", - "pimple/pimple": "~1.1", - "robmorgan/phinx": "~0.4", - "sensiolabs/ansi-to-html": "~1.1", - "pda/pheanstalk": "~3.1", - "maknz/slack": "~1.7", - "hipchat/hipchat-php": "~1.4", - "mremi/flowdock": "~1.0" - }, - - "require-dev": { - "phpunit/phpunit": "~4.5", - "phpmd/phpmd": "~2.0", - "squizlabs/php_codesniffer": "~2.3", - "block8/php-docblock-checker": "~1.0", - "phploc/phploc": "~2.0", - "jakub-onderka/php-parallel-lint": "0.8.*" - }, - - "suggest": { - "block8/php-docblock-checker": "PHP Docblock Checker", - "phpmd/phpmd": "PHP Mess Detector", - "sebastian/phpcpd": "PHP Copy/Paste Detector", - "squizlabs/php_codesniffer": "PHP Code Sniffer", - "phpspec/phpspec": "PHP Spec", - "fabpot/php-cs-fixer": "PHP Coding Standards Fixer", - "phploc/phploc": "PHP Lines of Code", - "atoum/atoum": "Atoum", - "jakub-onderka/php-parallel-lint": "Parallel Linting Tool", - "behat/behat": "Behat BDD Testing", - "phptal/phptal": "PHPTAL templating engine" - } -} diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 9714ff78..00000000 --- a/composer.lock +++ /dev/null @@ -1,2740 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "hash": "de65276e03e231d7072c744a3c63662e", - "content-hash": "1d9f6f487e6d906bbed73e2667c276d6", - "packages": [ - { - "name": "block8/b8framework", - "version": "1.1.10", - "source": { - "type": "git", - "url": "https://github.com/Block8/b8framework.git", - "reference": "5d2d2863ce15a6b91e0b2aed4250dd29c6224446" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Block8/b8framework/zipball/5d2d2863ce15a6b91e0b2aed4250dd29c6224446", - "reference": "5d2d2863ce15a6b91e0b2aed4250dd29c6224446", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "symfony/yaml": "2.*" - }, - "type": "library", - "autoload": { - "psr-0": { - "b8": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "authors": [ - { - "name": "Block 8 Limited", - "email": "hello@block8.co.uk", - "homepage": "http://www.block8.co.uk" - } - ], - "description": "Simple, lightweight framework for high-throughput applications", - "homepage": "https://github.com/block8/b8framework", - "keywords": [ - "b8", - "block8", - "framework", - "lightweight", - "mvc", - "php" - ], - "time": "2015-10-05 10:50:20" - }, - { - "name": "guzzle/guzzle", - "version": "v3.9.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle3.git", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "php": ">=5.3.3", - "symfony/event-dispatcher": "~2.1" - }, - "replace": { - "guzzle/batch": "self.version", - "guzzle/cache": "self.version", - "guzzle/common": "self.version", - "guzzle/http": "self.version", - "guzzle/inflection": "self.version", - "guzzle/iterator": "self.version", - "guzzle/log": "self.version", - "guzzle/parser": "self.version", - "guzzle/plugin": "self.version", - "guzzle/plugin-async": "self.version", - "guzzle/plugin-backoff": "self.version", - "guzzle/plugin-cache": "self.version", - "guzzle/plugin-cookie": "self.version", - "guzzle/plugin-curlauth": "self.version", - "guzzle/plugin-error-response": "self.version", - "guzzle/plugin-history": "self.version", - "guzzle/plugin-log": "self.version", - "guzzle/plugin-md5": "self.version", - "guzzle/plugin-mock": "self.version", - "guzzle/plugin-oauth": "self.version", - "guzzle/service": "self.version", - "guzzle/stream": "self.version" - }, - "require-dev": { - "doctrine/cache": "~1.3", - "monolog/monolog": "~1.0", - "phpunit/phpunit": "3.7.*", - "psr/log": "~1.0", - "symfony/class-loader": "~2.1", - "zendframework/zend-cache": "2.*,<2.3", - "zendframework/zend-log": "2.*,<2.3" - }, - "suggest": { - "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.9-dev" - } - }, - "autoload": { - "psr-0": { - "Guzzle": "src/", - "Guzzle\\Tests": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Guzzle Community", - "homepage": "https://github.com/guzzle/guzzle/contributors" - } - ], - "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2015-03-18 18:23:50" - }, - { - "name": "guzzlehttp/guzzle", - "version": "6.2.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "d094e337976dff9d8e2424e8485872194e768662" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662", - "reference": "d094e337976dff9d8e2424e8485872194e768662", - "shasum": "" - }, - "require": { - "guzzlehttp/promises": "~1.0", - "guzzlehttp/psr7": "~1.1", - "php": ">=5.5.0" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "~4.0", - "psr/log": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2016-03-21 20:02:09" - }, - { - "name": "guzzlehttp/promises", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "bb9024c526b22f3fe6ae55a561fd70653d470aa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bb9024c526b22f3fe6ae55a561fd70653d470aa8", - "reference": "bb9024c526b22f3fe6ae55a561fd70653d470aa8", - "shasum": "" - }, - "require": { - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "time": "2016-03-08 01:15:46" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "31382fef2889136415751badebbd1cb022a4ed72" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/31382fef2889136415751badebbd1cb022a4ed72", - "reference": "31382fef2889136415751badebbd1cb022a4ed72", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "PSR-7 message implementation", - "keywords": [ - "http", - "message", - "stream", - "uri" - ], - "time": "2016-04-13 19:56:01" - }, - { - "name": "hipchat/hipchat-php", - "version": "v1.4", - "source": { - "type": "git", - "url": "https://github.com/hipchat/hipchat-php.git", - "reference": "5936c0a48d2d514d94bfc1d774b04c42cd3bc39e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hipchat/hipchat-php/zipball/5936c0a48d2d514d94bfc1d774b04c42cd3bc39e", - "reference": "5936c0a48d2d514d94bfc1d774b04c42cd3bc39e", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "HipChat": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "HipChat", - "email": "support@hipchat.com", - "homepage": "https://www.hipchat.com", - "role": "Company" - } - ], - "description": "PHP library for HipChat", - "homepage": "http://github.com/hipchat/hipchat-php", - "keywords": [ - "hipchat" - ], - "time": "2015-04-28 22:48:40" - }, - { - "name": "ircmaxell/password-compat", - "version": "v1.0.4", - "source": { - "type": "git", - "url": "https://github.com/ircmaxell/password_compat.git", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "4.*" - }, - "type": "library", - "autoload": { - "files": [ - "lib/password.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthony Ferrara", - "email": "ircmaxell@php.net", - "homepage": "http://blog.ircmaxell.com" - } - ], - "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", - "homepage": "https://github.com/ircmaxell/password_compat", - "keywords": [ - "hashing", - "password" - ], - "time": "2014-11-20 16:49:30" - }, - { - "name": "maknz/slack", - "version": "1.7.0", - "source": { - "type": "git", - "url": "https://github.com/maknz/slack.git", - "reference": "7f21fefc70c76b304adc1b3a780c8740dfcfb595" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maknz/slack/zipball/7f21fefc70c76b304adc1b3a780c8740dfcfb595", - "reference": "7f21fefc70c76b304adc1b3a780c8740dfcfb595", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "guzzlehttp/guzzle": "~6.0|~5.0|~4.0", - "php": ">=5.4.0" - }, - "require-dev": { - "mockery/mockery": "0.9.*", - "phpunit/phpunit": "4.2.*" - }, - "suggest": { - "illuminate/support": "Required for Laravel support" - }, - "type": "library", - "autoload": { - "psr-4": { - "Maknz\\Slack\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "maknz", - "email": "github@mak.geek.nz" - } - ], - "description": "A simple PHP package for sending messages to Slack, with a focus on ease of use and elegant syntax. Includes Laravel support out of the box.", - "keywords": [ - "laravel", - "slack" - ], - "time": "2015-06-03 03:35:16" - }, - { - "name": "monolog/monolog", - "version": "1.19.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5f56ed5212dc509c8dc8caeba2715732abb32dbf", - "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", - "raven/raven": "^0.13", - "ruflin/elastica": ">=0.90 <3.0", - "swiftmailer/swiftmailer": "~5.3" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "raven/raven": "Allow sending log messages to a Sentry server", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "time": "2016-04-12 18:29:35" - }, - { - "name": "mremi/flowdock", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/mremi/Flowdock.git", - "reference": "e34ca78bbd4f974366e979186e876d78ae488e51" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mremi/Flowdock/zipball/e34ca78bbd4f974366e979186e876d78ae488e51", - "reference": "e34ca78bbd4f974366e979186e876d78ae488e51", - "shasum": "" - }, - "require": { - "guzzle/guzzle": "~3.7", - "php": ">=5.3.3", - "symfony/console": "~2.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.1" - }, - "type": "library", - "autoload": { - "psr-0": { - "Mremi\\Flowdock": "src", - "Mremi\\Flowdock\\Tests": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rémi Marseille", - "email": "marseille.remi@gmail.com" - } - ], - "description": "A PHP5 library to interact with the Flowdock API", - "homepage": "https://github.com/mremi/Flowdock", - "keywords": [ - "api", - "flowdock" - ], - "time": "2015-01-08 21:03:29" - }, - { - "name": "pda/pheanstalk", - "version": "v3.1.0", - "source": { - "type": "git", - "url": "https://github.com/pda/pheanstalk.git", - "reference": "430e77c551479aad0c6ada0450ee844cf656a18b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pda/pheanstalk/zipball/430e77c551479aad0c6ada0450ee844cf656a18b", - "reference": "430e77c551479aad0c6ada0450ee844cf656a18b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Pheanstalk\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paul Annesley", - "email": "paul@annesley.cc", - "homepage": "http://paul.annesley.cc/", - "role": "Developer" - } - ], - "description": "PHP client for beanstalkd queue", - "homepage": "https://github.com/pda/pheanstalk", - "keywords": [ - "beanstalkd" - ], - "time": "2015-08-07 21:42:41" - }, - { - "name": "pimple/pimple", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/silexphp/Pimple.git", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-0": { - "Pimple": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - } - ], - "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", - "homepage": "http://pimple.sensiolabs.org", - "keywords": [ - "container", - "dependency injection" - ], - "time": "2013-11-22 08:30:29" - }, - { - "name": "psr/http-message", - "version": "1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2015-05-04 20:22:00" - }, - { - "name": "psr/log", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-0": { - "Psr\\Log\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2012-12-21 11:40:51" - }, - { - "name": "robmorgan/phinx", - "version": "v0.5.3", - "source": { - "type": "git", - "url": "https://github.com/robmorgan/phinx.git", - "reference": "4e7fee7792f4bf3dbf55ee29001850ba26c86a88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/robmorgan/phinx/zipball/4e7fee7792f4bf3dbf55ee29001850ba26c86a88", - "reference": "4e7fee7792f4bf3dbf55ee29001850ba26c86a88", - "shasum": "" - }, - "require": { - "php": ">=5.4", - "symfony/config": "~2.8|~3.0", - "symfony/console": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0" - }, - "require-dev": { - "phpunit/phpunit": "^3.7|^4.0|^5.0" - }, - "bin": [ - "bin/phinx" - ], - "type": "library", - "autoload": { - "psr-4": { - "Phinx\\": "src/Phinx" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rob Morgan", - "email": "robbym@gmail.com", - "homepage": "http://robmorgan.id.au", - "role": "Lead Developer" - }, - { - "name": "Woody Gilk", - "email": "woody.gilk@gmail.com", - "homepage": "http://shadowhand.me", - "role": "Developer" - } - ], - "description": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app.", - "homepage": "https://phinx.org", - "keywords": [ - "database", - "database migrations", - "db", - "migrations", - "phinx" - ], - "time": "2016-03-07 14:09:22" - }, - { - "name": "sensiolabs/ansi-to-html", - "version": "v1.1.2", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/ansi-to-html.git", - "reference": "02598b975c510e9e7d07d0be0a89c7a6b43464d6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/ansi-to-html/zipball/02598b975c510e9e7d07d0be0a89c7a6b43464d6", - "reference": "02598b975c510e9e7d07d0be0a89c7a6b43464d6", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "suggest": { - "twig/twig": "Provides nice templating features" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-0": { - "SensioLabs\\AnsiConverter": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "A library to convert a text with ANSI codes to HTML", - "time": "2015-07-22 03:07:58" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v5.4.1", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421", - "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "mockery/mockery": "~0.9.1,<0.9.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "http://swiftmailer.org", - "keywords": [ - "email", - "mail", - "mailer" - ], - "time": "2015-06-06 14:19:39" - }, - { - "name": "symfony/config", - "version": "v3.0.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "980ee40c28f00acff8906c11b778aab5f0db74c2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/980ee40c28f00acff8906c11b778aab5f0db74c2", - "reference": "980ee40c28f00acff8906c11b778aab5f0db74c2", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/filesystem": "~2.8|~3.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2016-03-04 07:55:57" - }, - { - "name": "symfony/console", - "version": "v2.8.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "9a5aef5fc0d4eff86853d44202b02be8d5a20154" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9a5aef5fc0d4eff86853d44202b02be8d5a20154", - "reference": "9a5aef5fc0d4eff86853d44202b02be8d5a20154", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/process": "~2.1|~3.0.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2016-03-17 09:19:04" - }, - { - "name": "symfony/event-dispatcher", - "version": "v2.8.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "47d2d8cade9b1c3987573d2943bb9352536cdb87" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/47d2d8cade9b1c3987573d2943bb9352536cdb87", - "reference": "47d2d8cade9b1c3987573d2943bb9352536cdb87", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.0,>=2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.6|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2016-03-07 14:04:32" - }, - { - "name": "symfony/filesystem", - "version": "v3.0.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "f82499a459dcade2ea56df94cc58b19c8bde3d20" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/f82499a459dcade2ea56df94cc58b19c8bde3d20", - "reference": "f82499a459dcade2ea56df94cc58b19c8bde3d20", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2016-03-27 10:24:39" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "1289d16209491b584839022f29257ad859b8532d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", - "reference": "1289d16209491b584839022f29257ad859b8532d", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2016-01-20 09:13:37" - }, - { - "name": "symfony/yaml", - "version": "v2.8.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "584e52cb8f788a887553ba82db6caacb1d6260bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/584e52cb8f788a887553ba82db6caacb1d6260bb", - "reference": "584e52cb8f788a887553ba82db6caacb1d6260bb", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2016-03-04 07:54:35" - } - ], - "packages-dev": [ - { - "name": "block8/php-docblock-checker", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/Block8/php-docblock-checker.git", - "reference": "1f0a4e6b7e2487b1f4891bb50ffe74eaa9de89e3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Block8/php-docblock-checker/zipball/1f0a4e6b7e2487b1f4891bb50ffe74eaa9de89e3", - "reference": "1f0a4e6b7e2487b1f4891bb50ffe74eaa9de89e3", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "phpunit/php-token-stream": "1.*", - "symfony/console": "~2.1" - }, - "require-dev": { - "phploc/phploc": "~2.0", - "phpmd/phpmd": "~2.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "bin": [ - "phpdoccheck" - ], - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Dan Cryer", - "email": "dan.cryer@block8.co.uk", - "homepage": "http://www.block8.co.uk", - "role": "Developer" - } - ], - "description": "A simple tool for checking that your PHP classes and methods use docblocks.", - "homepage": "https://www.phptesting.org/", - "keywords": [ - "checker", - "code quality", - "comment", - "docblock", - "php", - "phpci", - "testing" - ], - "time": "2014-10-23 13:03:24" - }, - { - "name": "doctrine/instantiator", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", - "shasum": "" - }, - "require": { - "php": ">=5.3,<8.0-DEV" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2015-06-14 21:17:01" - }, - { - "name": "jakub-onderka/php-parallel-lint", - "version": "v0.8", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Parallel-Lint.git", - "reference": "2b242dcdbdd7369d2a746518ac31bb30c514b728" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Parallel-Lint/zipball/2b242dcdbdd7369d2a746518ac31bb30c514b728", - "reference": "2b242dcdbdd7369d2a746518ac31bb30c514b728", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "jakub-onderka/php-console-highlighter": "~0.3", - "nette/tester": "~1.3" - }, - "suggest": { - "jakub-onderka/php-console-highlighter": "Highlight syntax in code snippet" - }, - "bin": [ - "parallel-lint" - ], - "type": "library", - "autoload": { - "classmap": [ - "./" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com" - } - ], - "description": "This tool check syntax of PHP files about 20x faster than serial check.", - "homepage": "https://github.com/JakubOnderka/PHP-Parallel-Lint", - "time": "2014-10-05 10:19:39" - }, - { - "name": "pdepend/pdepend", - "version": "2.2.4", - "source": { - "type": "git", - "url": "https://github.com/pdepend/pdepend.git", - "reference": "b086687f3a01dc6bb92d633aef071d2c5dd0db06" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/b086687f3a01dc6bb92d633aef071d2c5dd0db06", - "reference": "b086687f3a01dc6bb92d633aef071d2c5dd0db06", - "shasum": "" - }, - "require": { - "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3", - "symfony/dependency-injection": "^2.3.0|^3", - "symfony/filesystem": "^2.3.0|^3" - }, - "require-dev": { - "phpunit/phpunit": "^4.4.0,<4.8", - "squizlabs/php_codesniffer": "^2.0.0" - }, - "bin": [ - "src/bin/pdepend" - ], - "type": "library", - "autoload": { - "psr-4": { - "PDepend\\": "src/main/php/PDepend" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Official version of pdepend to be handled with Composer", - "time": "2016-03-10 15:15:04" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8", - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "time": "2015-02-03 12:10:50" - }, - { - "name": "phploc/phploc", - "version": "2.1.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phploc.git", - "reference": "50e063abd41833b3a5d29a2e8fbef5859ac28bdc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/50e063abd41833b3a5d29a2e8fbef5859ac28bdc", - "reference": "50e063abd41833b3a5d29a2e8fbef5859ac28bdc", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/finder-facade": "~1.1", - "sebastian/git": "~2.0", - "sebastian/version": "~1.0.3", - "symfony/console": "~2.5" - }, - "require-dev": { - "phpunit/phpunit": "~4" - }, - "bin": [ - "phploc" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "A tool for quickly measuring the size of a PHP project.", - "homepage": "https://github.com/sebastianbergmann/phploc", - "time": "2015-10-22 13:44:19" - }, - { - "name": "phpmd/phpmd", - "version": "2.4.3", - "source": { - "type": "git", - "url": "https://github.com/phpmd/phpmd.git", - "reference": "2b9c2417a18696dfb578b38c116cd0ddc19b256e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/2b9c2417a18696dfb578b38c116cd0ddc19b256e", - "reference": "2b9c2417a18696dfb578b38c116cd0ddc19b256e", - "shasum": "" - }, - "require": { - "pdepend/pdepend": "^2.0.4", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0", - "squizlabs/php_codesniffer": "^2.0" - }, - "bin": [ - "src/bin/phpmd" - ], - "type": "project", - "autoload": { - "psr-0": { - "PHPMD\\": "src/main/php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Manuel Pichler", - "email": "github@manuel-pichler.de", - "homepage": "https://github.com/manuelpichler", - "role": "Project Founder" - }, - { - "name": "Other contributors", - "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", - "role": "Contributors" - }, - { - "name": "Marc Würth", - "email": "ravage@bluewin.ch", - "homepage": "https://github.com/ravage84", - "role": "Project Maintainer" - } - ], - "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", - "homepage": "http://phpmd.org/", - "keywords": [ - "mess detection", - "mess detector", - "pdepend", - "phpmd", - "pmd" - ], - "time": "2016-04-04 11:52:04" - }, - { - "name": "phpspec/prophecy", - "version": "v1.6.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3c91bdf81797d725b14cb62906f9a4ce44235972", - "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "~2.0", - "sebastian/comparator": "~1.1", - "sebastian/recursion-context": "~1.0" - }, - "require-dev": { - "phpspec/phpspec": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2016-02-15 07:46:21" - }, - { - "name": "phpunit/php-code-coverage", - "version": "2.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0" - }, - "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "~4" - }, - "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.2.1", - "ext-xmlwriter": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2015-10-06 15:47:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2015-06-21 13:08:43" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21 13:50:34" - }, - { - "name": "phpunit/php-timer", - "version": "1.0.7", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", - "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2015-06-21 08:01:12" - }, - { - "name": "phpunit/php-token-stream", - "version": "1.4.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2015-09-15 10:49:45" - }, - { - "name": "phpunit/phpunit", - "version": "4.8.24", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a1066c562c52900a142a0e2bbf0582994671385e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1066c562c52900a142a0e2bbf0582994671385e", - "reference": "a1066c562c52900a142a0e2bbf0582994671385e", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpspec/prophecy": "^1.3.1", - "phpunit/php-code-coverage": "~2.1", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": ">=1.0.6", - "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.1", - "sebastian/diff": "~1.2", - "sebastian/environment": "~1.3", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/version": "~1.0", - "symfony/yaml": "~2.1|~3.0" - }, - "suggest": { - "phpunit/php-invoker": "~1.1" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.8.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2016-03-14 06:16:08" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "2.3.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "time": "2015-10-02 06:51:40" - }, - { - "name": "sebastian/comparator", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2015-07-26 15:48:44" - }, - { - "name": "sebastian/diff", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2015-12-08 07:14:41" - }, - { - "name": "sebastian/environment", - "version": "1.3.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf", - "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2016-02-26 18:40:46" - }, - { - "name": "sebastian/exporter", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2015-06-21 07:55:53" - }, - { - "name": "sebastian/finder-facade", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/finder-facade.git", - "reference": "2a6f7f57efc0aa2d23297d9fd9e2a03111a8c0b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/2a6f7f57efc0aa2d23297d9fd9e2a03111a8c0b9", - "reference": "2a6f7f57efc0aa2d23297d9fd9e2a03111a8c0b9", - "shasum": "" - }, - "require": { - "symfony/finder": "~2.3|~3.0", - "theseer/fdomdocument": "~1.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", - "homepage": "https://github.com/sebastianbergmann/finder-facade", - "time": "2016-02-17 07:02:23" - }, - { - "name": "sebastian/git", - "version": "2.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/git.git", - "reference": "38638de3e94830a5cd7a5956135589b967609cd5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/git/zipball/38638de3e94830a5cd7a5956135589b967609cd5", - "reference": "38638de3e94830a5cd7a5956135589b967609cd5", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Simple wrapper for Git", - "homepage": "http://www.github.com/sebastianbergmann/git", - "keywords": [ - "git" - ], - "time": "2016-02-21 15:02:23" - }, - { - "name": "sebastian/global-state", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12 03:26:01" - }, - { - "name": "sebastian/recursion-context", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2015-11-11 19:50:13" - }, - { - "name": "sebastian/version", - "version": "1.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "shasum": "" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21 13:59:46" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "2.6.0", - "source": { - "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "1bcdf03b068a530ac1962ce671dead356eeba43b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1bcdf03b068a530ac1962ce671dead356eeba43b", - "reference": "1bcdf03b068a530ac1962ce671dead356eeba43b", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "bin": [ - "scripts/phpcs", - "scripts/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "classmap": [ - "CodeSniffer.php", - "CodeSniffer/CLI.php", - "CodeSniffer/Exception.php", - "CodeSniffer/File.php", - "CodeSniffer/Fixer.php", - "CodeSniffer/Report.php", - "CodeSniffer/Reporting.php", - "CodeSniffer/Sniff.php", - "CodeSniffer/Tokens.php", - "CodeSniffer/Reports/", - "CodeSniffer/Tokenizers/", - "CodeSniffer/DocGenerators/", - "CodeSniffer/Standards/AbstractPatternSniff.php", - "CodeSniffer/Standards/AbstractScopeSniff.php", - "CodeSniffer/Standards/AbstractVariableSniff.php", - "CodeSniffer/Standards/IncorrectPatternException.php", - "CodeSniffer/Standards/Generic/Sniffs/", - "CodeSniffer/Standards/MySource/Sniffs/", - "CodeSniffer/Standards/PEAR/Sniffs/", - "CodeSniffer/Standards/PSR1/Sniffs/", - "CodeSniffer/Standards/PSR2/Sniffs/", - "CodeSniffer/Standards/Squiz/Sniffs/", - "CodeSniffer/Standards/Zend/Sniffs/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "lead" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "http://www.squizlabs.com/php-codesniffer", - "keywords": [ - "phpcs", - "standards" - ], - "time": "2016-04-03 22:58:34" - }, - { - "name": "symfony/dependency-injection", - "version": "v3.0.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "6a9058101b591edced21ca3c83c80a3978f5c6b0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6a9058101b591edced21ca3c83c80a3978f5c6b0", - "reference": "6a9058101b591edced21ca3c83c80a3978f5c6b0", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0" - }, - "suggest": { - "symfony/config": "", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com", - "time": "2016-03-30 10:41:14" - }, - { - "name": "symfony/finder", - "version": "v3.0.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "c54e407b35bc098916704e9fd090da21da4c4f52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/c54e407b35bc098916704e9fd090da21da4c4f52", - "reference": "c54e407b35bc098916704e9fd090da21da4c4f52", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2016-03-10 11:13:05" - }, - { - "name": "theseer/fdomdocument", - "version": "1.6.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/fDOMDocument.git", - "reference": "d9ad139d6c2e8edf5e313ffbe37ff13344cf0684" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/d9ad139d6c2e8edf5e313ffbe37ff13344cf0684", - "reference": "d9ad139d6c2e8edf5e313ffbe37ff13344cf0684", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "lib-libxml": "*", - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "lead" - } - ], - "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.", - "homepage": "https://github.com/theseer/fDOMDocument", - "time": "2015-05-27 22:58:02" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=5.3.8", - "ext-pdo": "*", - "ext-pdo_mysql": "*" - }, - "platform-dev": [] -} diff --git a/errors.log b/errors.log new file mode 100644 index 00000000..e69de29b diff --git a/loggerconfig.php.example b/loggerconfig.php similarity index 100% rename from loggerconfig.php.example rename to loggerconfig.php diff --git a/public/assets/js/build-plugins/composer-security-check.js b/public/assets/js/build-plugins/composer-security-check.js new file mode 100644 index 00000000..51859de8 --- /dev/null +++ b/public/assets/js/build-plugins/composer-security-check.js @@ -0,0 +1,72 @@ +var composerSecurityCheck = ActiveBuild.UiPlugin.extend({ + id: 'build-composer-security-check-errors', + css: 'col-lg-6 col-md-6 col-sm-6 col-xs-6', + title: Lang.get('Composer Security'), + lastData: null, + displayOnUpdate: false, + box: true, + rendered: false, + + register: function() { + var self = this; + var query = ActiveBuild.registerQuery('composer-security-check-errors', -1, {key: 'composer-security-check-errors'}) + + $(window).on('composer-security-check-errors', function(data) { + self.onUpdate(data); + }); + + $(window).on('build-updated', function() { + if (!self.rendered) { + self.displayOnUpdate = true; + query(); + } + }); + }, + + render: function() { + + return $('
' + + '' + + '' + + ' ' + + '' + + '
'+Lang.get('Resultats')+'
'); + }, + + onUpdate: function(e) { + if (!e.queryData) { + $('#build-composer-security-check-errors').hide(); + return; + } + + this.rendered = true; + this.lastData = e.queryData; + + var results = this.lastData[0].meta_value; + var tbody = $('#composer-security-check-data tbody'); + tbody.empty(); + + if (results.length == 0) { + $('#build-composer-security-check-errors').hide(); + return; + } + + console.log(results); + for (var i in results) { + var lib = results[i]; + var head = ''+i + ' ' + lib.version+'' + tbody.append(head); + console.log(lib); + for (var j in lib.advisories) { + var advise = lib.advisories[j] + console.log(advise); + var row = ''+advise.title+'' + tbody.append(row); + } + } + + $('#build-composer-security-check-errors').show(); + } +}); + +ActiveBuild.registerPlugin(new composerSecurityCheck()); diff --git a/public/assets/js/build-plugins/loc.js b/public/assets/js/build-plugins/loc.js index 89e703b8..406853c0 100644 --- a/public/assets/js/build-plugins/loc.js +++ b/public/assets/js/build-plugins/loc.js @@ -1,6 +1,6 @@ var locPlugin = ActiveBuild.UiPlugin.extend({ id: 'build-lines-chart', - css: 'col-xs-12', + css: 'col-xs-6', title: Lang.get('lines_of_code'), lastData: null, displayOnUpdate: false, diff --git a/public/assets/js/build-plugins/loc2.js b/public/assets/js/build-plugins/loc2.js new file mode 100644 index 00000000..12c07c01 --- /dev/null +++ b/public/assets/js/build-plugins/loc2.js @@ -0,0 +1,106 @@ +var locPlugin2 = ActiveBuild.UiPlugin.extend({ + id: 'build-lines-chart-structure', + css: 'col-xs-6', + title: Lang.get('structure'), + lastData: null, + displayOnUpdate: false, + rendered: false, + chartData: null, + + register: function() { + var self = this; + var query = ActiveBuild.registerQuery('phploc-structure', -1, {num_builds: 10, key: 'phploc-structure'}) + + $(window).on('phploc-structure', function(data) { + self.onUpdate(data); + }); + + $(window).on('build-updated', function(data) { + if (data.queryData.status > 1 && !self.rendered) { + query(); + } + }); + }, + + render: function() { + var self = this; + var container = $('
'); + container.append(''); + + $(document).on('shown.bs.tab', function () { + $('#build-lines-chart-structure').hide(); + self.drawChart(); + }); + + return container; + }, + + onUpdate: function(e) { + this.lastData = e.queryData; + this.displayChart(); + }, + + displayChart: function() { + var self = this; + var builds = this.lastData; + self.rendered = true; + + self.chartData = { + labels: [], + datasets: [ + { + label: "Namespaces", + strokeColor: "rgba(60,141,188,1)", + pointColor: "rgba(60,141,188,1)", + data: [] + }, + { + label: "Interfaces", + strokeColor: "rgba(245,105,84,1)", + pointColor: "rgba(245,105,84,1)", + data: [] + }, + { + label: "Classes", + strokeColor: "rgba(0,166,90,1)", + pointColor: "rgba(0,166,90,1)", + data: [] + }, + { + label: "Methods", + strokeColor: "rgba(0,192,239,1)", + pointColor: "rgba(0,192,239,1)", + data: [] + } + ] + }; + + for (var i in builds) { + self.chartData.labels.push('Build ' + builds[i].build_id); + self.chartData.datasets[0].data.push(builds[i].meta_value.Namespaces); + self.chartData.datasets[1].data.push(builds[i].meta_value.Interfaces); + self.chartData.datasets[2].data.push(builds[i].meta_value.Classes); + self.chartData.datasets[3].data.push(builds[i].meta_value.Methods); + } + + self.drawChart(); + }, + + drawChart: function () { + var self = this; + + if ($('#information').hasClass('active') && self.chartData && self.lastData) { + $('#build-lines-chart-structure').show(); + + var ctx = $("#phploc-structure-chart").get(0).getContext("2d"); + var phpLocChart = new Chart(ctx); + + phpLocChart.Line(self.chartData, { + datasetFill: false, + multiTooltipTemplate: "<%=datasetLabel%>: <%= value %>" + }); + } + } +}); + +ActiveBuild.registerPlugin(new locPlugin2()); diff --git a/public/assets/js/build-plugins/summary.js b/public/assets/js/build-plugins/summary.js index 7ccea67b..9e9736cf 100644 --- a/public/assets/js/build-plugins/summary.js +++ b/public/assets/js/build-plugins/summary.js @@ -1,6 +1,6 @@ var SummaryPlugin = ActiveBuild.UiPlugin.extend({ id: 'build-summary', - css: 'col-xs-12', + css: 'col-xs-6', title: Lang.get('build-summary'), box: true, statusIcons: [ 'fa-clock-o', 'fa-cogs', 'fa-check', 'fa-remove' ], diff --git a/public/assets/js/build-plugins/warnings.js b/public/assets/js/build-plugins/warnings.js index 046fb9c6..e6c2bb85 100644 --- a/public/assets/js/build-plugins/warnings.js +++ b/public/assets/js/build-plugins/warnings.js @@ -1,6 +1,6 @@ var warningsPlugin = ActiveBuild.UiPlugin.extend({ id: 'build-warnings-chart', - css: 'col-xs-12', + css: 'col-xs-6', title: Lang.get('quality_trend'), keys: { 'codeception-errors': Lang.get('codeception_errors'), diff --git a/public/assets/js/build.js b/public/assets/js/build.js index 4b9c10a1..79c4e55e 100644 --- a/public/assets/js/build.js +++ b/public/assets/js/build.js @@ -6,7 +6,7 @@ var Build = Class.extend({ queries: {}, updateInterval: null, - init: function(build) { + init: function (build) { var self = this; self.buildId = build; }, @@ -18,7 +18,7 @@ var Build = Class.extend({ self.registerQuery('build-updated', 10); - $(window).on('build-updated', function(data) { + $(window).on('build-updated', function (data) { self.buildData = data.queryData; @@ -68,12 +68,12 @@ var Build = Class.extend({ }); }, - registerQuery: function(name, seconds, query) { + registerQuery: function (name, seconds, query) { var self = this; var uri = 'build/meta/' + self.buildId; var query = query || {}; - var cb = function() { + var cb = function () { var fullUri = window.PHPCI_URL + uri; if (name == 'build-updated') { @@ -84,7 +84,7 @@ var Build = Class.extend({ dataType: "json", url: fullUri, data: query, - success: function(data) { + success: function (data) { $(window).trigger({type: name, queryData: data}); }, error: handleFailedAjax @@ -102,7 +102,7 @@ var Build = Class.extend({ clearInterval(this.queries[name]); }, - registerPlugin: function(plugin) { + registerPlugin: function (plugin) { this.plugins[plugin.id] = plugin; plugin.register(); }, @@ -110,14 +110,14 @@ var Build = Class.extend({ storePluginOrder: function () { var renderOrder = []; - $('.ui-plugin > div').each(function() { + $('.ui-plugin > div').each(function () { renderOrder.push($(this).attr('id')); }); localStorage.setItem('phpci-plugin-order', JSON.stringify(renderOrder)); }, - renderPlugins: function() { + renderPlugins: function () { var self = this; var rendered = []; var renderOrder = localStorage.getItem('phpci-plugin-order'); @@ -155,7 +155,7 @@ var Build = Class.extend({ $(window).trigger({type: 'build-updated', queryData: self.buildData}); }, - renderPlugin: function(plugin) { + renderPlugin: function (plugin) { var output = plugin.render(); if (!plugin.box) { @@ -167,26 +167,102 @@ var Build = Class.extend({ content.addClass('box box-default'); if (plugin.title) { - content.prepend('

'+plugin.title+'

'); + content.prepend('

' + plugin.title + '

'); } - + this.toggleWidget(content); container.append(content); $('#plugins').append(container); }, + toggleWidget: function ($box) { + + var self = this; + var id = $box.attr('id'); + var $header = $box.find('.box-header'); + var $content = $header.next(); + + // Add widget toggler + + var $toggle = $(''); + + if (self.isWidgetHidden(id)) { + $content.addClass('hidden'); + $toggle.toggleClass('fa-angle-down fa-angle-left'); + } + $toggle.appendTo($header).click(function () { + $content.toggleClass('hidden'); + + if ($content.hasClass('hidden')) { + self.hideWidget(id); + + } else { + self.showWidget(id); + + } + $(this).toggleClass('fa-angle-down fa-angle-left'); + + }); + + }, + isWidgetHidden: function (id) { + + var settings = this._getSettings('hidden_widgets'); + return (settings.indexOf(id) != -1); + + }, + + hideWidget: function (id) { + + var settings = this._getSettings('hidden_widgets'); + var index = settings.indexOf(id); + + if (index == -1) { + settings.push(id); + this._storeSettings('hidden_widgets', settings); + + } + + }, + + showWidget: function (id) { + + var settings = this._getSettings('hidden_widgets'); + var index = settings.indexOf(id); + + if (index != -1) { + settings.splice(index, 1); + this._storeSettings('hidden_widgets', settings); + } + + }, + + _getSettings: function (setting) { + + var settingsArray = []; + var settingsString = $.cookie(setting); + + if (settingsString) { + settingsArray = settingsString.split(','); + } + + return settingsArray; + + }, + _storeSettings: function (setting, value) { + $.cookie(setting, value.toString()); + + }, UiPlugin: Class.extend({ id: null, css: 'col-lg-4 col-md-6 col-sm-12 col-xs-12', box: false, - - init: function(){ + init: function () { }, - register: function() { + register: function () { var self = this; - - $(window).on('build-updated', function(data) { + $(window).on('build-updated', function (data) { self.onUpdate(data); }); },