Получение зависимого / родительского объекта из метода объекта домена
Вопрос
Как можно было бы получить зависимый / родительский объект от сущности.
$person->getAddress();
Это должно извлечь объект Address для этого человека из базы данных и вернуть его как объект. Это хороший способ сделать это и как должен выглядеть код, если это нормально делать.
Выполнение этого будет означать, что сам объект должен знать, что адрес является объектом сущности / значения, с которым он связан. Почему я хочу такой синтаксис, потому что он будет выглядеть чисто на уровне представления.
Класс person будет выглядеть так:
class Person {
protected Как можно было бы получить зависимый / родительский объект от сущности.
$person->getAddress();
Это должно извлечь объект Address для этого человека из базы данных и вернуть его как объект. Это хороший способ сделать это и как должен выглядеть код, если это нормально делать.
Выполнение этого будет означать, что сам объект должен знать, что адрес является объектом сущности / значения, с которым он связан.
Почему я хочу такой синтаксис, потому что он будет выглядеть чисто на уровне представления.
Класс person будет выглядеть так:
<*>
Так можно ли использовать объект $ domain в методе getAddress и хранить информацию об отношениях в классе Person?
Пожалуйста, ответьте, потому что я искал ответ повсюду.
domain = null; // domain is assigned when instantiated
protected Как можно было бы получить зависимый / родительский объект от сущности.
$person->getAddress();
Это должно извлечь объект Address для этого человека из базы данных и вернуть его как объект. Это хороший способ сделать это и как должен выглядеть код, если это нормально делать.
Выполнение этого будет означать, что сам объект должен знать, что адрес является объектом сущности / значения, с которым он связан.
Почему я хочу такой синтаксис, потому что он будет выглядеть чисто на уровне представления.
Класс person будет выглядеть так:
<*>
Так можно ли использовать объект $ domain в методе getAddress и хранить информацию об отношениях в классе Person?
Пожалуйста, ответьте, потому что я искал ответ повсюду.
data = array('name', 'address');
protected Как можно было бы получить зависимый / родительский объект от сущности.
$person->getAddress();
Это должно извлечь объект Address для этого человека из базы данных и вернуть его как объект. Это хороший способ сделать это и как должен выглядеть код, если это нормально делать.
Выполнение этого будет означать, что сам объект должен знать, что адрес является объектом сущности / значения, с которым он связан.
Почему я хочу такой синтаксис, потому что он будет выглядеть чисто на уровне представления.
Класс person будет выглядеть так:
<*>
Так можно ли использовать объект $ domain в методе getAddress и хранить информацию об отношениях в классе Person?
Пожалуйста, ответьте, потому что я искал ответ повсюду.
relations = array(
'address'=>array(
'class'=>'Address'
)
);
protected Как можно было бы получить зависимый / родительский объект от сущности.
$person->getAddress();
Это должно извлечь объект Address для этого человека из базы данных и вернуть его как объект. Это хороший способ сделать это и как должен выглядеть код, если это нормально делать.
Выполнение этого будет означать, что сам объект должен знать, что адрес является объектом сущности / значения, с которым он связан.
Почему я хочу такой синтаксис, потому что он будет выглядеть чисто на уровне представления.
Класс person будет выглядеть так:
<*>
Так можно ли использовать объект $ domain в методе getAddress и хранить информацию об отношениях в классе Person?
Пожалуйста, ответьте, потому что я искал ответ повсюду.
retrievedRelations = array();
public function getAddress() {
if (array_key_exists('address', $this->_relations) ) {
if (!array_key_exists('address', $this->_retrievedRelations) ) {
$this->_retrievedRelations['address'] = $this->_domain->getAddress($this->_data['address']);
}
return $this->_retrievedRelations['address'];
}
return $this->_data['address'];
}
}
Так можно ли использовать объект $ domain в методе getAddress и хранить информацию об отношениях в классе Person?
Пожалуйста, ответьте, потому что я искал ответ повсюду.
Решение
Посмотрите Zend_Db_Table Relationships . Они позволяют делать именно это и многое другое. Вы можете просто использовать Zend_Db_Table
сегодня вместо того, чтобы пытаться придумать собственную реализацию, или вы можете изучить code для их дизайнерских решений по вашим вопросам. Это довольно авторитетный источник.
Другие советы
Во-первых, я думаю, что название вопроса не очень понятно, во-вторых, я не Я абсолютно уверен, что понимаю, о чем идет речь ... По моему мнению, и заголовок, и пост должны быть отредактированы, чтобы немного их очистить.
Кажется, в сообщении содержится 5 вопросов (если можно перефразировать):
<Ол> $ person- > getAddress ()
хорошим способом получения объекта Address для
человек из базы данных? Что касается ответов:
<Ол> $ person- > getAddress ()
кажется хорошим выбором, вы знаете, хорошим и описательным. ; -) литий>
Некоторый код, чтобы согласиться с ответом №3: (я не мог заставить его работать должным образом в списке)
class Person {
protected Во-первых, я думаю, что название вопроса не очень понятно, во-вторых, я не
Я абсолютно уверен, что понимаю, о чем идет речь ... По моему мнению, и заголовок, и пост должны быть отредактированы, чтобы немного их очистить.
Кажется, в сообщении содержится 5 вопросов (если можно перефразировать):
<Ол>
Как можно было бы получить зависимый / родительский объект от объекта?
Является ли $ person- > getAddress ()
хорошим способом получения объекта Address для
человек из базы данных?
Если это хороший способ сделать это, то как бы выглядел код?
Можно ли использовать объект $ domain внутри метода getAddress?
Можно ли хранить информацию об отношениях в классе Person?
Ол>
Что касается ответов:
<Ол>
В этом случае $ person- > getAddress ()
кажется хорошим выбором, вы знаете, хорошим и описательным. ; -) литий>
Я не вижу проблемы: у человека есть адрес, чтобы получить адрес, который вы запрашиваете у этого человека.
Данный пример кода, кажется, отвечает этому, хотя он немного загроможден. Я бы только сделал адрес объекта-члена, но в остальном он в основном такой же
<Литий> & амп; 5. Я бы сказал, что это в основном вопрос вкуса, приоритета и зависимости от дизайна. Там действительно нет четкого ответа на это. Кроме того, мы обсуждаем здесь семантику или реальный сценарий?
Ол>
Некоторый код, чтобы согласиться с ответом №3: (я не мог заставить его работать должным образом в списке)
<*>domain = null; // domain is assigned when instantiated
protected Во-первых, я думаю, что название вопроса не очень понятно, во-вторых, я не
Я абсолютно уверен, что понимаю, о чем идет речь ... По моему мнению, и заголовок, и пост должны быть отредактированы, чтобы немного их очистить.
Кажется, в сообщении содержится 5 вопросов (если можно перефразировать):
<Ол>
Как можно было бы получить зависимый / родительский объект от объекта?
Является ли $ person- > getAddress ()
хорошим способом получения объекта Address для
человек из базы данных?
Если это хороший способ сделать это, то как бы выглядел код?
Можно ли использовать объект $ domain внутри метода getAddress?
Можно ли хранить информацию об отношениях в классе Person?
Ол>
Что касается ответов:
<Ол>
В этом случае $ person- > getAddress ()
кажется хорошим выбором, вы знаете, хорошим и описательным. ; -) литий>
Я не вижу проблемы: у человека есть адрес, чтобы получить адрес, который вы запрашиваете у этого человека.
Данный пример кода, кажется, отвечает этому, хотя он немного загроможден. Я бы только сделал адрес объекта-члена, но в остальном он в основном такой же
<Литий> & амп; 5. Я бы сказал, что это в основном вопрос вкуса, приоритета и зависимости от дизайна. Там действительно нет четкого ответа на это. Кроме того, мы обсуждаем здесь семантику или реальный сценарий?
Ол>
Некоторый код, чтобы согласиться с ответом №3: (я не мог заставить его работать должным образом в списке)
<*>address; // object
public function getAddress() {
if (!isset($this->_address) ) {
$this->_address = $this->_domain->getAddressForPerson($this); // assuming $this contains some sort of ID
}
return $this->_address;
}
}