Bonjour,

J'aimerais avoir vos avis sur la manière de m'y prendre pour créer mon projet.

Actuellement j'ai une appli web codé avec un framework qui ressemble à celui du tuto de grafikart. Cette appli pourra gérer 1 ou plusieurs module(s) (je ne peut pas développer sur le fonctionnement et ce que fera le module), les modules auront la même structure de fichiers, de fonctions, de tables (bdd). Donc l'idée est de générer un module lors de l'installation, je pourais luis donner un nom, le paramètrer, etc...

Je voudrais faire un système comme dans synfony lorsque l'on créer un bundle, c'est à dire générer mes fichiers table, entity, controller, vue, céer mes tables en bdd en fonction du nom que j'ai donné au module (voir même juste modifier 'module' en 'module1').

Bref je ne sais pas si je suis clair dans ce que je souhaites faire donc j'attend vos avis, merci d'avance.

3 réponses


Salut,

Il te faut créer des templates représentant tes fichiers à créer, en y intégrant des variables dynamiques afin de pouvoir piloter certains contenus.

Voici un exemple simpliste :

// Fichier template test.php.tpl :
<?php
    class {{ controller_name }}Controller {
        /* contenu de la classe ici... */
    }
?>

-------

// On parse le template, on remplace les variables et on crée le fichier :
$controller_tpl = file_get_contents('/path/to/templates/test.php.tpl');
$variables = [
    'module_name' => 'mon_module',
    'controller_name' => 'test'
];
foreach($variables as $k => $v) {
    str_replace('{{' . $k . '}}', $v, $controller_tpl); // Je ne sais plus si cela remplace toutes les occurences ou non, à voir
}
file_put_contents('/path/to/modules/' . $variables['module_name'] . '/' . $variables['controller_name'] . '.php', $controller_tpl);

En tout cas c'est comme ça que je ferais perso ;)
Si tu as des questions, n'hésite pas ;)

cid5420
Auteur

Ok merci pour ta réponse, je vais essayer de mettre se système en place.

Tu peux utiliser un moteur de template (twig par ex.) si tu veux moins t'embêter :)