mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-02-01 01:26:19 +00:00
Merge branch '2.5' into 2.6
This commit is contained in:
commit
6de35a357b
10 changed files with 43 additions and 34 deletions
|
@ -295,7 +295,9 @@ class ConsoleOutput {
|
||||||
* Clean up and close handles
|
* Clean up and close handles
|
||||||
*/
|
*/
|
||||||
public function __destruct() {
|
public function __destruct() {
|
||||||
|
if (is_resource($this->_output)) {
|
||||||
fclose($this->_output);
|
fclose($this->_output);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,9 @@ class <?php echo $controllerName; ?>Controller extends <?php echo $plugin; ?>App
|
||||||
echo ");\n\n";
|
echo ");\n\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
echo trim($actions);
|
if (!empty($actions)) {
|
||||||
|
echo trim($actions) . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
endif; ?>
|
endif; ?>
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ class IniAcl extends Object implements AclInterface {
|
||||||
/**
|
/**
|
||||||
* Initialize method
|
* Initialize method
|
||||||
*
|
*
|
||||||
* @param AclBase $component
|
* @param Component $component
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function initialize(Component $component) {
|
public function initialize(Component $component) {
|
||||||
|
|
|
@ -21,8 +21,8 @@ App::uses('AclInterface', 'Controller/Component/Acl');
|
||||||
* Access Control List factory class.
|
* Access Control List factory class.
|
||||||
*
|
*
|
||||||
* Uses a strategy pattern to allow custom ACL implementations to be used with the same component interface.
|
* Uses a strategy pattern to allow custom ACL implementations to be used with the same component interface.
|
||||||
* You can define by changing `Configure::write('Acl.classname', 'DbAcl');` in your core.php. Concrete ACL
|
* You can define by changing `Configure::write('Acl.classname', 'DbAcl');` in your core.php. The adapter
|
||||||
* implementations should extend `AclBase` and implement the methods it defines.
|
* you specify must implement `AclInterface`
|
||||||
*
|
*
|
||||||
* @package Cake.Controller.Component
|
* @package Cake.Controller.Component
|
||||||
* @link http://book.cakephp.org/2.0/en/core-libraries/components/access-control-lists.html
|
* @link http://book.cakephp.org/2.0/en/core-libraries/components/access-control-lists.html
|
||||||
|
|
|
@ -767,6 +767,7 @@ class Sqlserver extends DboSource {
|
||||||
*/
|
*/
|
||||||
protected function _execute($sql, $params = array(), $prepareOptions = array()) {
|
protected function _execute($sql, $params = array(), $prepareOptions = array()) {
|
||||||
$this->_lastAffected = false;
|
$this->_lastAffected = false;
|
||||||
|
$sql = trim($sql);
|
||||||
if (strncasecmp($sql, 'SELECT', 6) === 0 || preg_match('/^EXEC(?:UTE)?\s/mi', $sql) > 0) {
|
if (strncasecmp($sql, 'SELECT', 6) === 0 || preg_match('/^EXEC(?:UTE)?\s/mi', $sql) > 0) {
|
||||||
$prepareOptions += array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL);
|
$prepareOptions += array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL);
|
||||||
return parent::_execute($sql, $params, $prepareOptions);
|
return parent::_execute($sql, $params, $prepareOptions);
|
||||||
|
|
|
@ -51,19 +51,12 @@ class AssetDispatcher extends DispatcherFilter {
|
||||||
}
|
}
|
||||||
|
|
||||||
$assetFile = $this->_getAssetFile($url);
|
$assetFile = $this->_getAssetFile($url);
|
||||||
if ($assetFile === null) {
|
if ($assetFile === null || !file_exists($assetFile)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$response = $event->data['response'];
|
$response = $event->data['response'];
|
||||||
$event->stopPropagation();
|
$event->stopPropagation();
|
||||||
|
|
||||||
if (!file_exists($assetFile)) {
|
|
||||||
$response->statusCode(404);
|
|
||||||
$response->send();
|
|
||||||
return $response;
|
|
||||||
}
|
|
||||||
|
|
||||||
$response->modified(filemtime($assetFile));
|
$response->modified(filemtime($assetFile));
|
||||||
if ($response->checkNotModified($event->data['request'])) {
|
if ($response->checkNotModified($event->data['request'])) {
|
||||||
return $response;
|
return $response;
|
||||||
|
@ -71,6 +64,7 @@ class AssetDispatcher extends DispatcherFilter {
|
||||||
|
|
||||||
$pathSegments = explode('.', $url);
|
$pathSegments = explode('.', $url);
|
||||||
$ext = array_pop($pathSegments);
|
$ext = array_pop($pathSegments);
|
||||||
|
|
||||||
$this->_deliverAsset($response, $assetFile, $ext);
|
$this->_deliverAsset($response, $assetFile, $ext);
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ class AclComponentTest extends CakeTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test that adapter() whines when the class is not an AclBase
|
* test that adapter() whines when the class does not implement AclInterface
|
||||||
*
|
*
|
||||||
* @expectedException CakeException
|
* @expectedException CakeException
|
||||||
* @return void
|
* @return void
|
||||||
|
|
|
@ -83,6 +83,33 @@ class AssetDispatcherTest extends CakeTestCase {
|
||||||
$this->assertFalse($event->isStopped());
|
$this->assertFalse($event->isStopped());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AssetDispatcher should not 404 extensions that could be handled
|
||||||
|
* by Routing.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testNoHandleRoutedExtension() {
|
||||||
|
$filter = new AssetDispatcher();
|
||||||
|
$response = $this->getMock('CakeResponse', array('_sendHeader'));
|
||||||
|
Configure::write('Asset.filter', array(
|
||||||
|
'js' => '',
|
||||||
|
'css' => ''
|
||||||
|
));
|
||||||
|
App::build(array(
|
||||||
|
'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS),
|
||||||
|
'View' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'View' . DS)
|
||||||
|
), App::RESET);
|
||||||
|
Router::parseExtensions('json');
|
||||||
|
Router::connect('/test_plugin/api/v1/:action', array('controller' => 'api'));
|
||||||
|
CakePlugin::load('TestPlugin');
|
||||||
|
|
||||||
|
$request = new CakeRequest('test_plugin/api/v1/forwarding.json');
|
||||||
|
$event = new CakeEvent('DispatcherTest', $this, compact('request', 'response'));
|
||||||
|
$this->assertNull($filter->beforeDispatch($event));
|
||||||
|
$this->assertFalse($event->isStopped(), 'Events for routed extensions should not be stopped');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that $response->checkNotModified() is called and bypasses
|
* Tests that $response->checkNotModified() is called and bypasses
|
||||||
* file dispatching
|
* file dispatching
|
||||||
|
@ -129,23 +156,6 @@ class AssetDispatcherTest extends CakeTestCase {
|
||||||
$this->assertEquals($time->format('D, j M Y H:i:s') . ' GMT', $response->modified());
|
$this->assertEquals($time->format('D, j M Y H:i:s') . ' GMT', $response->modified());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Test 404 status code is set on missing asset.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function test404OnMissingFile() {
|
|
||||||
$filter = new AssetDispatcher();
|
|
||||||
|
|
||||||
$response = $this->getMock('CakeResponse', array('_sendHeader'));
|
|
||||||
$request = new CakeRequest('/theme/test_theme/img/nope.gif');
|
|
||||||
$event = new CakeEvent('Dispatcher.beforeRequest', $this, compact('request', 'response'));
|
|
||||||
|
|
||||||
$response = $filter->beforeDispatch($event);
|
|
||||||
$this->assertTrue($event->isStopped());
|
|
||||||
$this->assertEquals(404, $response->statusCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that no exceptions are thrown for //index.php type URLs.
|
* Test that no exceptions are thrown for //index.php type URLs.
|
||||||
*
|
*
|
||||||
|
|
|
@ -264,7 +264,7 @@ class CakeHtmlReporter extends CakeBaseReporter {
|
||||||
echo "<div class='msg'><pre>" . $this->_htmlEntities($message->toString());
|
echo "<div class='msg'><pre>" . $this->_htmlEntities($message->toString());
|
||||||
|
|
||||||
if ((is_string($actualMsg) && is_string($expectedMsg)) || (is_array($actualMsg) && is_array($expectedMsg))) {
|
if ((is_string($actualMsg) && is_string($expectedMsg)) || (is_array($actualMsg) && is_array($expectedMsg))) {
|
||||||
echo "<br />" . PHPUnit_Util_Diff::diff($expectedMsg, $actualMsg);
|
echo "<br />" . $this->_htmlEntities(PHPUnit_Util_Diff::diff($expectedMsg, $actualMsg));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "</pre></div>\n";
|
echo "</pre></div>\n";
|
||||||
|
|
|
@ -719,8 +719,8 @@ class Validation {
|
||||||
* $check is a legal finite on this platform
|
* $check is a legal finite on this platform
|
||||||
*
|
*
|
||||||
* @param string $check Value to check
|
* @param string $check Value to check
|
||||||
* @param integer $lower Lower limit
|
* @param int|float $lower Lower limit
|
||||||
* @param integer $upper Upper limit
|
* @param int|float $upper Upper limit
|
||||||
* @return boolean Success
|
* @return boolean Success
|
||||||
*/
|
*/
|
||||||
public static function range($check, $lower = null, $upper = null) {
|
public static function range($check, $lower = null, $upper = null) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue