App
Le namespace App, représente les différentes features proposées par Apcli.
- App <= la page index
- Mail <= la page de gestion du serveur mail
- Vps <= la page lorsque l'on démarre un VPS chez OVH
- Web <= la page pour gérer le serveur Web
Ces classes sont chargée d'afficher un menu et de réaliser les actions différentes actions proposées par ce dernier.
App exemple
Prenons l'App d'entrée.
Ici App, affiche le status et leur version des services: php-fpm, nginx et mariadb.
Elle nous indique que Certbot est installé et propose d'aller vers une feature ou de quitter l'application.
On retrouvera ce principe pour les différentes feature, une header, suivit d'informations pui un menu afin d’effectuer une action.
Créer une App - implémentation
#Doc techniqueUne app sera "lancée" via sa méthode index()
namespace App;
final class App_name{
public function __construct(
){
}
# exemple d'implémentation générique
public function index(){
clear();
Output::header(Output::e('Super Feature','info'),'Home/Feature title');
$menu=new Menu();
$menu->add('Une action...','_nom_de_sa_méthode_' );
[...]
$menu->add_last('retour Home');
$request = Input::ask_choice_with_confirmation('Que voulez-vous faire :',$menu->get_labels());
if(is_null($request)) return Output::end();
$method=$menu->find_method($request);
if(!empty($method)) $this->$method();
else (new App())->index(); #retour au point d'entrée
}
public function action_xxx(){
clear();
Output::header(Output::e('_TITRE_','info'),'Home/FIL/ARIANE _super_titre_');
Output::line("> bla bla bla");
# je fais ma vie...
$this->end();
}
# On attend que l'utilisateur appuis sur "entrer"
# > pour revenir à l'index de notre App
private function end(string $msg=''):void{
if(!empty($msg)) echo $msg;
echo PHP_EOL;
readline('<= retour');
$this->index();
}
}