don't check for file existance in fullpath() by default
In most (all) calls to fullpath() the existance of the resulting path is not important or is checked externally, so checking inside fullpath() is a waste of CPU cycles. darcs-hash:20081213083355-7ad00-4987a85950a13e5d3c527b3b17b1092e0fa1c567.gz
This commit is contained in:
parent
58e3a7bfa7
commit
b328697d6c
|
@ -464,7 +464,7 @@ EOT;
|
|||
* @author <richpageau at yahoo dot co dot uk>
|
||||
* @link http://de3.php.net/manual/en/function.realpath.php#75992
|
||||
*/
|
||||
function fullpath($path){
|
||||
function fullpath($path,$exists=false){
|
||||
static $run = 0;
|
||||
$root = '';
|
||||
$iswin = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' || $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']);
|
||||
|
@ -490,7 +490,7 @@ function fullpath($path){
|
|||
$path = $base.'/'.$path;
|
||||
if($run == 0){ // avoid endless recursion when base isn't absolute for some reason
|
||||
$run++;
|
||||
return fullpath($path,1);
|
||||
return fullpath($path,$exists);
|
||||
}
|
||||
}
|
||||
$run = 0;
|
||||
|
@ -508,8 +508,8 @@ function fullpath($path){
|
|||
}
|
||||
$finalpath = $root.implode('/', $newpath);
|
||||
|
||||
// check for existance (except when unit testing)
|
||||
if(!defined('DOKU_UNITTEST') && !@file_exists($finalpath)) {
|
||||
// check for existance when needed (except when unit testing)
|
||||
if($exists && !defined('DOKU_UNITTEST') && !@file_exists($finalpath)) {
|
||||
return false;
|
||||
}
|
||||
return $finalpath;
|
||||
|
|
Loading…
Reference in New Issue