Bonjour à tous, depuis le début de cakephp3 je travaille dessus et je m'éclate bien comme il faut, mais j'ai une question qui reste en suspens. j'aimerais créer un installeur un peut la mode wordpress, mais avec la logique cakePHP j'ai un peut du mal a voir comment je pourrais architecturer la chose. Une idée peut-être?

6 réponses


Xeta
Réponse acceptée

Ba en gros c'est ni plus ni moins que des controllers et des actions, c'est juste la logique du code qui va un poil changer de d'habitude.
Par exemple, pour faire un fichier de config database.php, tu fait un formulaire avec les champs de la bdd par exemple, tu les récupèrent dans ton controller puis tu créer un fichier avec file_put_contents et tu met l'array rempli dedans avec la méthode sprintf par exemple. Ou alors tu peut créer ton fichier database.php avec toutes les clés et en valeur tu met des clé spéciales, par exemple tu créer un fichier comme celui là : https://github.com/Xety/Xeta/blob/master/config/database.default.php

Et pour remplacer tous ça dans ton action :

$database = CONFIG . 'database.php';
$content = file_get_contents($database);

// Remplace ces valeurs, par les valeurs que tu as eu de ta form.
$replacement = [
        'localhost',
        'root',
        'password',
        'xeta'
];
$search = [
        '__DATABASE_HOST__',
        '__DATABASE_USERNAME__',
        '__DATABASE_PASSWORD__',
        '__DATABASE_NAME__'
];
$content = str_replace($search, $replacement, $content, $count);
$result = file_put_contents($database, $content);
Defy
Auteur

la configuration de l'utilisateur admin, la configuration de la db utilisé, des truc comme ca.

j'ai deja fait ca pour des applications en php natif, donc comme j'avait la mains sur l'architecture vue que c'etait ma création je pouvais faire un peut ce que je voulais, mais la du coup c'est différent

Bonjour.
Quelqu'un avait créé ce que tu demandes pour la V2 de CakePHP, pour l'installation directement via le navigateur, tu téléchargeais l'archive de CakePHP sur GitHub, ensuite via le navigateur tu avais juste à te rendre à la racine de ton projet, puis tu avais la configuration qui se faisait via des formulaire, c'était en gros un CMS comme WordPress, mais fait avec CakePHP (V2).
Tu peux t'en inspirer, c'est Croogo.

Defy
Auteur

merci lartak c'est cool :-) je vais regarder ca

Tu cherches à faire un installer en ligne de commande ou via le navigateur ?

Defy
Auteur

Via le navigateur. Un espece de wizard d'install a la wordpress