Tout d'abord, assurez-vous que vous include
le fichier de classe avant de l'utiliser:
include_once 'path/to/tpl_functions.php';
Cela devrait être fait soit dans votre index.php ou au-dessus de la classe qui utilise tpl_function
. Notez également la possibilité de autoloading
classes:
Depuis PHP5 vous avez la possibilité de charger automatiquement des classes. Cela signifie que vous enregistrez une fonction hook appelée à chaque fois lorsque vous essayez d'utiliser une classe dont le fichier de code n'a pas encore été inclus. Pour ce faire, vous n'aurez pas besoin d'avoir des instructions include_once
dans chaque fichier de classe. Voici venir un exemple:
index.php ou quel que soit le point d'entrée de l'application:
spl_autoload_register('autoloader');
function autoloader($classname) {
include_once 'path/to/class.files/' . $classname . '.php';
}
A partir de maintenant, vous pouvez accéder aux classes sans à se soucier, y compris les fichiers de code plus. Essayez:
$process = new process();
Sachant cela, il y a plusieurs façons comment vous pouvez utiliser la template_functions
classe
Juste l'utiliser:
Vous pouvez accéder à la classe n'importe quelle partie du code si vous en créez une instance:
class process
{
//all process with system and db
public function doSomethging() {
// create instance and use it
$tplFunctions = new template_functions();
$tplFunctions->doSomethingElse();
}
}
Membres de l'instance:
Prenez la classe de processus par exemple. Pour les template_functions disponibles dans la classe process
, vous créez un membre d'instance et lsinitialisez quelque part, où vous en avez besoin, le constructeur semble être un bon endroit:
//CMS System class
class process
{
//all process with system and db
// declare instance var
protected tplFunctions;
public function __construct() {
$this->tplFunctions = new template_functions;
}
// use the member :
public function doSomething() {
$this->tplFunctions->doSomething();
}
public function doSomethingElse() {
$this->tplFunctions->doSomethingElse();
}
}
Je suis confus au sujet de ce qui est votre confusion ... – raidenace
semble que vous voulez l'héritage multiple, de sorte que cont_output étend à la fois cont_stacks ET template_functions? car sinon, il n'y a aucune raison pour que la classe n ° 1 ne puisse pas appeler une méthode statique, ou instancier une copie de la classe n ° 2 en elle-même. –
@MarcB C'est en quelque sorte mais dépend seulement de la façon dont je peux utiliser ma propre classe disponible dans les deux classes. –