Bonsoir,
J'ai une question (débutant) qui me pose probleme pour le dev de mon site :

J'ai une fonction php qui par exemple ajoute 1 a un chiffre (c'est un exemple ^^):

function addition1($n){
  return ($n+1);
}

Je voudrai pouvoir avoir acces a cette fonction dans toutes les classes, et pouvoir faire par exemple dans mon PagesController dans une function (une action):

$a = 5;
//Une syntaxe dans ce genre
$a::addition1(); //$a = 6

Dans l'idéal, j'aurai un fichier avec toutes mes fonctions.

Quelqu'un aurait une solution ?
Merci d'avance

Arguss

3 réponses


snap
Réponse acceptée

effectivement si tu veux créer des fonctions qui vont servir dans tes controllers le plus propre serait de créer un component.
tu creer dans un fichier TestComponent.php la class TestComponent avec des fonctions et dans ton controller tu ajoute

var $components = array('Test');

et tu pourra l'utiliser ainsi

function admin_truc()
{   
    $this->Test->taFonction();
}

regarde la doc dans la partie component.

met ta fonction dans le bootstrap (ou fait un require('fichier contenant ta fonction')
par contre avec la syntaxe de ta fonction il faudra l'appeler comme ça : $b = addition1($a)

sinon tu peut aussi creer ta propre classe (toujour dans le bootstrap)

arguss
Auteur

Merci =D

Avec la premiere solution je risque pas d'avoir le probleme du fait de la manipulation d'un objet ? Es-ce vraiment la solution la plus "actuelle" ?

Quand tu me dit de créer ma classe, c'est a dire qu'il faudrait que je créer des fonctions dites statiques ?
(Excuse, je débute et je suis perdu sur ce probleme)

Et également une derniere question, dans mon dossier controller, j'ai un dossier component ? il sert a ca ou c'est autre chose ?