Skip to main content Skip to docs navigation

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.

...
Output de démarrage d'Apcli v. 0.1.0-beta

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 technique

Une 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();
    }
}
  • Buildé à la main avec passion.
  • Designed by BootrapCSS, salted by me
  • Currently v0.3.0.
Liens
Guides