Pull to refresh

Comments 84

все товары из базы помещаются в глобальный массив, а затем, когда нужен определенный товар, он брался из этого массива

No comments! Это надо написать прямо на коробке чтобы покупатели знали на что они подписываются.
Если напротив этого пункта еще и поставить зеленую галочку, то они воспримут это как преимущество.

P. S.
Использование ArrayAccess очень красивое решение проблемы. Молодцы.
Скажу больше — это еще и покупается!
Не пинайте слишком строго.
Подскажите, плиз, бесплатные и хорошие аналоги??
Хороший пример для еще одной статьи из серии «быдлокодеры негодуют». Описанной в топике проблемы, впрочем, не подвержен. Однако:
возраст проекта почти 10 лет.
обязательные register_globals on.
никакой системы шаблонов, просто php-файлы вперемешку.
админка по умолчанию не запаролена.
миф о дырявости очень успешно культивируется конкурентами (пойдите-ка найдите хоть одну новую уязвимость в коде, который существенно не менялся за последние года 3).

И при этом всем, кроме программистов, пофиг. Число успешно функционирующих магазинов огромно.
>Если кому-то интересно посмотреть на код решения проблемы, могу опубликовать его целиком в следующем посте.

Интересно. Приложите файлом, пжст.
там пришлось несколько файлов менять. через пару дней напишу подробно все.
а как вы выбираете записи из БД при их запросе, по одной? думаю выбирание пачками (в зависимости от числа товаров на странице) хоть и усложнит алгоритм но еще ускорит магазин.
Выбирать несколько товаров для показа на странице и выбирать все товары из базы не зная какие из них понадобятся — разные вещи.
нее… это все понятно, я просто уточняю ваше решение
А насколько при это ухудшилось время работы у типичного клиента магазина?
Ну это такой небольшой магазинчик для сайта. Ручки/Майки/Футболки. 50 наименований максимум.

Пишите со своим ретейлом и торговлей другие магазины.
Не понятна суть вопроса. Что такое «типичного клиента магазина»?
Это такая ирония.
Если ценообразование у скрипта построено от числа копий, значит он так и будет развиваться, чтобы удовлетворить максимальное число клиентов. Любой крупняк — в пролете.
Целевая аудитория этого скрипта — небольшой магазин при сайте или продажа уникальных товаров. Увлеченные люди продают всякую фигню и атрибутику. Номенклатура небольшая.

А вы пытаетесь сделать из него сайт торговой сети и еще чем-то возмущаетесь.
У нас был заказ на добавления товаров. Чем мы собственно и занимались. Когда возникла проблема мы предложили ее решить и решили.

Сделать сайт торговой сети захотел заказчик, а не мы.

А по поводу целевой аудитории.
На сайте разработчиков написано что недавно был поставлен рекорд: «магазин со 116 000 товаров». www.phpshop.ru/news/ID_173.html

Так что врятли они позиционируют свою разработку как небольшой магазин.
> На сайте разработчиков написано что недавно был поставлен рекорд: «магазин со 116 000 товаров»

На кластере не иначе пускали.
А кто сказал что его вообще запускали? Просто был «магазин со 116 000 товаров» — никто не обещал что он работает :)
Ну я же не обвиняю лично вас во всех грехах. Да и мало ли что они там пишут. Факт в том, что скрипт продают в розницу.
С вашей стороны странно было бы ожидать от скрипта нормальной работы при накачке его товарами. Это общая проблема всех тиражируемых решений.

Вот, например, коммерческие СУБД и прочий масштабируемый софт часто лицензируют по числу клиентов или процессоров. В этом случае производитель кровно заинтересован чтобы крупный клиент был доволен.
Этот скрипт — коммерческий. Думаю от него стоило ожидать нормальной работы.
Нет, вы правда не понимаете? Это скрипт — коммерческий. Разработчика интересуют деньги и снижение затрат на разработку. Поэтому в первую очередь потребности большинства обычных клиентов, а торгаши — потом.
Я вас прекрасно понимаю. Вы говорите о том как есть, а я, о том, как должно быть.
Где должно быть? В волшебной стране населенной программистами-идеалистами? Так есть и будет всегда. Напишите лучше что вам солнце не нравится, может кто его выключит.

Я, к примеру, припоминаю подобную же историю и с vbulletin. Мало кто рискнет утверждать, что этот продукт плохо оптимизирован. И мало кто знает, что с ним нужно делать чтобы потребление памяти выросло до небес используя скрипт по прямому назначению. Я с этим столкнулся, а тысячи других клиентов — никогда.

Вы не о том спорите. Есть вещи, которых нельзя делать ни в каком софте, ни в коммерческом, ни в бесплатном.
Я бы понимал, если бы нормальное решение было бы _на самом деле_ сложное и дорогое, и выбрали «дешевый» путь.
Но ведь из того, что мы уже узнали про PHPshop он такой, «как из жопы придуман» — весь.
О поведайте нам о Десяти Проклятьях Программиста которые нельзя делать никогда?
Делать можно абсолютно все, если оно окупается.
Но чем хуже сделано, тем быстрее окупаться перестанет.
Окупается в том числе и в перспективе нескольких лет. Неужели вы хотите сказать что в перспективе в ближайшие 10 лет число инсталляций профессиональных торговцев и ретейловских контор среди интернет-магазинов превысит 50%?
Я очень рад за то что вы живете в волшебной стране населенной программистами-индусами.

Так должно быть потому что так правильно. Не имеет значения 10 товаров в магазине или 10 тысяч.

Вы так рьяно защищаете такой подход что у меня складывается впечатление что вы либо разработчик PHPShop, либо сами так пишете.
Нет, я вообще даже не видел код phpshop. Но в моей волшебной стране программистов-перфекционистов вовремя корректирует менеджер проекта.
Впрочем, он знает о самоуважении и творчестве, поэтому не мешает им в свободное время писать всякие мечтательные топики на хабре :)
Платформа PHPShop отличается удобством управления и большой производительностью. На базе скрипта интернет-магазина PHPShop Enterprise работает проект с товарной базой более 116 000 товаров, время обработки скрипта около 2-3 секунд.

Да уж, так гордиться посредственными результатами.
UFO landed and left these words here
Коль уж нашли решение — выкладывайте в паблик для скачивания
Там и выкладывать то нечего:
ru2.php.net/manual/ru/class.arrayaccess.php
что такое ArrayAccess я вкурсе, да, т.е как бы сабж не об этом… ок, спс
через пару дней с подробным описанием выложу.
Не проще ли было перенести весь магазин на другой движок? %)
Клиенту нужны были товары в существующем сайте, а не новый движок. Он с трудом согласился за оптимизацию платить.
Зашел на сайт пхпшоп. Теперь мне даже код смотреть не надо, примерно ясен уровень.
UFO landed and left these words here
Сталкивался поверхностно, поэтому не рассматривайте мой совет как истину в последней инстанции.
Я смотрел три продукта, OpenCart, Magento и VirtueMart (компоненент для джумлы). OpenCart в целом не плох, но некоторые вещи заставляют задуматься о том какую траву курил автор, например аттач картинок к товару. При этом код более чем вменяем. Магенто — монструозное чудовище, при этом очень толково сделанное. Но магазин на 2 десятка товаров я бы на нем не открывал, слушком сильный гемморой. И наконец, при всей моей нелюбви в Джумле, самым вменяемым и удовлетворяющим из коробки потребности девушки которая меня попросила, оказался как раз таки виртуемарт. Код — тихий кошмар, но тем не менее понять где/чего можно, при наличии желания. Это я советую из бесплатных, относительно развесистых движков.
UFO landed and left these words here
Будут вопросы — пишите в личку, мы пару месяцев назад с ним наковырялись...)
отличное бесплатное решение над которым нужно было ковыряться пару месяцев, мы написали за этот срок, интернет магазин с нуля, и реально наше решение не стыдно продавать
1) Читайте внимательно, ковырялись пару месяцев назад, а на пару месяцев.
2) Все зависит от задач, ко мне обратилась знакомая девушка, не мог же я по этому поводу девтим на 2 месяца отвлечь от основной работы, согласитесь?
3) Ну, похвастайтесь что ли, раз уж продавать не стыдно…
UFO landed and left these words here
Да вполне может и напишем, а что именно интересует, задавайте вопросы лучше в личку, но можно и здесь
мда. ахтунг. глобальный массив товаров.
судя по реакции на этот мой пост про пхпшоп, начальник отдела разработки завтра будет оправдываться и перед вами

респект за красивую доработку жуткого кода
«Если разработчики PhpShop увидят этот пост, я бы хотел знать, чем они руководствовались, создавая глобальный массив со всеми товарами заранее.» деньгами за свой продукт, больше я не могу придумать оправданья.
У них там еще PHPShop Server есть) наверно, как раз под их линейку продукции =)
Лично меня ужаснула вот эта строчка в системных требованиях:



Назовите мне хоть одну причину для использования Register Globals On. Это же просто дикость.
от я именно не понимаю идеалистов… ну что с этого? ну ок, не гуд это и что?
В 6 версии этой возможности не будет, вот что. И нужно будет переписывать все. Странный подход: если можно сделать через анус, то так и сделаем?
т.е вы считаете там сидели специально придумали «давайте через анус» не пишите бред.
Я говорю о том, что незнание закона не оправдывает ответственности.
Причина проста: старый код, который не хочется переписывать.
Но ничего такого уж фатального в этом нет.
Как же нет, если это дыра в безопастности?
это дыра, если выполняются 3 условия:
1. Код выполняется в глобальном контексте
2. Кодер забыл инициализировать переменную
3. Это ведет к фатальным последствиям

Очень сомнительно, что код даже средних веб-приложений выполняется в глобальном контексте.
Да там если на то пошло, ничего переписывать и не надо, достаточно auto_prepend скрипт со следующей строчкой:
$GLOBALS = array_merge($_GET, $_POST, $_COOKIE);
и ВСЕ!
и какой смысл этого действа? :)
проще в .htaccess прописать (если позволяет)
php_flag register_globals on
Начиная с версии 5.3, настройки register_globals больше не будет. И всегда нужно писать законченные программы, которые работают в любых условиях, а не заставлять покупателей за свои деньги еще что-то прописывать.
он вроде с первой версии говном был. и дизайн сайта что-то припоминает неткат кажется (который тож к слову cms-кой был неюзабельной совсершенно)
Честно говоря, лучше с PHPShop вообще не разбираться, легче написать новый модуль для имеющихся CMS.
Тяжелого там ничего нет. Единственное «узкое» и «тяжелое» место — «оплата» :)
P.S. При нормальном подходе к делу, за пару рабочих дней можно сделать :)
Ооо, вот поверьте мне, вы резко измените свое мнение когда столкнетесь. Казалось бы чего там, каталог + корзина. На практике всплывает просто дикое количество нюансов…
Знаете, если бы я не был разработчиком и не проходил это, я бы не говорил.
Да)
Ну я вижу только два варианта. Или ваше «кун-фу» гораздо круче «кун-фу» наших девелоперов, или просто уровни проектов были разные.
Я честно говоря просто не вижу ни какой сложности, ну разве что «платежные системы» ;)
Остальное, даже движок любой социальной сети можно приспособить для eshop, причем особо не заморачиваясь ;) И не тратя на это много времени.
И кон-фу здесь не причем. Знаете к коммерческим «разработкам» я отношусь очень «за… то», потому что вы берете за это деньги ;)

Уровни проектов… это напоминает мне меренье писюнами. Знаете за 18 лет разработок, web разработки это самое легкое, что может быть ;) Как раз для пенсионеров :)))
Вы знаете например DirectX, OpenGL, любые серьезные десктопы как бы посложнее будут ;)
UFO landed and left these words here
Вы даже не допускаете, что этом мог быть такой тонкий привет пиратам и «вечным тестерам»?
И коммерческой версии в каждой копии пароль один и тот же?
UFO landed and left these words here
Не похоже на коммерческий продукт, зато очень сильно похоже на «абсолютно чистый нуль скочять бесплатно !!». Вы сами покупали для заказчика этот продукт?
UFO landed and left these words here
Тепер подозреваю, что вы имеете ввиду не «бекдор», а дефолтный пароль, который не меняется при установке. Таких продуктов полно.
Спорный момент: c коммерческой точки зрения важно чтобы покупатель имел минимум проблем при первом взгляде на продукт. Скачал дистрибутив и тут же начал восхищаться. Программисты об этом не думают, опять же.

Хотя общепринято позволить установить пароль при первой установке продукта. Или хотя бы акцентировать внимание в документации. В демо-версии точно такого нет.
UFO landed and left these words here
Sign up to leave a comment.

Articles