Index: branches/5.3.x/core/units/users/users_config.php =================================================================== diff -u -N -r15902 -r16195 --- branches/5.3.x/core/units/users/users_config.php (.../users_config.php) (revision 15902) +++ branches/5.3.x/core/units/users/users_config.php (.../users_config.php) (revision 16195) @@ -1,6 +1,6 @@ hAFTER, + 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => '', 'HookToSpecial' => '*', Index: branches/5.3.x/core/units/forms/forms/forms_config.php =================================================================== diff -u -N -r15659 -r16195 --- branches/5.3.x/core/units/forms/forms/forms_config.php (.../forms_config.php) (revision 15659) +++ branches/5.3.x/core/units/forms/forms/forms_config.php (.../forms_config.php) (revision 16195) @@ -1,6 +1,6 @@ Array ( Array ( - 'Mode' => hAFTER, + 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => 'form', //self 'HookToSpecial' => '*', Index: branches/5.3.x/core/admin_templates/js/simple_grid.js =================================================================== diff -u -N -r15483 -r16195 --- branches/5.3.x/core/admin_templates/js/simple_grid.js (.../simple_grid.js) (revision 15483) +++ branches/5.3.x/core/admin_templates/js/simple_grid.js (.../simple_grid.js) (revision 16195) @@ -165,8 +165,9 @@ } SimpleGrid.prototype.processOddEven = function () { - var $me = this; - var $class_name = 'odd'; + var $me = this, + $prev_class_name = 'even', + $next_class_name = 'odd'; $('> div', this.getControl('container')).each( function () { @@ -176,8 +177,10 @@ return ; } - $me.getControl(RegExp.$1).className = $class_name; - $class_name = $class_name == 'odd' ? 'even' : 'odd'; + $prev_class_name = $next_class_name == 'odd' ? 'even' : 'odd'; + + $($me.getControl(RegExp.$1)).removeClass($prev_class_name).addClass($next_class_name); + $next_class_name = $prev_class_name; } ); } Index: branches/5.3.x/core/units/categories/categories_event_handler.php =================================================================== diff -u -N -r16171 -r16195 --- branches/5.3.x/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 16171) +++ branches/5.3.x/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 16195) @@ -1,6 +1,6 @@ :]]", '.$weight.', 0)'; }*/ + if ( count($positive_words) > 1 ) { + $condition = $field . ' LIKE "%' . implode(' ', $positive_words) . '%"'; + $revelance_parts[] = 'IF(' . $condition . ', ' . $weight_sum . ', 0)'; + } + // search by partial word matches too - $revelance_parts[] = 'IF('.$field.' LIKE "%'.implode(' ', $positive_words).'%", '.$weight_sum.', 0)'; - foreach ($positive_words as $keyword) { - $revelance_parts[] = 'IF('.$field.' LIKE "%'.$keyword.'%", '.$weight.', 0)'; + foreach ( $positive_words as $keyword ) { + $revelance_parts[] = 'IF(' . $field . ' LIKE "%' . $keyword . '%", ' . $weight . ', 0)'; } } Index: branches/5.3.x/core/kernel/utility/debugger.php =================================================================== diff -u -N -r15977 -r16195 --- branches/5.3.x/core/kernel/utility/debugger.php (.../debugger.php) (revision 15977) +++ branches/5.3.x/core/kernel/utility/debugger.php (.../debugger.php) (revision 16195) @@ -1,6 +1,6 @@ reportDone ) { + if ( $this->_inReportPrinting ) { // don't print same report twice (in case if shutdown function used + compression + fatal error) return ''; } + $this->_inReportPrinting = true; $last_error = error_get_last(); - if ( !is_null($last_error) && !$this->_lastErrorProcessed ) { - $this->_lastErrorProcessed = true; - $this->saveError($last_error['type'], $last_error['message'], $last_error['file'], $last_error['line']); + if ( !is_null($last_error) && $is_shutdown_func ) { + $this->saveError( + $last_error['type'], + $last_error['message'], + $last_error['file'], + $last_error['line'], + null, + $is_shutdown_func + ); } $this->profileFinish('script_runtime'); - $this->breakOutofBuffering(!$returnResult); + $this->_breakOutOfBuffering(!$return_result); $debugger_start = memory_get_usage(); @@ -1617,7 +1615,6 @@ if ( $skip_reporting ) { // let debugger write report and then don't output anything - $this->reportDone = true; return ''; } @@ -1628,7 +1625,7 @@ 'FilterTypes' => $this->_filterTypes, 'RowSeparator' => $this->rowSeparator, 'ErrorsCount' => (int)$this->getProfilerTotal('error_handling'), - 'IsFatalError' => $this->IsFatalError, + 'IsFatalError' => $this->_fatalErrorHappened(), 'SQLCount' => (int)$this->getProfilerTotal('sql'), 'SQLTime' => isset($this->ProfilerTotals['sql']) ? sprintf('%.5f', $this->ProfilerTotals['sql']) : 0, 'ScriptTime' => sprintf('%.5f', $this->ProfilerData['script_runtime']['ends'] - $this->ProfilerData['script_runtime']['begins']), @@ -1656,7 +1653,9 @@ IsFatalError || (!$is_install && DBG_RAISE_ON_WARNINGS && $this->WarningCount) ) { + if ( $this->_fatalErrorHappened() + || (!$is_install && DBG_RAISE_ON_WARNINGS && $this->WarningCount) + ) { echo '$Debugger.Toggle();'; } if ( DBG_TOOLBAR_BUTTONS ) { @@ -1666,26 +1665,26 @@ window.focus(); getShortReport($this->getMemoryUsed($debugger_start)); - $this->reportDone = true; return $ret; } else { if ( !DebuggerUtil::constOn('DBG_HIDE_FULL_REPORT') ) { - $this->breakOutofBuffering(); + $this->_breakOutOfBuffering(); } elseif ( $clean_output_buffer ) { ob_clean(); } - echo $this->getShortReport($this->getMemoryUsed($debugger_start)); - $this->reportDone = true; + echo $this->getShortReport($this->getMemoryUsed($debugger_start)); } return ''; @@ -1774,19 +1773,49 @@ } /** - * User-defined error handler + * Detects if there was a fatal error at some point * - * @throws Exception - * @param int $errno - * @param string $errstr - * @param string $errfile - * @param int $errline - * @param array $errcontext - * @return bool - * @access public + * @return boolean */ - public function saveError($errno, $errstr, $errfile = null, $errline = null, $errcontext = Array ()) + private function _fatalErrorHappened() { + return $this->_fatalErrorHash !== 0; + } + + /** + * Creates error hash + * + * @param string $errfile File, where error happened. + * @param integer $errline Line in file, where error happened. + * + * @return integer + */ + private function _getErrorHash($errfile, $errline) + { + return crc32($errfile . ':' . $errline); + } + + /** + * User-defined error handler + * + * @param integer $errno Error code. + * @param string $errstr Error message. + * @param string $errfile Error file. + * @param integer $errline Error line. + * @param array $errcontext Error context. + * @param boolean $is_shutdown_func Called from shutdown function. + * + * @return boolean + * @throws Exception When unknown error code given. + */ + public function saveError( + $errno, + $errstr, + $errfile = null, + $errline = null, + array $errcontext = null, + $is_shutdown_func = false + ) { $this->ProfilerData['error_handling']['begins'] = memory_get_usage(); $errorType = $this->getErrorNameByCode($errno); @@ -1795,7 +1824,7 @@ throw new Exception('Unknown error type [' . $errno . ']'); } elseif ( substr($errorType, 0, 5) == 'Fatal' ) { - $this->IsFatalError = true; + $this->_fatalErrorHash = $this->_getErrorHash($errfile, $errline); $this->appendTrace(4); } @@ -1813,9 +1842,15 @@ $this->WarningCount++; } - if ( $this->IsFatalError ) { - // append debugger report to data in buffer & clean buffer afterwards - die( $this->breakOutofBuffering(false) . $this->printReport(true) ); + if ( $this->_fatalErrorHappened() + && $this->_getErrorHash($errfile, $errline) === $this->_fatalErrorHash + ) { + // Append debugger report to data in buffer & clean buffer afterwards. + echo $this->_breakOutOfBuffering(false) . $this->printReport(true); + + if ( !$is_shutdown_func ) { + exit; + } } return true; @@ -1860,10 +1895,10 @@ public function saveException($exception) { $this->appendException($exception); - $this->IsFatalError = true; + $this->_fatalErrorHash = $this->_getErrorHash($exception->getFile(), $exception->getLine()); - // append debugger report to data in buffer & clean buffer afterwards - die( $this->breakOutofBuffering(false) . $this->printReport(true) ); + // Append debugger report to data in buffer & clean buffer afterwards. + echo $this->_breakOutOfBuffering(false) . $this->printReport(true); } /** @@ -1901,7 +1936,7 @@ * @return string * @access private */ - private function breakOutofBuffering($flush = true) + private function _breakOutOfBuffering($flush = true) { $buffer_content = Array (); while ( ob_get_level() ) { @@ -2049,6 +2084,6 @@ } if ( DebuggerUtil::constOn('DBG_USE_SHUTDOWN_FUNC') ) { - register_shutdown_function(Array (&$debugger, 'printReport')); + register_shutdown_function(array(&$debugger, 'printReport'), false, true, true); } - } + } \ No newline at end of file Index: branches/5.3.x/.arcconfig =================================================================== diff -u -N -r16124 -r16195 --- branches/5.3.x/.arcconfig (.../.arcconfig) (revision 16124) +++ branches/5.3.x/.arcconfig (.../.arcconfig) (revision 16195) @@ -1,6 +1,5 @@ { - "project.name" : "in-portal", - "repository.callsign": "INP", - "phabricator.uri" : "http://qa.in-portal.org/", - "lint.phpcs.standard" : "vendor/aik099/coding-standard/CodingStandard" + "project.name": "in-portal", + "repository.callsign": "INP", + "phabricator.uri": "http://qa.in-portal.org/" } Index: branches/5.3.x/core/kernel/utility/logger.php =================================================================== diff -u -N -r15962 -r16195 --- branches/5.3.x/core/kernel/utility/logger.php (.../logger.php) (revision 15962) +++ branches/5.3.x/core/kernel/utility/logger.php (.../logger.php) (revision 16195) @@ -1,6 +1,6 @@ 200 ) { + $ret[$key] = substr($value, 0, 50) . ' ...'; + } else { $ret[$key] = $value; } @@ -1250,17 +1247,9 @@ $log->write(); $res = false; - /* @var $handler Closure */ foreach ($this->_handlers as $handler) { - if ( is_array($handler) ) { - $object =& $handler[0]; - $method = $handler[1]; - $res = $object->$method($errno, $errstr, $errfile, $errline, $errcontext); - } - else { - $res = $handler($errno, $errstr, $errfile, $errline, $errcontext); - } + $res = call_user_func($handler, $errno, $errstr, $errfile, $errline, $errcontext); } return $res; @@ -1349,19 +1338,11 @@ $log->write(); $res = false; - /* @var $handler Closure */ foreach ($this->_handlers as $handler) { - if ( is_array($handler) ) { - $object =& $handler[0]; - $method = $handler[1]; - $res = $object->$method($exception); - } - else { - $res = $handler($exception); - } + $res = call_user_func($handler, $exception); } return $res; } -} \ No newline at end of file +} Index: branches/5.3.x/composer.json =================================================================== diff -u -N -r16181 -r16195 --- branches/5.3.x/composer.json (.../composer.json) (revision 16181) +++ branches/5.3.x/composer.json (.../composer.json) (revision 16195) @@ -5,7 +5,13 @@ "stecman/symfony-console-completion": "~0.5" }, "require-dev": { + "aik099/phpunit-mink": "~2.0", + "qa-tools/qa-tools": "~1.0", "aik099/coding-standard": "dev-in-portal", - "nikic/php-parser": "~1.2" + "nikic/php-parser": "~1.2", + "mockery/mockery": "~0.9", + "mindplay/annotations": "~1.2@dev", + + "behat/mink": "~1.6" } } Index: branches/5.3.x/core/units/helpers/image_helper.php =================================================================== diff -u -N -r16111 -r16195 --- branches/5.3.x/core/units/helpers/image_helper.php (.../image_helper.php) (revision 16111) +++ branches/5.3.x/core/units/helpers/image_helper.php (.../image_helper.php) (revision 16195) @@ -1,6 +1,6 @@ change resulting image name ! + // Resize required OR watermarking required -> change resulting image name ! + if ( $needs_resize || array_intersect(array_keys($params), $transform_keys) ) { + // Escape replacement patterns, like "\". + $src_path_escaped = preg_replace('/(\\\[\d]+)/', '\\\\\1', $src_path); ksort($params); - $src_path_escaped = preg_replace('/(\\\[\d]+)/', '\\\\\1', $src_path); // escape replacement patterns, like "\" - $dst_image = preg_replace('/^'.preg_quote($src_path, '/').'(.*)\.(.*)$/', $src_path_escaped . DIRECTORY_SEPARATOR . 'resized\\1_' . crc32(serialize($params)) . '.\\2', $src_image); + $params_hash = kUtil::crc32(serialize($this->fileHelper->makeRelative($params))); + $dst_image = preg_replace( + '/^' . preg_quote($src_path, '/') . '(.*)\.(.*)$/', + $src_path_escaped . DIRECTORY_SEPARATOR . 'resized\\1_' . $params_hash . '.\\2', + $src_image + ); $this->fileHelper->CheckFolder( dirname($dst_image) ); Index: branches/5.3.x/index.php =================================================================== diff -u -N -r16124 -r16195 --- branches/5.3.x/index.php (.../index.php) (revision 16124) +++ branches/5.3.x/index.php (.../index.php) (revision 16195) @@ -1,6 +1,6 @@ AppendCode($o, $this->Parser->BreakCache('', $pointer.'b') . " ?".">\n", false); // $this->AppendCode($o, "if (!\$_parser->CacheStartOrContinue(\$_parser->CachableElements['".$tag['NP']['name']."'], '{$pointer}')) {".' ?'.'>', false); */ - $this->AppendCode($o, "echo (\$_parser->ParseBlock($to_pass));"); + $code = array("echo (\$_parser->ParseBlock($to_pass));"); + + if ( array_key_exists('result_to_var', $tag['NP']) && $tag['NP']['result_to_var'] ) { + $param_name = $tag['NP']['result_to_var']; + $code[] = "\$params['{$param_name}'] = \$_parser->GetParam('{$param_name}');"; + $code[] = "\${$param_name} = \$params['{$param_name}'];"; + } + + $this->AppendCode($o, $code); + return $o; } $this->Single = false; Index: branches/5.3.x/core/units/helpers/country_states_helper.php =================================================================== diff -u -N -r16111 -r16195 --- branches/5.3.x/core/units/helpers/country_states_helper.php (.../country_states_helper.php) (revision 16111) +++ branches/5.3.x/core/units/helpers/country_states_helper.php (.../country_states_helper.php) (revision 16195) @@ -1,6 +1,6 @@ GetFieldOptions($state_field); $field_options['options'] = $this->getStates($country_iso); - $field_options['options'][''] = ''; $object->SetFieldOptions($state_field, $field_options, $object->isVirtualField($state_field)); } Index: branches/5.3.x/composer.lock =================================================================== diff -u -N -r16181 -r16195 --- branches/5.3.x/composer.lock (.../composer.lock) (revision 16181) +++ branches/5.3.x/composer.lock (.../composer.lock) (revision 16195) @@ -4,7 +4,7 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "0084b5c04f49b47e81eff44c0343b57f", + "hash": "36a7149b43200b7f6376b78988f5138f", "packages": [ { "name": "stecman/symfony-console-completion", @@ -117,12 +117,12 @@ "source": { "type": "git", "url": "https://github.com/aik099/CodingStandard.git", - "reference": "a47f2b767c99a33f437802b3315179887018e114" + "reference": "987a6781521c9293b3e36ff3877cdff63010b291" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aik099/CodingStandard/zipball/a47f2b767c99a33f437802b3315179887018e114", - "reference": "a47f2b767c99a33f437802b3315179887018e114", + "url": "https://api.github.com/repos/aik099/CodingStandard/zipball/987a6781521c9293b3e36ff3877cdff63010b291", + "reference": "987a6781521c9293b3e36ff3877cdff63010b291", "shasum": "" }, "require-dev": { @@ -149,9 +149,454 @@ "PHP_CodeSniffer", "codesniffer" ], - "time": "2015-05-06 08:54:38" + "time": "2015-05-17 06:49:37" }, { + "name": "aik099/phpunit-mink", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/phpunit-mink.git", + "reference": "62889c5b065d69b695c87df6218b22147d78b147" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/phpunit-mink/zipball/62889c5b065d69b695c87df6218b22147d78b147", + "reference": "62889c5b065d69b695c87df6218b22147d78b147", + "shasum": "" + }, + "require": { + "behat/mink": "~1.6@dev", + "behat/mink-selenium2-driver": "~1.2", + "php": ">=5.3.2", + "phpunit/phpunit": ">=3.7.8", + "pimple/pimple": "~2.0|~3.0", + "symfony/event-dispatcher": "~2.4" + }, + "require-dev": { + "aik099/coding-standard": "dev-master", + "mockery/mockery": "~0.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "aik099\\": "./library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Alexander Obuhovich", + "email": "aik.bold@gmail.com" + } + ], + "description": "Library for using Mink in PHPUnit tests. Supports session sharing between tests in a test case.", + "homepage": "http://github.com/minkphp/phpunit-mink", + "keywords": [ + "BrowserStack", + "Mink", + "Sauce", + "SauceLabs", + "phpunit", + "selenium", + "tests" + ], + "time": "2015-05-06 13:33:55" + }, + { + "name": "behat/mink", + "version": "v1.6.1", + "source": { + "type": "git", + "url": "https://github.com/minkphp/Mink.git", + "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/8b68523a339ec991bcd638b39dc8f04f808da88a", + "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a", + "shasum": "" + }, + "require": { + "php": ">=5.3.1", + "symfony/css-selector": "~2.0" + }, + "suggest": { + "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", + "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", + "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", + "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Browser controller/emulator abstraction for PHP", + "homepage": "http://mink.behat.org/", + "keywords": [ + "browser", + "testing", + "web" + ], + "time": "2015-02-04 17:02:06" + }, + { + "name": "behat/mink-selenium2-driver", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkSelenium2Driver.git", + "reference": "8018fee80bf6573f909ece3e0dfc07d0eb352210" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/8018fee80bf6573f909ece3e0dfc07d0eb352210", + "reference": "8018fee80bf6573f909ece3e0dfc07d0eb352210", + "shasum": "" + }, + "require": { + "behat/mink": "~1.6@dev", + "instaclick/php-webdriver": "~1.1", + "php": ">=5.3.1" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Mink\\Driver": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Pete Otaqui", + "email": "pete@otaqui.com", + "homepage": "https://github.com/pete-otaqui" + } + ], + "description": "Selenium2 (WebDriver) driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "ajax", + "browser", + "javascript", + "selenium", + "testing", + "webdriver" + ], + "time": "2014-09-29 13:12:12" + }, + { + "name": "doctrine/instantiator", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119", + "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119", + "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.*@ALPHA" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Instantiator\\": "src" + } + }, + "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": "2014-10-13 12:58:55" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "1.3.3", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "classmap": [ + "hamcrest" + ], + "files": [ + "hamcrest/Hamcrest.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "time": "2015-05-11 14:41:42" + }, + { + "name": "instaclick/php-webdriver", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/instaclick/php-webdriver.git", + "reference": "6aa16bbc02a5897200ab70316e0d2a01664afc51" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/6aa16bbc02a5897200ab70316e0d2a01664afc51", + "reference": "6aa16bbc02a5897200ab70316e0d2a01664afc51", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2" + }, + "require-dev": { + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "WebDriver": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Justin Bishop", + "email": "jubishop@gmail.com", + "role": "Developer" + }, + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "role": "Fork Maintainer" + } + ], + "description": "PHP WebDriver for Selenium 2", + "homepage": "http://instaclick.com/", + "keywords": [ + "browser", + "selenium", + "webdriver", + "webtest" + ], + "time": "2015-04-05 19:52:55" + }, + { + "name": "mindplay/annotations", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-annotations/php-annotations.git", + "reference": "3e6d5ea14fcc032e18dd0f81b014aa7ca47a1881" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-annotations/php-annotations/zipball/3e6d5ea14fcc032e18dd0f81b014aa7ca47a1881", + "reference": "3e6d5ea14fcc032e18dd0f81b014aa7ca47a1881", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/php-code-coverage": "~1.2.1", + "phpunit/php-file-iterator": ">=1.3.0@stable" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "mindplay\\annotations\\": "src\\annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0+" + ], + "authors": [ + { + "name": "Rasmus Schultz", + "email": "rasmus@mindplay.dk" + } + ], + "description": "Industrial-strength annotations for PHP", + "homepage": "http://blog.mindplay.dk/", + "keywords": [ + "annotations", + "framework" + ], + "time": "2015-04-15 12:54:35" + }, + { + "name": "mockery/mockery", + "version": "0.9.4", + "source": { + "type": "git", + "url": "https://github.com/padraic/mockery.git", + "reference": "70bba85e4aabc9449626651f48b9018ede04f86b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/padraic/mockery/zipball/70bba85e4aabc9449626651f48b9018ede04f86b", + "reference": "70bba85e4aabc9449626651f48b9018ede04f86b", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "~1.1", + "lib-pcre": ">=7.0", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", + "homepage": "http://github.com/padraic/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "time": "2015-04-02 19:54:00" + }, + { "name": "nikic/php-parser", "version": "v1.3.0", "source": { @@ -195,12 +640,1148 @@ "php" ], "time": "2015-05-02 15:40:40" + }, + { + "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": "phpspec/prophecy", + "version": "v1.4.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", + "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "phpdocumentor/reflection-docblock": "~2.0", + "sebastian/comparator": "~1.1" + }, + "require-dev": { + "phpspec/phpspec": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.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": "2015-04-27 22:15:08" + }, + { + "name": "phpunit/php-code-coverage", + "version": "2.0.16", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/934fd03eb6840508231a7f73eb8940cf32c3b66c", + "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c", + "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.0", + "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.0.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-04-11 04:35:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb", + "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb", + "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-04-02 05:19:05" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", + "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "Text/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2014-01-30 17:20:04" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "PHP/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "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": "2013-08-02 07:42:54" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "eab81d02569310739373308137284e0158424330" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/eab81d02569310739373308137284e0158424330", + "reference": "eab81d02569310739373308137284e0158424330", + "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-04-08 04:46:07" + }, + { + "name": "phpunit/phpunit", + "version": "4.6.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "3afe303d873a4d64c62ef84de491b97b006fbdac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3afe303d873a4d64c62ef84de491b97b006fbdac", + "reference": "3afe303d873a4d64c62ef84de491b97b006fbdac", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpspec/prophecy": "~1.3,>=1.3.1", + "phpunit/php-code-coverage": "~2.0,>=2.0.11", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "~1.0", + "phpunit/phpunit-mock-objects": "~2.3", + "sebastian/comparator": "~1.1", + "sebastian/diff": "~1.2", + "sebastian/environment": "~1.2", + "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.6.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": "2015-04-29 15:18:52" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "2.3.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "74ffb87f527f24616f72460e54b595f508dccb5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/74ffb87f527f24616f72460e54b595f508dccb5c", + "reference": "74ffb87f527f24616f72460e54b595f508dccb5c", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "~1.0,>=1.0.2", + "php": ">=5.3.3", + "phpunit/php-text-template": "~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-04-02 05:36:41" + }, + { + "name": "pimple/pimple", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/silexphp/Pimple.git", + "reference": "876bf0899d01feacd2a2e83f04641e51350099ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/876bf0899d01feacd2a2e83f04641e51350099ef", + "reference": "876bf0899d01feacd2a2e83f04641e51350099ef", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Pimple": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", + "homepage": "http://pimple.sensiolabs.org", + "keywords": [ + "container", + "dependency injection" + ], + "time": "2014-07-24 09:48:15" + }, + { + "name": "qa-tools/qa-tools", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/qa-tools/qa-tools.git", + "reference": "5456f64af5b94c5655f21a592b8817690c2096c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/qa-tools/qa-tools/zipball/5456f64af5b94c5655f21a592b8817690c2096c7", + "reference": "5456f64af5b94c5655f21a592b8817690c2096c7", + "shasum": "" + }, + "require": { + "behat/mink": "~1.6", + "mindplay/annotations": "~1.2@dev", + "php": ">=5.3.2" + }, + "replace": { + "aik099/qa-tools": "self.version" + }, + "require-dev": { + "aik099/coding-standard": "dev-master", + "behat/mink-selenium2-driver": "~1.2@dev", + "brianium/paratest": "~0.7", + "mockery/mockery": "~0.9" + }, + "suggest": { + "aik099/phpunit-mink": "Allows to use PageObject inside PHPUnit tests and remotely collect code coverage information" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "QATools\\QATools\\": "./library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Alexander Obuhovich", + "email": "aik.bold@gmail.com" + }, + { + "name": "Dmitry Kushnikov", + "email": "dkushnikov@gmail.com" + }, + { + "name": "Michael Geppert", + "email": "evangelion1204@aol.com" + } + ], + "description": "Library that provides easy-to-use way of interaction with web-page elements in functional tests using PageObject pattern.", + "keywords": [ + "BEM", + "HtmlElements", + "Mink", + "PageObject", + "acceptance", + "functional", + "phpunit", + "tests" + ], + "time": "2014-09-26 15:15:51" + }, + { + "name": "sebastian/comparator", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "1dd8869519a225f7f2b9eb663e225298fade819e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e", + "reference": "1dd8869519a225f7f2b9eb663e225298fade819e", + "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.1.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-01-29 16:28:08" + }, + { + "name": "sebastian/diff", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3", + "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-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": "http://www.github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2015-02-22 15:13:53" + }, + { + "name": "sebastian/environment", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e", + "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e", + "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": "2015-01-01 10:01:08" + }, + { + "name": "sebastian/exporter", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "84839970d05254c73cde183a721c7af13aede943" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943", + "reference": "84839970d05254c73cde183a721c7af13aede943", + "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-01-27 07:23:06" + }, + { + "name": "sebastian/global-state", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01", + "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01", + "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": "2014-10-06 09:23:50" + }, + { + "name": "sebastian/recursion-context", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "3989662bbb30a29d20d9faa04a846af79b276252" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252", + "reference": "3989662bbb30a29d20d9faa04a846af79b276252", + "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-01-24 09:48:32" + }, + { + "name": "sebastian/version", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ab931d46cd0d3204a91e1b9a40c4bc13032b58e4", + "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4", + "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-02-24 06:35:25" + }, + { + "name": "symfony/css-selector", + "version": "v2.6.7", + "target-dir": "Symfony/Component/CssSelector", + "source": { + "type": "git", + "url": "https://github.com/symfony/CssSelector.git", + "reference": "189cf0f7f56d7c4be3b778df15a7f16a29f3680d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/CssSelector/zipball/189cf0f7f56d7c4be3b778df15a7f16a29f3680d", + "reference": "189cf0f7f56d7c4be3b778df15a7f16a29f3680d", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\CssSelector\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2015-05-02 15:18:45" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.6.7", + "target-dir": "Symfony/Component/EventDispatcher", + "source": { + "type": "git", + "url": "https://github.com/symfony/EventDispatcher.git", + "reference": "672593bc4b0043a0acf91903bb75a1c82d8f2e02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/672593bc4b0043a0acf91903bb75a1c82d8f2e02", + "reference": "672593bc4b0043a0acf91903bb75a1c82d8f2e02", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.0,>=2.0.5", + "symfony/dependency-injection": "~2.6", + "symfony/expression-language": "~2.6", + "symfony/phpunit-bridge": "~2.7", + "symfony/stopwatch": "~2.3" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\EventDispatcher\\": "" + } + }, + "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": "2015-05-02 15:18:45" + }, + { + "name": "symfony/yaml", + "version": "v2.6.7", + "target-dir": "Symfony/Component/Yaml", + "source": { + "type": "git", + "url": "https://github.com/symfony/Yaml.git", + "reference": "f157ab074e453ecd4c0fa775f721f6e67a99d9e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/f157ab074e453ecd4c0fa775f721f6e67a99d9e2", + "reference": "f157ab074e453ecd4c0fa775f721f6e67a99d9e2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Yaml\\": "" + } + }, + "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": "2015-05-02 15:18:45" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": { - "aik099/coding-standard": 20 + "aik099/coding-standard": 20, + "mindplay/annotations": 20 }, "prefer-stable": false, "prefer-lowest": false, Index: branches/5.3.x/core/units/forms/form_submissions/form_submissions_config.php =================================================================== diff -u -N -r15659 -r16195 --- branches/5.3.x/core/units/forms/form_submissions/form_submissions_config.php (.../form_submissions_config.php) (revision 15659) +++ branches/5.3.x/core/units/forms/form_submissions/form_submissions_config.php (.../form_submissions_config.php) (revision 16195) @@ -1,6 +1,6 @@ Array ( Array ( - 'Mode' => hAFTER, + 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => '', 'HookToSpecial' => '*', @@ -45,7 +45,7 @@ // Captcha processing Array ( - 'Mode' => hAFTER, + 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => '', 'HookToSpecial' => '*', Index: branches/5.3.x/core/units/helpers/file_helper.php =================================================================== diff -u -N -r16111 -r16195 --- branches/5.3.x/core/units/helpers/file_helper.php (.../file_helper.php) (revision 16111) +++ branches/5.3.x/core/units/helpers/file_helper.php (.../file_helper.php) (revision 16195) @@ -1,6 +1,6 @@ $path ) { + $replaced_count = 0; + $relative_path = preg_replace('/^' . preg_quote(FULL_PATH, '/') . '/', '', $path, 1, $replaced_count); + + if ( $replaced_count === 1 ) { + $paths[$index] = $relative_path; + } + } + + return $paths; + } + + /** * Ensures, that new file will not overwrite any of previously created files with same name * * @param string $path Index: branches/5.3.x/core/kernel/db/cat_event_handler.php =================================================================== diff -u -N -r16156 -r16195 --- branches/5.3.x/core/kernel/db/cat_event_handler.php (.../cat_event_handler.php) (revision 16156) +++ branches/5.3.x/core/kernel/db/cat_event_handler.php (.../cat_event_handler.php) (revision 16195) @@ -1,6 +1,6 @@ :]]", '.$weight.', 0)'; }*/ + if ( count($positive_words) > 1 ) { + $condition = $field . ' LIKE "%' . implode(' ', $positive_words) . '%"'; + $relevance_parts[] = 'IF(' . $condition . ', ' . $weight_sum . ', 0)'; + } + // search by partial word matches too - $relevance_parts[] = 'IF('.$field.' LIKE "%'.implode(' ', $positive_words).'%", '.$weight_sum.', 0)'; - foreach ($positive_words as $keyword) { - $relevance_parts[] = 'IF('.$field.' LIKE "%'.$keyword.'%", '.$weight.', 0)'; + foreach ( $positive_words as $keyword ) { + $relevance_parts[] = 'IF(' . $field . ' LIKE "%' . $keyword . '%", ' . $weight . ', 0)'; } } Index: branches/5.3.x/.arclint =================================================================== diff -u -N -r16124 -r16195 --- branches/5.3.x/.arclint (.../.arclint) (revision 16124) +++ branches/5.3.x/.arclint (.../.arclint) (revision 16195) @@ -1,8 +1,13 @@ { - "linters": { - "checkstyle": { - "type": "phpcs", - "include": "(\\.php$)" - } - } + "linters": { + "php-lint": { + "type": "php", + "include": "(\\.php$)" + }, + "checkstyle": { + "type": "phpcs", + "include": "(\\.php$)", + "phpcs.standard": "vendor/aik099/coding-standard/CodingStandard" + } + } } Index: branches/5.3.x/core/units/helpers/minifiers/minify_helper.php =================================================================== diff -u -N -r15962 -r16195 --- branches/5.3.x/core/units/helpers/minifiers/minify_helper.php (.../minify_helper.php) (revision 15962) +++ branches/5.3.x/core/units/helpers/minifiers/minify_helper.php (.../minify_helper.php) (revision 16195) @@ -1,6 +1,6 @@ resourceFolder . DIRECTORY_SEPARATOR . ($this->debugMode ? 'd' : 'c') . '_'; + /** @var FileHelper $file_helper */ + $file_helper = $this->Application->recallObject('FileHelper'); + if ( $save_as ) { $dst_file .= $save_as . ( strpos($save_as, '.') === false ? '.' . $extension : '' ); } else { - $dst_file .= $this->_getHash($files) . '.' . $extension; + $dst_file .= $this->_getHash($file_helper->makeRelative($files)) . '.' . $extension; } $was_compressed = file_exists($dst_file); @@ -125,9 +128,6 @@ file_put_contents($dst_file, $string); } - $file_helper = $this->Application->recallObject('FileHelper'); - /* @var $file_helper FileHelper */ - return $file_helper->pathToUrl($dst_file) . '?ts=' . date('Y-m-d_H:i:s', filemtime($dst_file)); } @@ -169,7 +169,7 @@ array_unshift($hash, 'A:0;T:' . $this->Application->GetVar('m_theme')); } - return crc32( implode('|', $hash) ); + return kUtil::crc32(implode('|', $hash)); } /** @@ -312,4 +312,4 @@ return $ret; } - } \ No newline at end of file + } Index: branches/5.3.x/core/kernel/utility/formatters/formatter.php =================================================================== diff -u -N -r16111 -r16195 --- branches/5.3.x/core/kernel/utility/formatters/formatter.php (.../formatter.php) (revision 16111) +++ branches/5.3.x/core/kernel/utility/formatters/formatter.php (.../formatter.php) (revision 16195) @@ -1,6 +1,6 @@ GetFieldOptions($field_name); + if ($value == '') { - return NULL; + return $options['type'] == 'string' ? $value : null; } - $options = $object->GetFieldOptions($field_name); $tc_value = $this->TypeCast($value, $options); if ($tc_value === false) {