planetconquest is an open source project powered by Assembla

Assembla offers free public and private SVN/Git repositories and project hosting with bug/issue tracking and collaboration tools.

planetconquest

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php

/**
 * Classe abstraite fournissant des méthodes utilitaires ŕ toutes les classes de générateur l'étendant
 * L'ensemble de la librairie est basée sur Zend_CodeGenerator
 *
 * TODO LOG ?
 *
 * @author Fab
 *
 */
abstract class CodeGenerator_Abstract {

    /**
     * Affichage du code généré pour une classe
     * @param Zend_CodeGenerator_Php_Class $generatedClass Classe ŕ afficher
     * @param boolean $htmlStyle Si true, on remplace les /n par des <br/> (true par défaut)
     */
    protected function displayGeneratedCode(CodeGenerator_Class $generatedClass, $htmlStyle=true){


        if($htmlStyle){
            echo 'CLASSE : ' . $generatedClass->getName() . '<br/>';
            echo str_replace("\n", "<br/>", $generatedClass->generate());
        }
        else {
            echo 'CLASSE : ' . $generatedClass->getName();
            echo $generatedClass->generated();
        }
    }

    /**
     * Ecriture dans un fichier du code généré pour une classe
     * @param CodeGenerator_Class $generatedClass Classe ŕ écrire dans le fichier
     * @param string $filePath Chemin et nom du fichier ŕ créer
     */
    protected function writeGeneratedCode(CodeGenerator_Class $generatedClass,$filePath){
        // Création du path si il n'existe pas
        $tabPath = explode(DIRECTORY_SEPARATOR,$filePath);
        array_pop($tabPath);
        $this->createDirectories(implode(DIRECTORY_SEPARATOR,$tabPath));

        // Ecriture du code
        $file = new Zend_CodeGenerator_Php_File();
        $file->setClass($generatedClass);
        file_put_contents($filePath, $file->generate());
    }

    /**
     *
     * Analyse un path et crée tous les répertoires qui n'existent pas
     * @param unknown_type $tabPath
     */
    protected function createDirectories($directoryPath){
        // Si le repertoire n'existe pas
        if(!file_exists($directoryPath)){
            // Création des répertoires plus haut si besoin
            $tabPath = explode(DIRECTORY_SEPARATOR,$directoryPath);
            array_pop($tabPath);
            $this->createDirectories(implode(DIRECTORY_SEPARATOR,$tabPath));

            // Création du repertoire courant
            mkdir($directoryPath);
        }
    }

}
Ajax-loader Loading, please wait...