cli : allow the controllers\\ to be optional
cli : allow the models\\ or controllers\\ to be optional if the name of the class is unique git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@2728 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
42
cli.php
42
cli.php
@@ -116,26 +116,40 @@ class cli
|
|||||||
foreach ($files as $file)
|
foreach ($files as $file)
|
||||||
{
|
{
|
||||||
if (strpos ($file, "_"))
|
if (strpos ($file, "_"))
|
||||||
$classes[$file] = substr (strstr ($file, "_"), 1, -4);
|
$classes[substr (strstr ($file, "_"), 1, -4)] = $file;
|
||||||
else
|
else
|
||||||
$classes[$file] = str_replace ("/", "\\", substr ($file, 0, -4));
|
$classes[str_replace ("/", "\\", substr ($file, 0, -4))] = $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if there is some classes which can be shorted (classes only in
|
||||||
|
// controllers or only in models
|
||||||
|
$shortClasses = array ();
|
||||||
|
foreach ($classes as $class=>$file)
|
||||||
|
{
|
||||||
|
if (array_key_exists (substr (strstr ($class, "\\"), 1), $shortClasses))
|
||||||
|
unset ($shortClasses[substr (strstr ($class, "\\"), 1)]);
|
||||||
|
else
|
||||||
|
$shortClasses[substr (strstr ($class, "\\"), 1)] = $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset ($argv[0]) && $argv[0] === "-listonly")
|
if (isset ($argv[0]) && $argv[0] === "-listonly")
|
||||||
{
|
{
|
||||||
// Lists the classes available in controllers and models if expert mode
|
// Lists the classes available in controllers and models if expert mode
|
||||||
// Don't do any presentation to be parseable (by bash completion by example)
|
// Don't do any presentation to be parseable (by bash completion by
|
||||||
echo implode ("\n", $classes)."\n";
|
// example)
|
||||||
|
$classes = array_merge ($classes, $shortClasses);
|
||||||
|
echo implode ("\n", array_keys ($classes))."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset ($argv[0]) && $argv[0] === "-list")
|
if (isset ($argv[0]) && $argv[0] === "-list")
|
||||||
{
|
{
|
||||||
// Lists the classes available in controllers and models if expert mode
|
// Lists the classes available in controllers and models if expert mode
|
||||||
|
$classes = array_merge ($classes, $shortClasses);
|
||||||
foreach ($classes as $key=>$class)
|
foreach ($classes as $key=>$class)
|
||||||
$classes[$key] = str_replace ("\\", "\\\\", $class);
|
$classes[$key] = str_replace ("\\", "\\\\", $class);
|
||||||
echo "List of classes available :\n";
|
echo "List of classes available :\n";
|
||||||
echo " ".implode ("\n ", $classes)."\n";
|
echo " ".implode ("\n ", array_keys ($classes))."\n";
|
||||||
echo "Usage : ".$launcher;
|
echo "Usage : ".$launcher;
|
||||||
if ($this->EXPERT) echo " -expert";
|
if ($this->EXPERT) echo " -expert";
|
||||||
echo " -listmethods <class>\n";
|
echo " -listmethods <class>\n";
|
||||||
@@ -150,10 +164,12 @@ class cli
|
|||||||
if (!isset ($argv[1]))
|
if (!isset ($argv[1]))
|
||||||
die ("Missing parameter 'class'\n");
|
die ("Missing parameter 'class'\n");
|
||||||
$class = $argv[1];
|
$class = $argv[1];
|
||||||
if (!in_array ($class, $classes))
|
if (! array_key_exists ($class, $classes) &&
|
||||||
|
! array_key_exists ($class, $shortClasses))
|
||||||
die ("Unknown class '$class'\n");
|
die ("Unknown class '$class'\n");
|
||||||
$classesNames = array_keys ($classes, $class);
|
if (array_key_exists ($class, $shortClasses))
|
||||||
$file = reset ($classesNames);
|
$class = $shortClasses[$class];
|
||||||
|
$file = $classes[$class];
|
||||||
require_once ($file);
|
require_once ($file);
|
||||||
$refclass = new ReflectionClass ($class);
|
$refclass = new ReflectionClass ($class);
|
||||||
// Look at constructor parameters
|
// Look at constructor parameters
|
||||||
@@ -225,12 +241,14 @@ class cli
|
|||||||
if (!isset ($argv[0]))
|
if (!isset ($argv[0]))
|
||||||
die ("No class to execute provided\n");
|
die ("No class to execute provided\n");
|
||||||
$class = $argv[0];
|
$class = $argv[0];
|
||||||
if (!in_array ($class, $classes))
|
if (! array_key_exists ($class, $classes) &&
|
||||||
|
! array_key_exists ($class, $shortClasses))
|
||||||
die ("Unknown class '$class'\n");
|
die ("Unknown class '$class'\n");
|
||||||
array_shift ($argv);
|
if (array_key_exists ($class, $shortClasses))
|
||||||
$classesNames = array_keys ($classes, $class);
|
$class = $shortClasses[$class];
|
||||||
$file = reset ($classesNames);
|
$file = $classes[$class];
|
||||||
require_once ($file);
|
require_once ($file);
|
||||||
|
array_shift ($argv);
|
||||||
if (!isset ($argv[0]))
|
if (!isset ($argv[0]))
|
||||||
die ("No method for class '$class' to execute\n");
|
die ("No method for class '$class' to execute\n");
|
||||||
$method = $argv[0];
|
$method = $argv[0];
|
||||||
|
|||||||
Reference in New Issue
Block a user