die("CLI only");
}
}
-
+
function get($base, $opts = array())
{
-// $this->scan($this->rootDir, 'Pman');
- $this->scan($this->rootDir);
+ 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();
}
-
- 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);
+
+ echo "Looking for {$dir}\n";
+
+ 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)) {
+
+ if (is_dir($d)) {
+ $this->scan(array_merge($route, array($d)));
+ continue;
+ }
+
+ if (!preg_match('/\.php$/', $d)) {
+ continue;
+ }
+
+ try {
+
+ if(!empty($route)){
+ require_once implode('/', $route) . "/" . $d;
continue;
}
- $clp[] = preg_replace('/\.php$/', '', $d);
-
- //print_r("CLP: " . implode('/', $clp)."\n");
- require_once "Pman/" . implode('/', $clp) . '.php';
- continue;
+
+ require_once $d;
+
+ } catch (ErrorException $ex) {
+ echo $ex->getMessage() . "\n";
}
- $clp[] = $d;
- // otherwise recurse...
- //print_r("RECURSE: " . implode('/', $clp)."\n");
-
- $this->scan($p, $pr, $clp);
+
}
+
}
+// function scan($p, $pr, $path = false)
+// {
+// $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) {
+//
+// 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';
+// continue;
+// }
+// $clp[] = $d;
+// // otherwise recurse...
+// //print_r("RECURSE: " . implode('/', $clp)."\n");
+//
+// $this->scan($p, $pr, $clp);
+// }
+// }
+
function output()
{
die("DONE");