Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: паттерн Registry и циклические ссылки между объектами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Moreo
Отправлено: 19 Апреля, 2013 - 01:46:33
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Здравтвуйте.
Есть регистр объектов в виде одиночки.
Схема такая
registry->set(classA)
registry->set(classB)
registry->set(classC)

теперь, из classA мне через registry надо обращаться к classB или к classC,
То есть из classA беру instance registry, который в свою очередь содержит ссылку на classA.

Правильна ли такая схема? Не может ли это привести к утечке памяти?
И вообще как организовать правильно регистр, чтобы все его члены имели доступ друг к другу?

Читал что в php 5.3.3 и выше сборщик мусора учитывает такие нюансы, но много хостов на предыдущих версиях.
 
 Top
vanicon
Отправлено: 19 Апреля, 2013 - 01:54:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Записываем объект.

Получаем объект


-----
Так было, так есть и так будет
 
 Top
Moreo
Отправлено: 19 Апреля, 2013 - 02:00:56
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




vanicon меня интересуют рекурсивные ссылки между регистром и объектами, который он содержит, то есть
в объекте присутствует ссылка на регистр, в которой присутсвует ссылка на объект.
Меня интересует это нормально?
 
 Top
caballero
Отправлено: 19 Апреля, 2013 - 02:07:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




по моему проще вместо регистра использовать обычный массив.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Moreo
Отправлено: 19 Апреля, 2013 - 02:11:56
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




caballero я не эксперт в php, но мо логике принцип рекурсивных ссылок тот же остается
 
 Top
caballero
Отправлено: 19 Апреля, 2013 - 02:22:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




нетут там никой проблеммы с рекурсивными ссылками


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Moreo
Отправлено: 19 Апреля, 2013 - 02:23:41
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




caballero всмысле и с вариантом где регистр это объект тоже нет?
 
 Top
caballero
Отправлено: 19 Апреля, 2013 - 02:27:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




нет

тем более сколько там тех объектов в нем будет - маквсимум десяток.
паттерн registry в php вообще имеет мало смысла - все равно контекст разрушается между вызовами страницы. и смысл каждый раз туда напихивать объектов

(Отредактировано автором: 19 Апреля, 2013 - 02:31:46)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Moreo
Отправлено: 19 Апреля, 2013 - 02:35:22
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




caballero спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB