Backup
This commit is contained in:
parent
83977af8a3
commit
87ab2e249c
|
@ -6,6 +6,7 @@ require_once (__DIR__.'/method.php');
|
||||||
require_once (__DIR__.'/exception.php');
|
require_once (__DIR__.'/exception.php');
|
||||||
require_once (__DIR__.'/user-exception.php');
|
require_once (__DIR__.'/user-exception.php');
|
||||||
require_once (__DIR__.'/locale.php');
|
require_once (__DIR__.'/locale.php');
|
||||||
|
require_once (__DIR__.'/util.php');
|
||||||
require_once ('vn/db/conn.php');
|
require_once ('vn/db/conn.php');
|
||||||
|
|
||||||
use Vn\Db\Conn;
|
use Vn\Db\Conn;
|
||||||
|
@ -142,13 +143,15 @@ class App
|
||||||
/**
|
/**
|
||||||
* Runs a method.
|
* Runs a method.
|
||||||
**/
|
**/
|
||||||
function loadMethod ($methodUri = NULL, $baseDir = NULL)
|
function loadMethod ($methodUri = NULL, $checkClass = NULL, $baseDir = NULL)
|
||||||
{
|
{
|
||||||
// XXX: Partially implemented
|
// XXX: Partially implemented
|
||||||
if (!$methodUri)
|
if (!$methodUri)
|
||||||
$methodUri = basename ($_SERVER['SCRIPT_FILENAME'], '.php');
|
$methodUri = basename ($_SERVER['SCRIPT_FILENAME'], '.php');
|
||||||
if (!$baseDir)
|
if (!$baseDir)
|
||||||
$baseDir = $this->methodDir;
|
$baseDir = $this->methodDir;
|
||||||
|
if (!$checkClass)
|
||||||
|
$checkClass = __NAMESPACE__ .'\Method';
|
||||||
|
|
||||||
if (!preg_match ('/^[\/\w\-]+$/', $methodUri))
|
if (!preg_match ('/^[\/\w\-]+$/', $methodUri))
|
||||||
throw new \Exception ('Method contains invalid characters');
|
throw new \Exception ('Method contains invalid characters');
|
||||||
|
@ -173,8 +176,8 @@ class App
|
||||||
|
|
||||||
if (!class_exists ($className))
|
if (!class_exists ($className))
|
||||||
throw new \Exception ("Class '$className' not exists");
|
throw new \Exception ("Class '$className' not exists");
|
||||||
if (!is_subclass_of ($className, __NAMESPACE__ .'\Method'))
|
if (!is_subclass_of ($className, $checkClass))
|
||||||
throw new \Exception ("Class '$className' is not a 'Method' child");
|
throw new \Exception ("Class '$className' is not a '$checkClass' child");
|
||||||
|
|
||||||
Locale::addPath ("$baseDir/$methodName");
|
Locale::addPath ("$baseDir/$methodName");
|
||||||
return new $className ($this);
|
return new $className ($this);
|
||||||
|
|
|
@ -22,6 +22,7 @@ class CliApp extends App
|
||||||
if (empty ($options['m']))
|
if (empty ($options['m']))
|
||||||
$this->usage ();
|
$this->usage ();
|
||||||
|
|
||||||
|
echo "Executing method '{$options['m']}'\n";
|
||||||
$method = $this->loadMethod ($options['m']);
|
$method = $this->loadMethod ($options['m']);
|
||||||
$method->run ();
|
$method->run ();
|
||||||
}
|
}
|
||||||
|
@ -35,7 +36,7 @@ class CliApp extends App
|
||||||
function usage ()
|
function usage ()
|
||||||
{
|
{
|
||||||
global $argv;
|
global $argv;
|
||||||
echo "{$argv[0]} -m method\n";
|
echo "Usage: {$argv[0]} -m method_path\n";
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue