@pmvpro

Как передать параметры из одного свойства-объекта в другое свойство-объект?

Есть объект у которого два свойства - объекты.
Можно ли получить доступ из одного свойства-объекта к другому свойству объекту. Например, в setPage() нужно получить данные из объекта-свойства $site->db;
<?php
 class page{
    public $path;
    public $code;
    function setPath($path){
        /*Здесь нужно получить доступ к методу getName объекта $site->db */
        $this->path=$path;    
    }
    function getPath(){
        $ret=$this->path;
        return $ret;    
    }
 }
 class db{
    public $name;
    function setName($name){
        $this->name=$name;
    }
    function getName(){
        return $this->name;
    }
 }
 class site {
    public $server;
    public $db;
    public $page;
    function dbInit(){
        $this->db= new db();
        $this->db->setName('local');
    }
    function getPage(){
        $this->page=new page();        
        $this->page->setPath('user/profile');
        echo $this->page->getPath();
    }
 }
 $site=new site();
 $site->dbInit();
 $site->getPage();

Пока единственное решение, передать параметром. Ну соответственно, дописать конструктор и т.п.
$this->page=new page($this->$db);
Но если таких свойств-объектов несколько, то что только так? Передавать все объекты в ручную? Неужели ни как по другому?
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Не очень понятно, чем это отличается от ситуации, когда объекты не являются свойствами одного класса. На мой взгляд - ничем не отличается. Так что да - передвать все объекты "вручную". Старый добрый dependency injection

А если несклько таких свойств-объектов, то, возможно, пересмотреть структуру классов или то как они создаются. Задействовать фабрику или контейнер
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы