Array VS Serialized String

Вурдалак

Продвинутый новичок
fixxxer, ну, теперь с Активист'ом будем знать. ;)

Я, кстати, смотрел специально в словарях Яндекса. Он этого тоже не знает. Мне просто сразу представляется такая корзина:

А она именно basket'ом зовётся вроде.
 

Фанат

oncle terrible
Команда форума
Однако может с точки зрения гуру-программирования мои рассуждения ошибочны ?
С точки зрения гуру-программирования есть одно хорошее правило:
Не страдать ерундой и не изобретать вопросы на пустом месте.
Вопрос должен быть хотя бы минимально осмысленным. А не вида "Нет ли такого правила, которое запрешает мне есть борщ по пятницам в полнолуние?"

Если у тебя по пятницам в полнолуние проблемы с борщом, то так и надо ставить вопрос. Будем разбираться.
 

Активист

Активист
Команда форума
> Активист, в принципе я согласен с Вурдалак , не стоит называть метод именем магической функции,можно запутаться
Я кто их так называл, я так их не называл)) У меня store и restore, __sleep и __wakeup это вообще из другой оперы, и мне их предлагают использоват, как в контексте этого кода их можно пирменить, я так и не услышал. Кроме того, магические методы __sleep и __wakeup выполняются единожды, а по коду видно, что серилизация order_items выполняется и в других методах, дк, как мне все же использовать эти магические методы.

> Правильнее корзину сериализовать. И попутно: корзина не должна сама искать товар в БД. Правильнее будет
Я вот одно не понял, зачем мне серилизовать объект, который не измениться никогда, т.е., статичен, не статичен именно имено свойство items, вот их именно и серилизуем.

> корзина не должна сама искать товар в БД
Вполне возможно, но тут у меня принцип выше - High Cohesion (Высокое сцепление кода), вопрос спорный, думаю не стоит обсуждать, делают так, как нравится им.

> как уже заметили, не рекомендуется использовать для своих методов имена с «__».
>> Активист, почему не __sleep() и __wakeup()?
Простите, эм, про какие это методы, не одного моего метода с __ у меня нет, если и есть, то только магические методы, это ж вы мне предложили их использовать)))) А тут получается, уже отговариваете)))

> Это «кто-то другой» не может order_item подгружать?
Мммм, принцип Low Coupling ? инициализация обекта типа order_basket может быть в любом участке кода, а ошибка (PHP_Incomplete_Class) есть фатальная ошибка, дк, зачем мне надеятся на что-то где-то, глупо не прописать в аутолауд нужный класс, чем случайно увидеть fatal error. Кто-то другой - есть нарушение: High Cohesion, Low Coupling, Don’t talk to strangers.

> Да и сам класс корзины тоже к заказам относится, но подгружается кем-то другим.
Не, корзина, это корзина, заказы это другое. Мне например, через виджет на любой странице нужно вывести корзину. Я выделил его в отдельный независимый объект, заказы это заказа, а корзина, это корзина (я в корзину, например, могу положить просто понравшие мне товары) (Single Responsibility Principle)

зы: ну слушайте, Cart (тележка с колесиками) и basket (корзина в руке), разницы особо нет, буду писать инент магазин под гипермаркет, обязатально будет cart, а пока и с basket не плохо))

Я вот тут подумал, может на собственном сайте строй материалов и вправду использовать cart, глядишь, и продажи попрут в гору семимильными шагами, а то чего у меня пользовати все с корзинками да с корзинками, пора уже воз!! ))))))
 

Вурдалак

Продвинутый новичок
Активист, трудно с тобой.

Простите, эм, про какие это методы
— давай будем читать внимательнее и не смешивать мои цитаты так, как заблагорассудится. Я говорил про метод __autoload(). Этот метод не магический.
 

Активист

Активист
Команда форума
Хм. Ошибся.
На девелоперском сервере __autoload как метод работает, дома нет, и именно только при десерелизации из сессии. Толи баг толи фича :)
Будем знать.
 

Активист

Активист
Команда форума
Я вот все про аутолоад думаю, вам не кажется это странным в ZS 7, привык пользоваться справкой в IDE.
Может в 5.3 чего нового?

autoload.jpg
 

tz-lom

Продвинутый новичок
Активист
это какая то хрень,там простите написанно "этот метод используется каждый раз когда идёт доступ к необъявленному классу" и у меня большой вопрос как же используется метод необъявленного класса ?
есть магическая функция __autoload ,о ней есть дока http://php.net/manual/en/language.oop5.autoload.php , хотя я предпочитаю http://www.php.net/manual/en/function.spl-autoload-register.php
 
Сверху