&$part) if($part == '_') $part = '_lib_'; break; case 'feat': case 'featx': $basepath = ($type == 'feat' ) ? _FEATUREPATH_ : _FEATUREPATHX_; foreach($ns as $nr=>&$part) if($part == '_') $part = '_lib_'; break; case 'plugin': case 'pluginx': $prefix = 'pin'; $basepath = ($type == 'plugin' ) ? _PLUGINPATH_ :_PLUGINPATHX_; foreach($ns as $nr=>&$part) if($part == '_' && $nr > 2) { echo "'$part'\n"; $prefix = 'cls'; $part = '_lib_'; } break; default: throw new \InvalidArgumentException("Unknown or unsupported type part '{$ns[2]}'"); } $i = count($ns) - 1; $ns[$i] = $prefix . '.' . strtolower($ns[$i]) . '.php'; unset($ns[0], $ns[1], $ns[2]); $filename = $basepath . __DS__ . strtolower(implode(__DS__, $ns)); if(include_exists($filename)) { include ($filename); return true; } return false; } }