Move the include_path finding code to Fallback class.
authorPlatonides <platonides@users.mediawiki.org>
Sat, 26 Feb 2011 22:37:58 +0000 (22:37 +0000)
committerPlatonides <platonides@users.mediawiki.org>
Sat, 26 Feb 2011 22:37:58 +0000 (22:37 +0000)
Checking availability when calling, as only UserMailer uses it.

includes/Fallback.php
includes/UserMailer.php

index 06dc9e7..c5f7c28 100644 (file)
@@ -173,5 +173,22 @@ class Fallback {
                        return false;
                }
        }
+
+       /**
+        * Fallback implementation of stream_resolve_include_path()
+        * Native stream_resolve_include_path is available for PHP 5 >= 5.3.2
+        * @param $filename String
+        * @return String
+        */
+       public static function stream_resolve_include_path( $filename ) {
+               $pathArray = explode( PATH_SEPARATOR, get_include_path() );
+               foreach ( $pathArray as $path ) {
+                       $fullFilename = $path . DIRECTORY_SEPARATOR . $filename;
+                       if ( file_exists( $fullFilename ) ) {
+                               return $fullFilename;
+                       }
+               }
+               return false;
+       }
                
-}
\ No newline at end of file
+}
index 17fd74c..6b28c64 100644 (file)
@@ -127,12 +127,10 @@ class UserMailer {
 
                if ( is_array( $wgSMTP ) ) {
                        $found = false;
-                       $pathArray = explode( PATH_SEPARATOR, get_include_path() );
-                       foreach ( $pathArray as $path ) {
-                               if ( file_exists( $path . DIRECTORY_SEPARATOR . 'Mail.php' ) ) {
-                                       $found = true;
-                                       break;
-                               }
+                       if ( function_exists( 'stream_resolve_include_path' ) ) {
+                               $found = stream_resolve_include_path( 'Mail.php' );
+                       } else {
+                               $found = Fallback::stream_resolve_include_path( 'Mail.php' );
                        }
                        if ( !$found ) {
                                throw new MWException( 'PEAR mail package is not installed' );