j'ai besoin de transmettre un objet à des méthodes (l'objet est censé contenir des données à afficher, donc plusieurs méthodes doivent y accéder pour l'alimenter).
$ref_LicenseData = new LicenseData();
.
class LicenseData
{
private $sesa;
private $appli;
private $list_applis;
private $appli_name;
/**
* @param $sesa
* role : pour le $sesa fourni, extrait les infos de la bdd (appel de 3 méthodes du modèle), puis retourne ds un
* tableau l'ensemble des données (format directement exploitable par PhpEcho)
* @return array
*/
public function SendDataToDisplay( $sesa ) : array
{
etc
Il y a pour l'instant très peu de propriétés, mais ça va s'étoffer quand le mécanisme sera au point.Il n'est pas possible de le passer en paramètre à ces méthodes. En effet, celles-ci appartiennent à des classes qui vont être appelées en tant qu'action d'un formulaire.
Exemple :
<form method="post" action=" ?action=DispListApp">
<select name="list" onChange="this.parentNode.submit()">
etc
Dans cet exemple, le formulaire est constitué d'un select et quand l'utilisateur sélectionnera une valeur, l'action sera appelée (grâce au onChange). L'action (ici DispListApp) va être prise en charge par le routeur, qui va appeler une méthode d'une classe (disons LicenseDispListApp() ). Supposons que cette méthode ait besoin d'accéder à l'objet $ref_LicenseData . Comment transmettre cette variable à la méthode, sachant qu'il n'est pas possible de lui passer un paramètre ?
J'ai eu l'idée de stocker cet objet dans une variable de session :
$_SESSION['ref_LicenseData'] = $ref_LicenseData;
.Mais ça ne semble pas marcher. En effet, dans la classe LicenseData, j'ai créé un setter et un getter :
class LicenseData
{ //réduit à ce qui nous intéresse
private $appli_name;
public function setAppliName($appli_name)
{
$this->appli_name = $appli_name;
}
public function getAppliName()
{
return $this->appli_name;
}
}
J'appelle le setter et juste derrière le getter et je constate que la propriété $appli_name est NULL alors que je viens d'y mettre une valeur.Si mon explication est claire, comment transmettre le référent vers l'objet ?