> Активист, в принципе я согласен с Вурдалак , не стоит называть метод именем магической функции,можно запутаться
Я кто их так называл, я так их не называл)) У меня 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, глядишь, и продажи попрут в гору семимильными шагами, а то чего у меня пользовати все с корзинками да с корзинками, пора уже воз!! ))))))