浏览代码

only use and test SORT_NATURAL on PHP 5.4

Ceeram 14 年之前
父节点
当前提交
7700a0261b
共有 2 个文件被更改,包括 8 次插入2 次删除
  1. 3 0
      lib/Cake/Test/Case/Utility/HashTest.php
  2. 5 2
      lib/Cake/Utility/Hash.php

+ 3 - 0
lib/Cake/Test/Case/Utility/HashTest.php

@@ -1043,6 +1043,9 @@ class HashTest extends CakeTestCase {
  * @return void
  */
 	public function testSortNatural() {
+		if (version_compare(PHP_VERSION, '5.4.0', '<')) {
+            $this->markTestSkipped('SORT_NATURAL is available since PHP 5.4.');
+        }
 		$items = array(
 			array('Item' => array('image' => 'img1.jpg')),
 			array('Item' => array('image' => 'img99.jpg')),

+ 5 - 2
lib/Cake/Utility/Hash.php

@@ -379,7 +379,7 @@ class Hash {
 /**
  * Returns a formated series of values extracted from `$data`, using
  * `$format` as the format and `$paths` as the values to extract.
- * 
+ *
  * Usage:
  *
  * {{{
@@ -486,7 +486,7 @@ class Hash {
  * Recursively filters a data set.
  *
  * @param array $data Either an array to filter, or value when in callback
- * @param callable $callback A function to filter the data with.  Defaults to 
+ * @param callable $callback A function to filter the data with.  Defaults to
  *   `self::_filter()` Which strips out all non-zero empty values.
  * @return array Filtered array
  * @link http://book.cakephp.org/2.0/en/core-utility-libraries/hash.html#Hash::filter
@@ -756,6 +756,9 @@ class Hash {
 
 		$dir = strtolower($dir);
 		$type = strtolower($type);
+		if ($type == 'natural' && version_compare(PHP_VERSION, '5.4.0', '<')) {
+			$type == 'regular';
+		}
 		if ($dir === 'asc') {
 			$dir = SORT_ASC;
 		} else {