Question

Je veux étendre , non seulement créer une nouvelle instance d'une classe que je suis assis dans mon répertoire de fournisseurs. J'ai googlé et lu les documents, mais je ne vois aucun appui.

Puis-je faire une importation application de la classe 3e partie, puis écrire la classe étendue suivie d'un composant qui utilisera ma classe enfant?

i.e.

/* vendors/yahooapi/yahoo.class.php */
class YahooAPI {
     var $key = 'demo';
}

/* controllers/components/yahoo.php */
App::import("Vendor", "YahooAPI", array("file"=>"yahooapi.class.php"));

class Yahoov2 extends YahooAPI {
     var $key = 'newKey';
     function go() {}
}

YahooComponent extends Object {
     function goFaster() {
         $a = new Yahoov2;
         return $a->go() * 2;
     } 

}

Était-ce utile?

La solution

En fait, je vais vous dire comment je le ferais (au moins je l'ai fait il dans certains projets):

1 ajouter votre fournisseur vendeurs / yahooapi / yahoo.class.php que vous avez fait

2 créer un fichier à l'intérieur des vendeurs / yahooapi / ou à l'extérieur des fournisseurs / qui prolongera la classe de fournisseur d'origine, disons que les vendeurs / yahoov2.php à savoir

include_once('.../vendors/yahooapi/yahoo.class.php');
class Yahoov2 extends YahooAPI {
 var $key = 'newKey';
 function go() {}
}

3 Et enfin inclure dans le prolongement de votre composante que vous avez fait dans votre contrôleur.

Je crois que l'extension de la classe aussi dans votre contrôleur directement ferait le travail, mais il est vraiment une question de goût.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top