die("CLI only");
}
}
-
+
function get($base, $opts = array())
{
- print_r($this->rootDir);exit;
+ set_error_handler(function ($errno, $errstr, $errfile, $errline ){
+// throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
+ print_r(array(
+ $errno,
+ $errstr,
+ $errfile,
+ $errline
+ ));
+ });
+
+ $this->scan(array("Pman"));
+ $this->scan(array($this->bootLoader->project));
- $this->scan($this->rootDir, 'Pman');
+ exit;
}
-
- function scan($p, $pr, $path = false)
+
+ function scan($route = array())
{
- $full_path = array($p, $pr);
- $class_path = array();
- if ($path !== false) {
- $full_path = array_merge($full_path, $path);
- $class_path = array_merge($class_path, $path);
- }
- //print_r("CHKDIR: ". implode('/', $full_path)."\n");
-
- foreach (scandir(implode('/', $full_path)) as $d) {
-
+ $dir = $this->rootDir . "/" . implode("/", $route);
+
+ foreach (scandir($dir) as $d) {
+
if (!strlen($d) || $d[0] == '.') {
continue;
}
- $chk = $full_path;
- $chk[] = $d;
-
- $clp = $class_path;
-
-
-
- //print_r("CHK: " . implode('/', $chk)."\n");
- // is it a file.. and .PHP...
- if (!is_dir(implode('/', $chk))) {
- if (!preg_match('/\.php$/', $d)) {
- continue;
- }
- $clp[] = preg_replace('/\.php$/', '', $d);
-
- //print_r("CLP: " . implode('/', $clp)."\n");
- require_once "Pman/" . implode('/', $clp) . '.php';
+
+ if (is_dir("{$dir}/{$d}")) {
+ $this->scan(array_merge($route, array($d)));
continue;
}
- $clp[] = $d;
- // otherwise recurse...
- //print_r("RECURSE: " . implode('/', $clp)."\n");
-
- $this->scan($p, $pr, $clp);
+
+ if (!preg_match('/\.php$/', $d)) {
+ continue;
+ }
+
+ try {
+
+ require_once implode('/', $route) . "/" . $d;
+
+ } catch (ErrorException $ex) {
+ echo $ex->getMessage() . "\n";
+ }
+
}
+
}
-
+
function output()
{
die("DONE");