Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Что нас ждет в OpenCart 4?


sv2109

1,517 views

На данный момент продолжается работа над 4 версией движка. На сегодня для тестирования доступна версия 4.0.0.0_b. Сроков выхода новой версии пока нету, но уже можно посмотреть какие там запланированы изменения. 
 
Из основного
- минимальная версия PHP - 8
"Warning: You need to use PHP8 or above for OpenCart to work!"

 

- убрали модификаторы (ocmod)
Вот только не понятно как можно убирать модификаторы, если с помощью событий еще можно сделать очень мало? И как при этом писать дополнения? Или будет как в версии 1.5 движка - отдельно OpenCart и отдельно все скачивали vQmod? 

- добавлена схема для базы данных
system/helper/db_schema.php 
Опять таки, зачем она нужна если запросы к базе все еще пишутся в одну строчку?
 
- для товара добавлены варианты
Можно указать главный товар и его варианты, например один товар с различными вариантами цветов, теперь это будут разные товары для каждого цвета со своими наборами опций, ценой, остатками и другими полями
 
- папка дополнений переехала
из
/catalog и /admin
в
/extension/opencart/catalog
/extension/opencart/admin
Свои же дополнения будут храниться в 
/extension/username/catalog
/extension/username/admin
спасибо @chukcha за уточнение

Суть это не меняет, но структуру файлов всех дополнений придется переделывать.

- неймспейсы теперь везде
было
class ModelCatalogProduct extends Model {
стало
namespace Opencart\Catalog\Model\Catalog;
class Product extends \Opencart\System\Engine\Model {

- и строгая типизация
было
public function getProducts($data) {
стало
public function getProducts(array $data = []): array {

 

Шаблон
- Bootstrap обновлен до 5 версии 
при этом поддержку font-awesome убрали, видимо иконки уже есть в Bootstrap

- jQuery 3.6 вместо 2.1 

- возможно, в движок будет добавлен React или Vue
Разговоры об этом идут, я уже писал об этом на форуме, также писал о том, насколько маловероятно что это будет реализовано  
 
- появилась новый шаблон 
product/thumb.twig 

 

для блока товара в категории, поиске, производителе итд. Более подробно тут
 
- появился новый шаблон 
common/pagination.twig
для пагинации
 
Админка
- появился новый тип дополнений - Startup
предположительно для добавления своих скриптов, которые будут выполняться при загрузке магазина

- появились задания крона
wget "http://localhost/opencart/4.0b/admin/index.php?route=common/cron" --read-timeout=5400


- добавлено GDPR Approvals для пользователей


- возле логотипа пользователя появился колокольчик

для уведомлений о новостях, новых версиях и обновлениях от OpenCart но по идее это могут использовать и сами модули для создания своих уведомлений. 


Общие впечатления

К сожалению, вот уже несколько новых мажорных версий, начиная со второй, вместо того, чтобы решать глобальные проблемы движка, такие как отсутствие нормальной системы расширений, отсутствие нормальных инструментов работы с базой данных, валидаторов, дублирование кода, устаревшее ядро движка, которое уже больше 10 лет как почти не изменяется, а также многие другие, OpenCart идет по пути "сделаем все красиво" и в каждой новой версии тратится куча времени для обновления дизайна, сначала добавили Bootstrap, потом в каждой новой версии его обновляют, добавили twig, обновили jQuery.. 
Каких-то кардинальных изменений я совсем не заметил, на мажорную версию это никак не тянет, максимум на 3.1. 
Хотя, работа над 4 версией еще не закончена, есть слабая надежда что еще что-то добавят. 

Если что-то пропустил  - дополняйте или поправляйте в комментариях. 

Products (1).png

Products.png

Dashboard.png

Administration.png

Your Store.png

  • +1 5

54 Comments


Recommended Comments



3 часа назад, SooR сказал:

Изменения больше косметические, вот одно из них:


$data['add'] = $this->url->link('customer/customer|form', 'user_token=' . $this->session->data['user_token'] . $url);

 

То есть вызов метода по ссылке через вертикальную черту. Зачем? Не знаю, визуально отделить файл/класс от метода. Стоит ли это изменение совместимости с модулями - однозначно нет. 

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

да, тоже видел) 
а чтобы разработчики не скучали папку дополнений перенесли в другое место и бутстрап 5 добавили вместо 4, визуально мало что поменялось, но если посмотреть по коду любого модуля.. 
вместо
class="pull-right"
class="float-end"
вместо
<ul class="breadcrumb">

<ol class="breadcrumb">

вместо

<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>

<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
вместо
<div class="panel panel-default">
<div class="card">
ну и еще несколько десятков! подобных мелочей и нужно будет каждый модуль теперь пол дня переделывать чтобы получить по сути тот же самый вид, только уже под 5 бутстрап! 

Link to comment

сегодня кстати обновили немного сам официальный сайт

 

вот что заметил то теперь правый блок навигации теперь так выглядит в ЛК

 

Спойлер

image.thumb.png.21713444f3e16c14d22ee552f75a7b5e.png

 

очень важный апдейт

Link to comment
6 минут назад, sv2109 сказал:

<ol class="breadcrumb">

потому что семантически это верно
потому что  это перечисляемый список
Хотите ul - оставляйте

Link to comment
3 часа назад, SooR сказал:

Изменения больше косметические, вот одно из них:


$data['add'] = $this->url->link('customer/customer|form', 'user_token=' . $this->session->data['user_token'] . $url);

 

То есть вызов метода по ссылке через вертикальную черту. Зачем? Не знаю, визуально отделить файл/класс от метода. Стоит ли это изменение совместимости с модулями - однозначно нет. 

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

Не толко визуально - explode - и не надо проверять весь путь на file_exists

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.