Bonjour tous le monde, voila la situation:
<?php
namespace App;
class BaseClass {
public $app;
function __construct() {
$this->app = App::$app;
}
}
?>
<?php
namespace App;
class Enfant1 extends BaseClass {
public $enfant_app;
function __construct() {
parent::__construct();
$this->enfant_app = $this->$app->getData();
}
}
?>
<?php
namespace App;
class Enfant2 extends Enfant1 {
public $enfant_2_app;
function __construct() {
parent::__construct();
}
}
?>
Ce que je veux
Dans tous les controllers enfants je dois faire parent::__construct(); pour avoir acces aux proprietes parents. J'aimerais savoir s'il y'a un autre moyen de le faire (ne pas faire parent::__construct();dans tous mes classes enfants).
Les class sont instanciés dynamiquement dans nom code, par exemple
<?php
$class_name = 'Enfant1';
$method_name = 'convertData';
$class = new $class_name();
$argc = array_values($params);
call_user_func_array([$class, $method_name], $argc);
?>
N'est il pas possible d'initialiser le constructeur parent hors de la class enfant, du genre
<?php
$class_name = 'Enfant1';
$method_name = 'convertData';
$class = new $class_name();
/**********************************************************
get_parent_class($class)->__construct() // Juste un exemple
get_parent_class($class)::__construct() // Juste un exemple
***********************************************************/
$argc = array_values($params);
call_user_func_array([$class, $method_name], $argc);
?>
Merci pour votre aide.