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 :: Копировать свойста объекта в объекте [2]
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Anguis пишет:
Создал объект, задал ему свойства, вызвал метод, который сам составляет необходимый запрос и записывает данные в базу. Все. У него есть возможность загрузить свойства из другого объекта или массива.
Я не могу понять, что и для чего Вы это пытаетесь реализовать )
Но public свойства - плохая практика.
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
Цитата:
А не могу понять, что и для чего Вы это пытаетесь реализовать )
Но public свойства - плохая практика.
Это корпоративное приложение. Раскрывать его назначение не имею право. Разрабатывалось не мной. Я продолжаю над ним работать, оптимизирую, добавляю новые функции.
Цитата:
Постоянные запросы к БД для получения объекта.
Ни каких постоянных запросов. Максимум три запроса на получение на один вызов скрипта. Ну а для записи сколько нужно записать - столько и запросов) (Добавление) caballero, сериализованный объект можно записать только в одно текстовое поле. Мне-же необходимо модифициорвать в базе множество полей. Есть среди них и поля для сериализованных объектов. Т.е. возможна запись такой структуры:
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
Ну что вы в дебри лезете то, а? При чем здесь известно не известно. Я вопрос поставил конкретно. Ответ простейший - либо возможно, либо нет. Зачем копать архитектуру начинаете? Такое ощущение что я не на форуме программистов, а на форуме программистов-шпионов, у которых цель выведать побольше о программе другого.)))
Связаны. Есть зарезервированные имена, которые если встречаются в объекте, то значит записываются в нужные поля таблицы, все остальное сериализуется и записывается в базу в отдельное поле.
caballero
Отправлено: 05 Октября, 2012 - 01:20:55
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Такое ощущение что я не на форуме программистов, а на форуме программистов-шпионов, у которых цель выведать побольше о программе другого.)))
кому нафиг нужна твоя программа чтобы кто то выведывал. тут у каждого свои программы и не по одному десятку програм.
Цитата:
Я вопрос поставил конкретно.
из того как ты поставил ни фига не понятно что ты хочешь. Не можешь связать три слова а возомнил что можешь написать гениальную не имеющую аналогов программу за которой охотятся все спецслужбы.
Еще раз - то что ты написал - чушь. Иначе ты уже бы получил ответ.
есть два варианта - либо объект сериализуется либо записывается в структуру БД по полям а значит его поля и поля БД должны соответсвовать.
Что ты тужишся изобразить - понять пока никаким каком невозможно. (Добавление)
Цитата:
Связаны. Есть зарезервированные имена, которые если встречаются в объекте, то значит записываются в нужные поля таблицы, все остальное сериализуется и записывается в базу в отдельное поле.
а типа клонирование к чему? (Добавление)
а что мешает писать в сериализованиео поле весь объект
извесные поля пишешь как обычно
объект в сериализованое поле
вынул с этого поля затем восстановил данные с изсестных полей
Хотелось обойтись без цикла. Что тут может быть не понятного?
Впрочем я уже выяснил что иначе не сделать... Спасибо за помощь. От такой помощи на форум больше писать не хочется.
Anguis
Отправлено: 05 Октября, 2012 - 12:07:16
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
КОНКРЕТНЫЙ ВОПРОС К УЧАСТНИКАМ ФОРУМА КОТОРЫЕ УМЕЮТ ВНИМАТЕЛЬНО ЧИТАТЬ!!!
Данная конструкция создает объект класса stdClass: $obj = (object) $array;
Существует ли подобная конструкция, только создающая объект произвольного класса? Или как реализовать такую конструкцию?
caballero, почему эту задачу вы считаете чушью? Неужели она такая редко встречаемая и кривая, что о ней даже в блогах пишут? Почему вы начинаете что-то домысливать? Не знаете ответа - так и скажите, не надо в архитектуру разрабатываемого мной приложения лезть! Я там и без вас, поверьте, отлично справлюсь. Я просто хочу программировать не быдло код, а изящные и красивые вещи, которые быстро работают и максимально функциональны. Вот и ищу различные красивые решения тех или иных задач. У меня не стоит проблем с работоспособностью приложения. У меня стоят задачи оптимизировать и лаконизировать код для большей производительности.
И ни чего сверх гениально или тупого в этом нет. Эти задачи стоят перед любым разработчиком, который вынужден работать с чужими творениями, да и со своими тоже(и даже в первую очередь со своими).
И не надо мне тыкать. Мы на брудершафт не пили! И у меня тоже семья и дети и не один десяток приложений.
Лишь бы обосрать человека и мордой в его некомпетентность тыкнуть... Противно...
caballero
Отправлено: 05 Октября, 2012 - 13:06:02
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Существует ли подобная конструкция, только создающая объект произвольного класса?
компилятор возразит - нет такого понятия "произвольный класс". Класс всегда конкретный.
Цитата:
caballero, почему эту задачу вы считаете чушью?
потому что это либо чушь либо вы не в состоянии сформулировать нормально вопрос изза своей паранойи что кто то догадается какую программу вы делаете
Цитата:
Почему вы начинаете что-то домысливать?
а что остается делать если вы не только не можете внятно сформулировать вопрос а даже не понимаете что он невнятно сформулирован.
Цитата:
Не знаете ответа - так и скажите
Мой опыт позволяет дать ответ на большинство ТЕХНИЧЕСКИ ГРАМОТНО сформулировных вопросов. Или как минимум показать в каком направлении ответ искать.
Цитата:
И ни чего сверх гениально или тупого в этом нет.
гениального -да.
Цитата:
Эти задачи стоят перед любым разработчиком,
нет, в основном перед говнокодерами-новичками. Первый признак новичка - паранойя по поводу его не имеющей аналогов программы.
Цитата:
Хотелось обойтись без цикла. Что тут может быть не понятного?
непонятно почему не подходит клонирование. Есть только один вриант когда оно не подходит но из вашей невнятной формулировки это выяснить нельзя, а попытка косвенного выяснения что ж вам бедолаге надо, вызвала у вас приступ паранойи что я хочу украсть вашу гениальную программу и сам заработать миллионы бабла.
Цитата:
Впрочем я уже выяснил что иначе не сделать... Спасибо за помощь. От такой помощи на форум больше писать не хочется.
Вы обратили внимание что кроме меня на форуме есть еще много людей которые учтут вашу ранимость и не будут вам тыкать. И среди них есть весьма опытные программеры. и никто вам не помог. Может проблемма в вас а не в форуме. А то напоминает притчу о солдате который идет в ногу а вся рота не в ногу.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Не понимаю, где Вы вычитали про низкое быстродействие циклов (подозреваю, речь шла о разыменовании длинных ссылок и многомерных массивов в foreach), но если велика охота, можно сделать так:
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Anguis
Отправлено: 05 Октября, 2012 - 15:28:04
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
EuGen, Браво! Пока первое, отличное от моего решение! Только вероятно лучше использовать array_walk_recursive. Дело как раз таки и заключается в многомерных массивах. Я не думаю что array_walk_recursive будет быстрее foreach. В инете сравнительные тесты этих методов дают противоречивые результаты.
EuGen
Отправлено: 05 Октября, 2012 - 15:31:37
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Anguis пишет:
Только вероятно лучше использовать array_walk_recursive
Для чего? Список свойств всегда будет одномерным массивом. И если в каком-либо свойстве будет объект, то он скопируется как есть. Поэтому нужды в этом нет. На выходе будет объект, у которого свойства будут такими же, как и у исходного.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Anguis
Отправлено: 05 Октября, 2012 - 16:52:06
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.