Skip to content

Instantly share code, notes, and snippets.

@vonglasow
Last active August 29, 2015 13:58
Show Gist options
  • Save vonglasow/10021599 to your computer and use it in GitHub Desktop.
Save vonglasow/10021599 to your computer and use it in GitHub Desktop.
traits properties
<?php
trait a {
public function getConfig()
{
return $this->world . '/config.php';
}
}
class B {
public $world = __DIR__;
use a;
}
$b = new B;
var_dump($b->getConfig());
@vonglasow
Copy link
Author

Thanks à tous pour vos feedback !

L'application se base sur du ZF2 et chaque module est un répertoire contenant la classe Module.php (cf http://www.zendframework.com/manual/2.1/en/user-guide/modules.html) ainsi que les autres classes nécessaires au module. Et donc à chaque création d'un nouveau module on est obligé d'avoir cette fameuse méthode getConfig qu'on souhaiterais mutualiser quelque part car faisant toujours la même chose partout.

<?php
namespace Album;

class Module
{
    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
                __DIR__ . '/autoload_classmap.php',
            ),
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }

    public function getConfig()
    {
        return include __DIR__ . '/config/module.config.php';
    }
}

Et donc à la vue de ce que tu expliques on devrait plutôt modifier la classe Module pour qu'elle implémente l'interface configurable. Ça ne devrait pas poser de soucis mais le problème est que l'on devrait avoir une classe config qui implémente configuration dans chaque module cela reviens à déplacer la méthode getConfig dans une autre classe. Pourquoi pas mais à la création d'un nouveau module ce n'est pas une méthode que l'on va devoir réécrire à l'identique mais bien une classe complète. Ou alors il faudrait partir sur un système de config qui se gère automatiquement par rapport au noms de la classe appelée et qui aille rechercher la config d'après le nom de classe + namespace ?

@mageekguy
Copy link

Surtout qu'en fait ma première implémentation était de la merde (j'ai repiqué du code pour aller vite, et j'ai été trop vite pour le nettoyer…), donc @jubianchi, ta remarque par rapport au getBasePath() était donc pertinente (j'ai mis à jour le code).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment