Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2014, 18:00
eloyucu
 
Fecha de Ingreso: octubre-2013
Ubicación: Pego Alicante
Mensajes: 25
Antigüedad: 10 años, 6 meses
Puntos: 0
Problema con spl_autoload_register()

Hola, buenas noches.

Estoy intentando hacer un plugin para wordpress, y me encuentro con un problema con la función spl_autoload_register... el caso es que he copiado el código (bastante al pie de la letra... ya que creo que hay poco que cambiar en este caso) de otro plugin, pero claro como argumento le paso un nombre de una función diferente (MaeSquareAutoLoader).

La función que he hecho ha sido la siguiente:

Código PHP:
Ver original
  1. function mae_autoInclude(){
  2.         if(!function_exists('spl_autoload_register'))
  3.             return;
  4.  
  5.         function MaeSquareAutoLoader($name) {
  6.             $name = str_replace('\\', DIRECTORY_SEPARATOR, $name);
  7.             $file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . $name . '.php';
  8.  
  9.            
  10.             echo "mae square" . $file . "<br>";
  11.            
  12.             if(is_file($file))
  13.                 require_once $file;
  14.         }
  15.  
  16.         spl_autoload_register('MaeSquareAutoLoader');
  17.     }

Como estaba un poco despistado y no salía lo que quería, puse el echo ese que se ve en el código.
Si el otro plugin está desactivado el echo escupe lo siguiente:
Cita:
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\wp_atom_server.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\WP_User_Search.php
En cambio si el otro plugin esta activado el comportatimiento es completamente diferente:
Cita:
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginAJAX .php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginPost Type.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginGene ralSettings.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginSlid eshowStylesheet.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginShor tcode.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginInst aller.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\wp_atom_server.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginWidg et.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\WP_User_Search.php
mae squareC:\wamp\www\ajaume\wp-content\plugins\nostro\classes\SlideshowPluginSlid eInserter.php
Es como si registrara o cargara las clases que utiliza el otro plugin a través de mi función MaeSquareAutoLoader... qué estoy haciendo mal?? o es que es un fallo de la función spl_autoload_register??

Gracias por todo.