Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Впечатления новичка от opencart (код)


proctoleha

Recommended Posts

Количество товаров

Это не баг..

Это наследство... В поздних версиях этого нет?

Это действительно не баг, а просто тупость. Такое можно встретить у школьников, которые не до конца понимают, как работает их код.

В двойке то это исправили, но сколько лет оно жило в ОК.

И вопрос же не в том, что это, а в том, как пользоваться магазином, где не выключается подсчёт товаров. И чтоб получить из-за этого подсчёта нереальные тормоза не нужно 200к товаров - даже на 2к эффект будет уже хорошо заметен.

 

про сайтмап

 

существует - принцип - формирования output

Есть спрос на карту изображений

Нате вам приблизительный интсрумент

И опять же, вопрос не в том, зачем там добавились изображения, а в том, как пользоваться картой сайта... которая не работает вообще?

 

Это .. система учета.

ОК - торговая площадка, а не система учета. Работающая в реалиях ихнего мира.

Основная аудитория ОК как раз те, для кого он ещё и система учёта. Либо он, либо экселевский файл. Ну, и дело не только в том, что положившись только на учёт в ОК можно получить кашу - как минимум он просто может показывать не в наличии товары, которые есть в наличии и, как результат, потеря продаж этих товаров даже, если у тебя идеальный учёт в Экселе (либо где угодно, но без двухсторонней онлайн синхронизации).

 

Кстати, на счёт реалий их мира: их мир - это Китай. Дэниэль хоть и британец, но уже не первый год живёт в Китае и именно в Азии ОК наиболее популярен.

 

Ты еще скажи что система учета НДС неверная.

Хоть с этим сталкиваться не приходилось. Но там, вроде, тоже по слухам без багов не обошлось.

Надіслати
Поділитися на інших сайтах


Кстати, на счёт реалий их мира: их мир - это Китай. Дэниэль хоть и британец, но уже не первый год живёт в Китае и именно в Азии ОК наиболее популярен.

 

Я думаю всё гораздо прозаичнее. :-D  Даниэль зарегал свою контору в Гонконге. Гонконг хоть и является с недавних пор территорией Китая, но по факту весьма условно её является (гуглите) и всю жизнь до этого был колонией Великобритании. Соответственно, знакомый язык, знакомые нравы и законы. Но с одним существенным плюсом. Налоги. В Гонконге:

 

Экономика территории основывается на свободном рынке, низком налогообложении и невмешательстве государства в экономику. Гонконг не является офшорной территорией, это свободный порт и не взимает таможенных сборов на импорте, там нет налога на добавленную стоимость или его эквивалентов

 

То бишь, в Гонконге существенно меньше налоги по сравнению с Великобританией и ЕС. Вот и всё. 8-)

 

 

именно в Азии ОК наиболее популярен

Обратно-таки азиатов количественно больше + опенкарт бесплатный + несложный в освоении.

 

В бедных странах (страны Азии, бывшие страны СССР(СНГ) и т.д.) популярностью пользуется не то, что хорошее и качественное, а то, что дешёвое и доступное. Качество не на первом месте...

Например, люди покупают мебель из ДСП не потому что она лучше мебели из дерева, а потому что дешевле(соответственно доступней жителю бедной страны)

Надіслати
Поділитися на інших сайтах

Для модулей и так места хватит. Сравнить, например, что есть из коробки в ОК и в ПрестаШоп. ОК до коробочного состояния ПрестаШопа модулями пихать и пихать. Но там другая беда: излишне сложный код и огромная прожорливость на любом количестве товаров (особенность архитектуры).

 

Так вот, если коробочный функционал настолько беден по сравнению с конкурентами, почему бы не сделать, чтоб хоть то, что есть, работало нормально?

Мне кажется, разработчику просто должно быть стыдно, если его продукт для нормальной работы требует посторонних модулей, которые просто приводят и так имеющийся функционал в приемлемый для реального использования вид.

 

По логике так. Но имеем то, что имеем...

 

Возможно, потому что Даниэль в первую очередь добавляет в Опенкарт блестяшки/свистелки, которые привлекут новых пользователей. Пример с бутстрапом и адаптивностью во 2-й ветке. Соответственно, новые пользователи после первых восторженных охов и вздохов, немного поработав с системой, следующим шагом пойдут допиливать свой конструктор с помощью модулей. Ну и далее ПРОФИТ

 

Возможно, просто у него на всё времени не хватает... И процесс идёт по принципу: хоть как-то работает? ну и ладно. оптимизируем потом. Кому сильно не нравиться - купит модуль или допилит сам...

 

ХЗ какими принципами он руководствуется

Надіслати
Поділитися на інших сайтах

Возможно, просто у него на всё времени не хватает...

Ну, так на то и есть опенсорс, чтоб пользоваться помощью сообщества. Вот только он ею довольно грубо пренебрегает: на гитхабе можно найти кучу пулл реквестов, которые либо молча отклонены, либо отклонены с комментарием типа "плохая идея". Так можно на форуме ответить, но когда человек уже потратил время и предлагает готовое решение, а не просто озвучил хотелку, не объяснить причину отклонения - это уже грубость и неуважение к сообществу.

 

Вот пример молча отклонённого пулл реквеста, который просто фиксит баг, а не вносит какие-нибудь спорные изменения: https://github.com/opencart/opencart/pull/4984

 

А вот молча отклонённый пулл реквест, который добавляет в ОК чуточку так ненавистного Дэниэлю DRY: https://github.com/opencart/opencart/pull/4974

Кстати, там неплохая идея, как хоть немного сократить простыни кода во многих контроллерах.

 

 

У кого после многочисленных таких примеров возникнет желание контрибутить в ОК?

Змінено користувачем Dotrox
  • +1 1
Надіслати
Поділитися на інших сайтах


Поковырялся я в коде, почитал еще раз доки, форум, и решил, да ну его нафиг - этот OK, никого не хочу обидеть, всем желаю успехов, да пребудут с вами боги Цифрового мира.

 

Конкретно для меня он не подошел. И дело не в том, что код не документирован, двойные конфиги и прочая ерунда. Дело во времени и удобстве работы. Композер, namespase , лайауты, вьюхи для отдельных блоков, архитектура hmvc и многое другое.

 

Вот установлен у меня в ОК шаблон, платный лицензионный. И потребовалось мне изменить размер иконки в верхнем меню. Да в рот компот : system\storage\modification\catalog\controller\common\header.php -> портянка на 490 строк кода и где-то там формируется размер иконки. Я 7 раз щелкнул мышкой, и вникал в код, потратив кучу времени. Справедливости ради, в базовом header.php 173 строчки кода, но так не пишут, ЭТО СТРОГО МОЕ ИМХО!!!. Например, отрывок кода

$data['text_shopping_cart'] = $this->language->get('text_shopping_cart');
        $data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

        $data['text_account'] = $this->language->get('text_account');
        $data['text_register'] = $this->language->get('text_register');
        $data['text_login'] = $this->language->get('text_login');
        $data['text_order'] = $this->language->get('text_order');
        $data['text_transaction'] = $this->language->get('text_transaction');
        $data['text_download'] = $this->language->get('text_download');
        $data['text_logout'] = $this->language->get('text_logout');
        $data['text_checkout'] = $this->language->get('text_checkout');
        $data['text_page'] = $this->language->get('text_page');
        $data['text_category'] = $this->language->get('text_category');
        $data['text_all'] = $this->language->get('text_all');

        $data['home'] = $this->url->link('common/home');
        $data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
        $data['logged'] = $this->customer->isLogged();
        $data['account'] = $this->url->link('account/account', '', 'SSL');
        $data['register'] = $this->url->link('account/register', '', 'SSL');
        $data['login'] = $this->url->link('account/login', '', 'SSL');
        $data['order'] = $this->url->link('account/order', '', 'SSL');
        $data['transaction'] = $this->url->link('account/transaction', '', 'SSL');
        $data['download'] = $this->url->link('account/download', '', 'SSL');
        $data['logout'] = $this->url->link('account/logout', '', 'SSL');
        $data['shopping_cart'] = $this->url->link('checkout/cart');
        $data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
        $data['contact'] = $this->url->link('information/contact');
        $data['telephone'] = $this->config->get('config_telephone');

Так я писал, когда создавал свои велосипеды, и то поначалу. Сейчас такой код вызывает у меня нервную дрожь. Брр.. Только не надо в комментах спрашивать, что конкретно мне не понравилось в этом куске кода. Писать лень, всё и так очевидно. 

И такие куски сплошь и рядом.

 

Для примера: качнул на пробу бетку, не самой распространенной на сегодня CMS ИМ на yii2. Максимальных уровней вложенности для рабочих файлов - 3. Все модули в одном месте: тут тебе и контроллер, и модель, и вьюха для модуля. Все виджеты тоже в одном месте. Что-то добавить намного проще, чем в OK. Я не трачу время на клики мышки, листание портянок кода  и ужасание. Я хочу нормально работать. Например в DefaultController - 111 строк кода!!!!! 111 Карл!!!! 111 по стандарту кодирования, принятого данным сообществом: все {}, (), [] с новой строчки

Да это бетка. Но как разработчику, мне проще влезть в код, чем в ОК. И нервная система будет целее.

 

Так что как то так.

 

Резюме: 

 

1. Я не  считаю себя суперразработчиком, к меня много дыр в знаниях, но на середнячка я тяну.

2. Я лентяй, мне лень тыкать мышкой и листать портянки

3. Мне дорога моя нервная система, я привык работать в удовольствие, а не испытывать когнитивный диссонанс от кода

4. Я не говорю, что в ОК всё плохо - я высказываю свое личное мнение - ИМХО, которое никому не наваливаю

5. Мне проще в том, что я только начал искать платформу для ИМ и могу привередничать.

 

Огромное спасибо @Dotrox, за комменты, и @toporchillo, за книгу.

 

Всем удачи! И удовольствия от работы!

Змінено користувачем proctoleha
  • +1 1
Надіслати
Поділитися на інших сайтах


да всем пофиг на то что сэр proctoleha не будет работать с ОК.

 

 

на одного конкурента меньше

ну как так можно, сердца у вас нет. :cry:  человек пришел, с новыми веяниями, старался внести свежею кровь, а вы так с ним поступаете - ПОФИГ - одумайтес !!!! :-D

Надіслати
Поділитися на інших сайтах

Почитал - посмеялся :-D

Особенно с гиперактивности ТС (вы очень зациклились на своем "любимом" fw (на котором надо пилить и пилить, чтобы хоть немного приблизиться к opencart), при этом не сделав ничего на opencart еще)

Явно ТС не хватает опыта работы с e-commerce решениями.

Насчет sitemap и т.п.

Коллеги любому нагруженному проекту - надо оптимизация. Это как "закон". Сделать универсальное решение под нагрузку невозможно.

Реальной альтернативы opencart и magento (presta и "недоwpwoo" даже не рассматриваем по причине говно архитектуры) в php e-commerce нету

Как я люблю говорить: "и на солнце пятна есть", также по magento и oc - идеальных нету.

У opencart свои достоинства, у magento свои. Но общее у них то, что у них современная архитектура (не путать с кодом)

Как по мне архитектура magento излишне перегружена, при том что по функционалу почти равны.

У каждого своя ниша.

Вот и всё.

Нету альтернатив.

Покажите php e-commerce решение лучше opencart или magento ?

Надіслати
Поділитися на інших сайтах

Только не бейте меня :)

 

Хорошо там, где нас нет.

Я все время считал что opencart спроектирован ужасно в плане базы данных, потому что тривиальные выборки из базы требуют наличия джойнов, что само по себе плохо сказывается на производительности. Затем я понял что некоторые вещи просто невозможно реализовать иначе, например локализацию и понял что в целом опенкарт выглядит довольно таки неплохо. Да, есть что оптимизировать под нагрузку, и я бы избавился от пары табличек, но повторюсь - неплохо.

Вот так выглядит запрос за категориями для языка с кодом 1:

select c.*, cd.*
from oc_category c
inner join oc_category_description cd on ( c.category_id = cd.category_id and cd.language_id = 1 )

Сегодня я познал магенто и понял что опенкарт прекрасен. Вот как выглядит такой же запрос на магенто:

SELECT
e.entity_id as category_id,
1 as language_id,
IF(at_name.value_id > 0, at_name.value, at_name_default.value) AS `name`,
IF(at_description.value_id > 0, at_description.value, at_description_default.value) AS `description`,
IF(at_title.value_id > 0, at_title.value, at_title_default.value) AS `meta_title`,
'' as meta_h1,
IF(at_meta_description.value_id > 0, at_meta_description.value, at_meta_description_default.value) AS `meta_description`,
IF(at_keyword.value_id > 0, at_keyword.value, at_keyword_default.value) AS `meta_keyword`
FROM
magento.`catalog_category_entity` AS `e`
INNER JOIN
magento.`catalog_category_entity_varchar` AS `at_name_default`
ON (`at_name_default`.`entity_id` = `e`.`entity_id`) AND
(`at_name_default`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'name' AND et.entity_type_code = 'catalog_category')) AND
`at_name_default`.`store_id` = 0
LEFT JOIN
magento.`catalog_category_entity_varchar` AS `at_name`
ON (`at_name`.`entity_id` = `e`.`entity_id`) AND
(`at_name`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'name' AND et.entity_type_code = 'catalog_category')) AND
(`at_name`.`store_id` = 1)
INNER JOIN
magento.`catalog_category_entity_text` AS `at_description_default`
ON (`at_description_default`.`entity_id` = `e`.`entity_id`) AND
(`at_description_default`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'description' AND et.entity_type_code = 'catalog_category')) AND
`at_description_default`.`store_id` = 0
LEFT JOIN
magento.`catalog_category_entity_text` AS `at_description`
ON (`at_description`.`entity_id` = `e`.`entity_id`) AND
(`at_description`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'description' AND et.entity_type_code = 'catalog_category')) AND
(`at_description`.`store_id` = 1)
INNER JOIN
magento.`catalog_category_entity_text` AS `at_meta_description_default`
ON (`at_meta_description_default`.`entity_id` = `e`.`entity_id`) AND
(`at_meta_description_default`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'meta_description' AND et.entity_type_code = 'catalog_category')) AND
`at_meta_description_default`.`store_id` = 0
LEFT JOIN
magento.`catalog_category_entity_text` AS `at_meta_description`
ON (`at_meta_description`.`entity_id` = `e`.`entity_id`) AND
(`at_meta_description`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'meta_description' AND et.entity_type_code = 'catalog_category')) AND
(`at_meta_description`.`store_id` = 1)
INNER JOIN
magento.`catalog_category_entity_text` AS `at_keyword_default`
ON (`at_keyword_default`.`entity_id` = `e`.`entity_id`) AND
(`at_keyword_default`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'meta_keyword' AND et.entity_type_code = 'catalog_category')) AND
`at_keyword_default`.`store_id` = 0
LEFT JOIN
magento.`catalog_category_entity_text` AS `at_keyword`
ON (`at_keyword`.`entity_id` = `e`.`entity_id`) AND
(`at_keyword`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'meta_keyword' AND et.entity_type_code = 'catalog_category')) AND
(`at_keyword`.`store_id` = 1)
INNER JOIN
magento.`catalog_category_entity_varchar` AS `at_title_default`
ON (`at_title_default`.`entity_id` = `e`.`entity_id`) AND
(`at_title_default`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'meta_title' AND et.entity_type_code = 'catalog_category')) AND
`at_title_default`.`store_id` = 0
LEFT JOIN
magento.`catalog_category_entity_varchar` AS `at_title`
ON (`at_title`.`entity_id` = `e`.`entity_id`) AND
(`at_title`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'meta_title' AND et.entity_type_code = 'catalog_category')) AND
(`at_title`.`store_id` = 1);

ТС!!!! Вернитесь!!!

  • +1 1
Надіслати
Поділитися на інших сайтах

Покажите php e-commerce решение лучше opencart или magento ?

 Маааленький такой вопрос: для кого лучше? Для сферического коня в ваккуме, или определенной категории потребителей, разработчиков и т.д.? Для кого Карл? Еще раз по буквам: для кого конкретно лучше?

 

Вот умиляют меня такие гуру: у opencart - современная архитектура. У OK - простой код. Звучит как завывания шамана. Все кто не с нами, те против нас. 

 

Может и современная, может и код простой, но мне лично, под мои задачи, под нужный мне функционал - это не подходит, и как сообществу глубоко @@@@ть на то буду я заниматься, или не буду, так и мне также глубоко фиолетово на то, что обо мне подумают. От слова совсем.

 

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

Змінено користувачем proctoleha
  • +1 1
Надіслати
Поділитися на інших сайтах


Только не бейте меня :)

ТС!!!! Вернитесь!!!

Да, у magento избыточно сложная архитектура (на "все случаи жизни", причем 90% которых практически не встречаются), что тянет за собой вот такие перлы.

А у opencart нет ничего лишнего в принципе. При том что функциональность от этого не страдает. Да скажем так - еще гибче из-за простоты архитектуры

Надіслати
Поділитися на інших сайтах

 Маааленький такой вопрос: для кого лучше? Для сферического коня в ваккуме, или определенной категории потребителей, разработчиков и т.д.? Для кого Карл? Еще раз по буквам: для кого конкретно лучше?

 

Вот умиляют меня такие гуру: у opencart - современная архитектура. У OK - простой код. Звучит как завывания шамана. Все кто не с нами, те против нас. 

 

Может и современная, может и код простой, но мне лично, под мои задачи, под нужный мне функционал - это не подходит, и как сообществу глубоко @@@@ть на то буду я заниматься, или не буду, так и мне также глубоко фиолетово на то, что обо мне подумают. От слова совсем.

 

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

ТС все что я понял - у вас излишняя гиперактивность и куча демагогии. А опыта в e-commerce - ноль

Так что лучше идите и пилите "гири" подальше от opencart и magento

Вот когда рученьки устанут "пилить" - вспомните еще opencart как "манну небесную"

Надіслати
Поділитися на інших сайтах

Вот когда рученьки устанут "пилить" - вспомните еще opencart как "манну небесную"

 

Не раньше, чем  когда OK действительно будет заточен под современные реалии программирования, а не под php 5.3 2010 года выпуска. Тогда да, вернусь с удовольствием

 

Но этого никогда не будет. Это особенность всех крупных CMS

Надіслати
Поділитися на інших сайтах


Ребят, я ещё на первой странице писал, что это толстый вброс. Ну чего вы ждете? Мы с вами знаем минусы и плюсы за много лет работы. А тут словно двачи налетели. Ну тролль же чистой воды. Образованный, но тролль. И daniel бы с ним, но вы то чего?

Надіслати
Поділитися на інших сайтах

Так я писал, когда создавал свои велосипеды, и то поначалу. Сейчас такой код вызывает у меня нервную дрожь. Брр.. Только не надо в комментах спрашивать, что конкретно мне не понравилось в этом куске кода. Писать лень, всё и так очевидно.  И такие куски сплошь и рядом.

Всё действительно очевидно, при чём большинству на этом форуме, но для автора ОК - это принципиальный вопрос. Он считает, что без полотнищ этой лапши код станет слишком сложным.

 

 

Только не бейте меня :)

Ну, тут по коду очевидно, что там сама концепция сложнее намного (и богаче функциональность).

 

 

Не раньше, чем  когда OK действительно будет заточен под современные реалии программирования, а не под php 5.3 2010 года выпуска. Тогда да, вернусь с удовольствием

 

Но этого никогда не будет. Это особенность всех крупных CMS

Ну, у него уже минималка 5.4 и через композер его начиная с версии 2.2 уже можно установить, но такие идиотские штуки, как лапша в каждом контроллере - это принципиальная позиция Дэниэля Керра.

 

Кто плотно с ОК работает, оригинальный ОК никогда не использует: либо готовая сборка, либо собственная, либо собственный допил готовой.

Надіслати
Поділитися на інших сайтах



как лапша в каждом контроллере - это принципиальная позиция Дэниэля Керра.

Ну не надо..

Так исторически сложилось

И.. как ни странно - не воспринимается как нечто особенное.

Это и не плохо, и не хорошо. Это есть как есть

ведь можно тупо $data = $this->load->language

 

Вот чем мне нравится ОК, грубо это имитация типизированных языков

Нет переменной - ошибка

 

Вот например события - классная штука.. Я даже за двумя руками.

Но! Я неоднократно писал - событие - это теневая функция - и в случае проблем, найти источник проблемы очень сложно.  А для "новичков" будет практически невозможно.

Напрмиер в 2.1 вообще нет инструмента просмотра событий. В 2.3 они есть. Но!!!! Загляни в system/config


    'language/extension/analytics/*/before' => 'event/compatibility/language',
    'language/extension/captcha/*/before'   => 'event/compatibility/language',
    'language/extension/feed/*/before'      => 'event/compatibility/language',
    'language/extension/fraud/*/before'     => 'event/compatibility/language',
    'language/extension/module/*/before'    => 'event/compatibility/language',
    'language/extension/payment/*/before'   => 'event/compatibility/language',
    'language/extension/recurring/*/before' => 'event/compatibility/language',
    'language/extension/shipping/*/before'  => 'event/compatibility/language',
    'language/extension/theme/*/before'     => 'event/compatibility/language',
    'language/extension/total/*/before'     => 'event/compatibility/language'    

я 4 часа искал проблему - почему не подтягиваются нужные языковые переменные

Надіслати
Поділитися на інших сайтах

Так исторически сложилось

Каким образом?

 

А то, что это его принципиальная позиция - это не моё мнение, а его собственные утверждения, каждый раз, когда кто-то публично делает замечания на этот счёт. То есть, он прямо так и заявляет, что избавление от лапши сделает код слишком сложным.

 

ведь можно тупо $data = $this->load->language

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

 

Напрмиер в 2.1 вообще нет инструмента просмотра событий. В 2.3 они есть. Но!!!! Загляни в system/config

Ну, это только очередной пример криворукой реализации чего-то в ОК.

Кстати, в 2.1 события ещё не предназначены для использования. И это ещё одна особенность ОК - в релизных версиях часто появляется код какого-то нового функционала, который не готов к использованию. Например, зачатки кода редактирования заказа в админке были, вроде, начиная с 1.5.0 (в 1.5.1 уже точно были), но работать оно начало только в 1.5.3 и ещё до 1.5.5, а то и 1.5.6 там была куча багов.

Надіслати
Поділитися на інших сайтах



он прямо так и заявляет, что избавление от лапши сделает код слишком сложным.

В принципе он верно говорит

 

$data = $this->load->language

Загружает неизвестные переменные

 

$data['button' = $this->load->language->get('button');

Говорит, что будет использована текстовая переменная

 

Почувствуй прелесть типизированного языка.

 


который не готов к использованию

И что? Есть зачатки - хорошо

Не ошибается тот, кто ничего не делает.

 

 

Приведу пример

 

По еврозаконам нельзя в корзину добавлять подарок если покупатель его сам не положил в корзину

 

Т.е. покупая один товар, в корзине должен быть только один товар, а подарок нужно выбрать (положить)самостоятельно

 

Но если это сделать в наших реалиях, то поднимется хай - КАК так, лишний шаг

Точно также и оформлением заказ, потому и 6 шагов. Реалии рынка.

Надіслати
Поділитися на інших сайтах

Загружает неизвестные переменные

Тогда есть смысл вообще от ООП отказаться - сплошная ведь неизвестность.

 

Есть зачатки - хорошо

Для зачатков есть dev ветка.

Кроме того, что эти зачатки лишние на момент текущего релиза, так потом могут вообще стать редундантными, то есть код отвечающий за этот функционал буде существенно переписан на момент готовности к работе. Тут двойка как раз хороший пример - сколько в ней было мутаций, при чём даже у работающего функционала.

 

По еврозаконам нельзя в корзину добавлять подарок если покупатель его сам не положил в корзину

На самом деле, у нас тоже нельзя. Ты ведь знаешь прикол "под подарком подразумевается возможность купить за одну копейку"? Не помню, то ли это с налогами связано, то ли ещё с чем-то, но в таком формате получается, что если автоматом положить копеечный подарок в корзину, выходит своеобразное мошенничество (принуждение к покупке ненужного товара без предварительного согласия покупателя).

  • +1 1
Надіслати
Поділитися на інших сайтах


Если посмотреть в контроллер, то там ООП как такового нет, потому что все прелести ООП за пределами контроллера

Явная типизация + структурное программирование.

Что и делает сам проект прозрачным!!!

 

 

На самом деле, у нас тоже нельзя.

 

Но нам законы не писаны :)

Надіслати
Поділитися на інших сайтах

все прелести ООП за пределами контроллера

Да их и за его пределами как-то не особо.

 

Одно из практических преимуществ ООП - отсутствие необходимости дублировать код. При чём, в отличии от функционального подхода (а в ОК даже он не используется), ООП позволяет переиспользовать большую часть кода даже при необходимости модификаций в отдельных случаях использования.

 

Я считаю, что имплементация хотя бы базовых возможностей ООП (реальная, а не формальная, как сейчас) не только бы не усложнила код ОК, а наоборот упростила бы его.

Надіслати
Поділитися на інших сайтах


Поковырялся я в коде, почитал еще раз доки, форум, и решил, да ну его нафиг - этот OK, никого не хочу обидеть, всем желаю успехов,

 

Всем удачи! И удовольствия от работы!

Чоооо даваааай

image_561801131502219230797.gif

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.