-
Notifications
You must be signed in to change notification settings - Fork 0
/
thunder
40 lines (28 loc) · 1.44 KB
/
thunder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
/**
* Thunder CLI
*
* Ce script permet de lancer Thunder en ligne de commande
* ex: php thunder make:controller
*/
if (php_sapi_name() !== 'cli') { // on vérifie que le script est bien lancé en ligne de commande
die('This script can only be run from the command line.');
}
define('DS' , DIRECTORY_SEPARATOR); // séparateur de répertoire
define('CPATH' , __DIR__ . DS); // ex: /var/www/html/thunder/
define('ROOTPATH' , __DIR__ . DS);
chdir(CPATH); // on se place dans le répertoire du script
$action = $argv[1] ?? 'help'; // l'action par défaut est help
require 'app' .DS. 'thunder' .DS. 'init.php';
$thunder = new \Thunder\Thunder(); // on instancie Thunder
if(empty($action)) {
call_user_func_array([$thunder, 'help'], []); // on appelle la méthode make de Thunder
} else {
$parts = explode(':', $action); // on sépare le nom de la méthode et les paramètres ex: make:controller
if(is_callable([$thunder, $parts[0]])) { // is_callable permet de vérifier si la méthode existe dans l'objet Thunder
call_user_func_array([$thunder, $parts[0]], [$argv]); // on appelle la méthode de Thunder ex: make:controller make=$parts[0], controller=$argv
} else {
echo "\n\rThis action does not exist. Please see below for commands";
call_user_func_array([$thunder, 'help'], []);
}
}