fork download
  1. <?php
  2.  
  3. class App{
  4.  
  5. protected $data = [];
  6.  
  7. public function __construct()
  8. {
  9. echo 'running App->__construct()' . PHP_EOL;
  10. //какие то действия базового класса
  11. }
  12.  
  13. //сюда пробрасываем все нужные переменные для наследников
  14. public function setData(array $data)
  15. {
  16. echo 'running setData' . PHP_EOL;
  17. $this->data = $data;
  18. }
  19.  
  20. }
  21.  
  22.  
  23. class ModulOne extends App
  24. {
  25. public $id;
  26.  
  27. public function __construct()
  28. {
  29. echo 'running ModuleOne->__construct()' . PHP_EOL;
  30. if(!empty($this->data['id'])){
  31. $this->id = $this->data['id'];
  32. } else {
  33. echo '$this->data is empty, so id not set' . PHP_EOL;
  34. }
  35. }
  36.  
  37. }
  38.  
  39.  
  40. $a = new ModulOne();
  41. $a->setData(['id' => 1]);
  42.  
Success #stdin #stdout 0.02s 24248KB
stdin
Standard input is empty
stdout
running ModuleOne->__construct()
$this->data is empty, so id not set
running setData
object(ModulOne)#1 (2) {
  ["id"]=>
  NULL
  ["data":protected]=>
  array(1) {
    ["id"]=>
    int(1)
  }
}