public function testRegister() { $a = new Autoloader(false); $a->register('Pop', __DIR__ . '/../../../src'); $this->assertInstanceOf('Pop\\Loader\\Autoloader', $a); }
* @author Nick Sagona, III <*****@*****.**> * @copyright Copyright (c) 2009-2014 Moc 10 Media, LLC. (http://www.moc10media.com) * @license http://www.popphp.org/license New BSD License */ /** * @namespace */ namespace Pop; use Pop\Loader\Autoloader; use Pop\Filter\String; use Pop\Validator; // Require the library's autoloader. require_once __DIR__ . '/../../../src/Pop/Loader/Autoloader.php'; // Call the autoloader's bootstrap function. Autoloader::factory()->splAutoloadRegister(); class StringTest extends \PHPUnit_Framework_TestCase { public $string = 'Hello World'; public $key = '123456789'; public function testString() { $this->assertEquals('hello-world', String::camelCaseToDash('HelloWorld')); $this->assertEquals('hello_world', String::camelCaseToUnderscore('HelloWorld')); $this->assertEquals('helloWorld', String::dashToCamelCase('hello-world')); $this->assertEquals('hello_world', String::dashToUnderscore('hello-world')); } public function testStringRandom() { $s = String::random(6); $this->assertEquals(6, strlen($s));
/** * Register and load any other modules * * @param \Pop\Loader\Autoloader $autoloader * @param boolean $site * @throws Exception * @return self */ public function load($autoloader, $site = false) { if ($site) { $s = Table\Sites::getSite(); $docRoot = $s->document_root; $basePath = $s->base_path; } else { $docRoot = $_SERVER['DOCUMENT_ROOT']; $basePath = BASE_PATH; } $events = array(); // Load Phire any overriding Phire configuration if (!$site) { $this->loadAssets(__DIR__ . '/../../../Phire/data', 'Phire', $docRoot); } // Check if Phire is installed self::isInstalled(); $sess = Session::getInstance(); $errors = self::checkDirsQuick($docRoot . $basePath . CONTENT_PATH, true, $docRoot); if (count($errors) > 0) { $sess->errors = ' ' . implode('<br />' . PHP_EOL . ' ', $errors) . PHP_EOL; } else { unset($sess->errors); } $modulesAry = array(); $modulesDirs = array(__DIR__ . '/../../../', __DIR__ . '/../../../../module/', __DIR__ . '/../../../../..' . CONTENT_PATH . '/extensions/modules/'); // Check for overriding Phire config if (file_exists($docRoot . BASE_PATH . CONTENT_PATH . '/extensions/modules/config/phire.php')) { $phireCfg = (include $docRoot . BASE_PATH . CONTENT_PATH . '/extensions/modules/config/phire.php'); if (isset($phireCfg['Phire'])) { // If the overriding config is set to allow changes, merge new nav with the original nav // else, the entire original nav will be overwritten with the new nav. if (isset($phireCfg['Phire']->nav) && $phireCfg['Phire']->changesAllowed()) { $nav = array_merge($phireCfg['Phire']->nav->asArray(), $this->module('Phire')->nav->asArray()); $phireCfg['Phire']->nav = new \Pop\Config($nav); } $this->module('Phire')->merge($phireCfg['Phire']); // Get any Phire event if (null !== $this->module('Phire')->events) { $events['Phire'] = $this->module('Phire')->events->asArray(); } } } // Register and load any other modules foreach ($modulesDirs as $directory) { if (file_exists($directory) && is_dir($directory)) { $dir = new Dir($directory); $dirs = $dir->getFiles(); sort($dirs); foreach ($dirs as $d) { $moduleCfg = null; if ($d != 'PopPHPFramework' && $d != 'Phire' && $d != 'config' && $d != 'vendor' && is_dir($directory . $d)) { $ext = Table\Extensions::findBy(array('name' => $d)); if (!isset($ext->id) || isset($ext->id) && $ext->active) { $modulesAry[] = $d; // Load assets if (!$site) { $this->loadAssets($directory . $d . '/data', $d, $docRoot); } // Get module config if (file_exists($directory . $d . '/config/module.php')) { $moduleCfg = (include $directory . $d . '/config/module.php'); } // Check for any module config overrides if (file_exists($directory . '/config/' . strtolower($d) . '.php')) { $override = (include $directory . '/config/' . strtolower($d) . '.php'); if (isset($override[$d]) && null !== $moduleCfg) { $moduleCfg[$d]->merge($override[$d]); } } // Load module configs if (null !== $moduleCfg) { // Register the module source if (file_exists($moduleCfg[$d]->src)) { $autoloader->register($d, $moduleCfg[$d]->src); } // Get any module events if (null !== $moduleCfg[$d]->events) { $events[$d] = $moduleCfg[$d]->events->asArray(); } $this->loadModule($moduleCfg); } } } } } } // Attach any event hooks if (count($events) > 0) { foreach ($events as $module => $evts) { foreach ($evts as $event => $action) { $act = null; $priority = 0; if (is_array($action)) { if (!isset($action['action'])) { throw new Exception("The 'action' parameter is not set for the '" . $event . "' event within the " . $module . " module configuration file."); } $act = $action['action']; $priority = isset($action['priority']) ? $action['priority'] : 0; } else { $act = $action; } if (null !== $act) { $this->attachEvent($event, $act, $priority); } } } } // Add Phire CSS override file if it exists if (file_exists($docRoot . BASE_PATH . CONTENT_PATH . '/extensions/themes/phire/css/phire.css')) { $this->assets['css'] .= ' <style type="text/css">@import "' . BASE_PATH . CONTENT_PATH . '/extensions/themes/phire/css/phire.css";</style>' . PHP_EOL; } // If logged in, set Phire path cookie if (!$site && isset($sess->user)) { $path = BASE_PATH . APP_URI; if ($path == '') { $path = '/'; } $cookie = Cookie::getInstance(array('path' => $path)); if (!isset($cookie->phire)) { $modsAry = array(); foreach ($modulesAry as $modName) { $i18n = file_exists($docRoot . BASE_PATH . CONTENT_PATH . '/assets/' . strtolower($modName) . '/i18n'); $modsAry[] = array('name' => $modName, 'i18n' => $i18n); } $cookie->set('phire', array('base_path' => BASE_PATH, 'app_path' => APP_PATH, 'content_path' => CONTENT_PATH, 'app_uri' => APP_URI, 'server_tz_offset' => abs(date('Z')) / 60, 'modules' => $modsAry)); } } // Initiate the router object $this->loadRouter(new \Pop\Mvc\Router(array(), new \Pop\Http\Request(null, BASE_PATH))); return $this; }