/** * Asserts that registerAutoloader registers callbacks at the stack and * can be removed * * @param AutoloadAPI $api An AutoloadAPI object * @param Mixed $callback The callback * * @dataProvider provideCallbacks * @return void */ public function testRegisterAndRemove(AutoloadAPI $api, $callback) { $api->registerAutoloader($callback); $this->assertTrue(in_array($callback, $api->getRegisteredAutoloaders())); // The autoloader loads now any class $class = uniqid('Test'); $object = new $class(); $this->assertEquals($class, $object->getName()); $api->removeAutoloader($callback); $this->assertFalse(in_array($callback, $api->getRegisteredAutoloaders())); // There is no autoloader left which would load any class $class = uniqid('Test2'); $helper = new AutoloaderTestHelper($this); $helper->assertNotLoadable($class); }
/** * Removes an autoloader from the stack and from $_registeredAutoloaders * * @param Mixed $autoloader The autoloader callback * * @see $_registeredAutoloaders * @see spl_autoload_unregister() * @return void */ public function removeAutoloader($autoloader) { parent::removeAutoloader($autoloader); $index = \array_search($autoloader, $this->_registeredAutoloaders, true); if ($index !== false) { unset($this->_registeredAutoloaders[$index]); } }