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

Сравнение возможностей фреймворков OpenCart и Laravel.


sv2109

1 944 перегляди

Название темы очень неоднозначное, так как многие могут сказать, что это совсем разные вещи, сравнивать которые не имеет смысла. Но многие разработчики OpenCart считают OpenCart именно фреймворком, некоторые даже пишут что это не просто фреймворк, а самый лучший фреймворк, на котором можно сделать сайт любой сложности.. Поэтому и решил сравнить именно функционал фреймворков.

Почему Laravel

На сегодня это наверное самый популярный фреймворк на PHP. Он во много раз (и даже в десятки) популярнее самого OpenCart.
Для примера: https://trends.google.com.ua/trends/explore?date=today 5-y&q=%2Fm%2F0jwy148,%2Fg%2F11b5m9hl85&hl=uk
за последние 5 лет если популярность OpenCart упала больше как в 2 раза, то популярность Laravel наоборот выросла процентов на 30.
Это фреймворк на котором пишут всё - от всевозможных API, серверлесс решений, SPA, бэкенда для мобильных приложений, ботов для мессенджеров до больших и сложных сайтов, интернет магазинов и маркетплейсов.
Он простой, быстрый, функциональный, безопасный, что очень важно - очень активно поддерживается сообществом и развивается, совсем недавно вышла новая, 10 версия фреймворка, всего год назад - 9. Есть огромное количество бесплатных расширений, практически под любую задачу уже есть готовый пакет.
Он отлично работает как с обычными css библиотеками типа bootstrap так и с реактивными фреймворками типа React и Vue.

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

И был очень приятно удивлен его красотой, удобством и функционалом. А также насколько радикально он отличается от опенкарта в плане кода и работы с ним для программистов.
Тут автоматизировано почти все, что можно автоматизировать, многие действия делаются вообще в 1-2 строчки кода.

Поэтому и решил написать данный пост, а заодно и немного сравнить функционал с OpenCart и даже показать примеры кода. 

И так, некоторые возможности Laravel, которые больше всего понравились:

Тут в полном объеме раскрываются все возможности PHP - классы, интерфейсы, наследование, трейты, Enums, SOLID, шаблоны проектирования (фасады вообще везде, DI, Factory..) итд.
Работая с фреймворком реально начинаешь понимать всю красоту правильного подхода, когда в одну строчку кода можно изменить логику работы всего приложения если все спроектировано правильно. А не так как в опенкарт, когда чтобы поменять какую-то мелочь, нужно изменить сотни строк кода в десятках файлах, что и делается постоянно, достаточно посмотреть как в опенкарт сделана напр. пагинация или валидация форм или генерация ссылок или работа с базой..
Чтобы не быть голословным. Если прочитать формулировку 5 принципа SOLID - инверсии зависимостей, то там будет вот это:

A. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
B. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Скорее всего, если вы читаете это впервые то  единственное что вы из этого поймете это то, что вы ничего не поняли))
В то же время когда начинаешь работать с Laravel то там достаточно часто методы получают в параметрах не какие-то конкретные объекты и следовательно зависят от конкретных реализаций этих объектов, а интерфейсы, то есть эти методы зависят именно от абстракций. Что это дает? В настройках Laravel можно указать какой конкретный класс нужно использовать для данного интерфейса, можно даже сделать это через условие, например в режиме разработки использовать один класс, который напр. не отсылает никуда данные а только пишет в лог, а в продакшене использовать другой.
При этом мы никак не изменяем логику самого метода, ему вообще без разницы какой объект ему передали, главное чтобы это был объект нужного интерфейса. И приложение получается очень гибким и без кучи ненужных условий, проверок и дублирования кода. Изменения делаются через изменение одной строчки кода и у нас уже все приложение работает по совсем другой логике.

Консольные поманды

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

php artisan make:model ProductModel (+ различные параметры если нужно)


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

Очень классно реализована работа с базой

Тут есть как отдельный билдер для создания запросов к базе и не нужно вручную писать кучу SQL запросов для кучи однотипных действий - получение, изменение, удаление записей в базе данных.
Тут конечно есть и ORM.
Вы просто создаете новую модель

php artisan make:model ProductModel

Это будет практически пустой класс без единой строчки SQL кода, но в контроллере вы уже сможете полноценно работать с базой, например

$products = Product::all();

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

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

 

Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->unsignedBigInteger('category_id')->nullable();
            $table->timestamps();
 
            $table->index('category_id', 'post_category_idx');
            $table->foreign('category_id', 'post_category_fk')->on('categories')->references('id');
 
        });


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

То есть как происходит стандартная работа - вы копируете какой-то проект на Laravel,
Одной командой создаете все необходимые таблицы для работы
Еще одной командой заполняете эти таблицы необходимыми для работы данными.

Максимально простые контроллеры

(что по сути и должно быть по стандарту MVC, а не то что мы сейчас видим в опенкарт)

пример метода контроллера для получения поста

   public function show(Post $post)
    {
        return view('post.show', compact('post'));
    }


Обратите внимание, очень классная фишка Laravel - если в адресе страницы есть id поста (напр. /posts/123) то мы в качестве аргумента метода контроллера можем получить не этот идентификатор чтобы потом по нему вручную создать этот пост, а фреймворк за нас сам создаст этот пост и мы в качестве аргумента получаем сразу объект этого поста, осталось передать его представлению и все. Если пост не будет найден то фреймворк вернет страницу 404. Вроде мелочь, но таких мелочей там десятки, которые очень сильно ускоряют разработку.

или контроллер для создания постов

 

 public function store(StoreRequest $request)
    {
        $data = $request->validated();
 
        $this->service->store($data);
 
        return redirect()->route('admin.post.index');
    }


StoreRequest - отдельный реквест для данного метода, опять же в качестве аргумента получаем готовый объект и нам не нужно его создавать вручную самостоятельно, в нем содержаться правила валидации запроса

 

  public function rules()
    {
        return [
            'title' => 'required|string',
            'content' => 'required|string',
            'image' => 'required|file', // можно также указать что это также картинка, определенного типа и размеров.
            'category_id' => 'required|integer|exists:categories,id', // тут сразу проверяется наличие этого идентификатора базе в таблице категорий, чтобы не создать пост с несуществующей категорией.
            'tag_ids' => 'nullable|array',
            'tag_ids.*' => 'nullable|integer|exists:tags,id',
        ];
    }

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

дальше, в

$data = $request->validated();

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

@error('title')
  <div class="text-danger">{{ $message }}</div>
@enderror


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

дальше по коду

$this->service->store($data);

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

   public function store($data) {
        try {
            // старт транзакции, так как есть работа с несколькими таблицами
            DB::beginTransaction();
 
            $data['image'] = Storage::put('/images', $data['image']);
 
            $post = Post::сreate($data);
 
            if (isset($tagIds)) {
                $post->tags()->attach($tagIds);
            }
 
            DB::commit();
        } catch (\Throwable $th) {
            // откат если произошла какая-то ошибка
            DB::rollBack();
        }
    }


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

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

Очень просто сделана работа с файлами.

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

Post::сreate($data);

создаст новый пост

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

    public function tags() {
        return $this->belongsToMany(Tag::class, 'post_tags', 'post_id', 'tag_id');
    }


Эта связь дает нам возможность как автоматически получать теги для постов (через $post->tags) так и изменять их.

При этом мы не написать ни одной строчки SQL кода! Весь код со всеми связями, проверками итд. написал за нас фреймворк. И это не только очень сильно ускоряет весь процесс разработки экономя сотни часов времени, но и страхует от кучи возможных ошибок, в том числе ошибок безопасности, например можно какие-то данные при добавлении в базу не обработать и получить потенциальную ошибку безопасности.

Понравилась такая фишка как безопасное удаление

если в модели просто добавить трейт

use SoftDeletes;

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

Что еще, для примера - пагинация

Если нужно добавить пагинацию то в контроллере при получении постов делаем

$posts = Post::paginate(10);

а в шаблоне
добавляем всего одну строчку кода

{{ $posts->links() }}

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

   

 $url = '';
 
    if (isset($this->request->get['filter_name'])) {
      $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
    }
 
    if (isset($this->request->get['filter_model'])) {
      $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
    }
 
    if (isset($this->request->get['filter_price'])) {
      $url .= '&filter_price=' . $this->request->get['filter_price'];
    }
 
    if (isset($this->request->get['filter_quantity'])) {
      $url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
    }
 
    if (isset($this->request->get['filter_status'])) {
      $url .= '&filter_status=' . $this->request->get['filter_status'];
    }
 
    if (isset($this->request->get['filter_image'])) {
      $url .= '&filter_image=' . $this->request->get['filter_image'];
    }
 
    if (isset($this->request->get['sort'])) {
      $url .= '&sort=' . $this->request->get['sort'];
    }
 
    if (isset($this->request->get['order'])) {
      $url .= '&order=' . $this->request->get['order'];
    }
 
    $pagination = new Pagination();
    $pagination->total = $product_total; // для этого нужно эту переменную еще вручную достать из базы, создав для этого отдельный метод с кучей sql кода и передать в контроллер. 
    $pagination->page = $page;
    $pagination->limit = $this->config->get('config_limit_admin');
    $pagination->url = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url . '&page={page}', true);
 
    $data['pagination'] = $pagination->render();

Отличный концепт - очереди и задания.

Если есть какие-то действия, напр. отправка почты или какие-то вычисления, для которых нужно обращаться к сторонним сервисам то вместо того чтобы долго ждать каждый раз пока сторонний сервер отдаст результат, можно создать новой задание Job и добавить его в очередь Queue после этого все действия в очереди будут спокойно обрабатываться в фоне и ничего на сайте не будет тормозить пока ожидается ответ от сервера.

Еще одна отличная концепция - Middleware

Это код который выполняется перед или после реквеста.
Очень удобно делать разные ограничения доступа к некоторым страницам (например открыть доступ к странице только авторизованному пользователю или админу итд.) или обработку входящих данных, например по умолчанию для всех входных строк отображаются пробелы в начале и конце. При этом вся логика не пишется в одну кучу в контроллере через кучу условий, а лежит в отдельном классе. 
Через этот механизм таже сделана защита CSRF (cross-site request forgery )
все что вам нужно это написать в шаблоне для формы

@csrf


и все! фреймворк сам создаст нужные токены, передаст их в форму, выведет нужный инпут, а на входе проверит все запросы (кроме гет) есть ли там токер, совпадает ли он, если не совпадает то сделает возврат с ошибкой и не даст такой форме пройти дальше.
Этот механизм работает для всех форм, то есть уже из коробки есть эта защита для всех форм. И этой защиты вообще нету в OpenCart.
Через Middleware также из коробки реализован троттлинг, для API вы можете указать сколько запросов напр. в минуту должен сервер обрабатывать и не больше.

Ну и так далее, то что я описал выше это очень малая часть возможностей фреймворка, просто для примера. Всех возможностей многократно больше.
Я просто хотел показать насколько тут все продумано до мелочей, когда основные базовые действия автоматизированы настолько, что делаются буквально в 1-2 строчки кода.
И как это контрастирует с опенкартом, где для любого действия нужно писать десятки строк кода да еще и дублировать это в десятках контроллеров.
Наглядный пример сравнения когда в одном случае продукт делается программистами для программистов и когда в другом случае кто-то пишет код вообще не думая о том кто потом и как с этим кодом будет работать в будущем..
Возможно поэтому популярность Laravel растет последние 5 лет, чего к сожалению не скажешь об OpenCart.. 

  • +1 4

33 коментаря


Recommended Comments



Никто и не сомневался, что Laravel практичней и удобней.

Но все же Опенкарт, это не фреймворк. Хотя в тройке чем-то начал отдавать symphony.

Но, спасибо, за такой пост. Пригодится.

Надіслати

catalog\controller\common\pagination.php

ой що це?

			$data['pagination'] = $this->load->controller('common/pagination', [
				'total' => $product_total,
				'page'  => $page,
				'limit' => $limit,
				'url'   => $this->url->link('product/category', 'language=' . $this->config->get('config_language') . '&path=' . $this->request->get['path'] . $url . '&page={page}')
			]);


Що не зрозуміло?  Багато коду?

Надіслати
03.10.2023 в 10:23, chukcha сказал:

october

там сообщество вообще нулевое. ну их на форуме движ слабый во всяком случае

Надіслати
В 03.10.2023 в 16:19, kJlukOo сказав:

там сообщество вообще нулевое. ну их на форуме движ слабый во всяком случае

Так він же наче став платним?

Надіслати
On 10/3/2023 at 3:05 PM, Vladzimir said:

Опенкарт добре обійшовся б і мікрофреймворком. Наприклад цим http://fatfreeframework.com

згоден, саме з цим я не працював, але колись працював з першими версіями Codeigniter -а так він навіть по синтаксису дуууже сильно нагадує опенкарт, мені навіть здається що на я етапі створення опенкарту Даніель просто злизав частину коду з цього фреймворку. 
Але в плані фреймворка опенкарт не дотягує навіть до перших версій Codeigniter-а.. що вже говорити про інші більш сучасні фреймворки. 
А так, да, взяти якийсь дуже простий фреймворк, перенести ядро на нього  і дописувати тільки сам функціонал самого магазину і взагалі не паритися на рахунок ядра, над яким працюють інші розробники, постійно його вдосконалюючи, випускаючи нові версії, виправлячи баги, добавляючи нові функції ітд. 
Цим шляхом до речі у свій час пішов Друпал, раніше десь до 6,7 версії у них все працювати на своїх власних велосипедах і вони витрачали реально купу часу щоб все це підтримувати, потім плюнули та перевели весь Друпал на симфоні, скинувши зі своїх плеч величезний об'єм роботи, бо це все вже і так реалізовано та підтримується величезною спільнотою симфоні. І в результаті від цього всі тільки виграли. 

  • +1 1
Надіслати
В 04.10.2023 в 15:24, sv2109 сказав:


Цим шляхом до речі у свій час пішов Друпал, раніше десь до 6,7 версії у них все працювати на своїх власних велосипедах і вони витрачали реально купу часу щоб все це підтримувати, потім плюнули та перевели весь Друпал на симфоні, скинувши зі своїх плеч величезний об'єм роботи, бо це все вже і так реалізовано та підтримується величезною спільнотою симфоні. І в результаті від цього всі тільки виграли. 

І де зараз друпал? Хтось чув? Ауу... Де Magento?... Ауу...
Ще раз ..."повноцінні" FW - це надмірність та перевантаження купи коду, в шкоду архітектурі. 
Опенкарт как ідея, один з найкращих...
На жаль Даніель все гарне в ньому "зпускає в унітаз". Так, є таке. Але я дивлюся більше на engine архітектури, а не на надмірність купи коду.

"Норм":-D так перейшли на симфоні

1716261534.png

Надіслати
On 10/4/2023 at 3:31 PM, markimax said:

І де зараз друпал? Хтось чув? Ауу... Де Magento?... Ауу...

Якшо ви особисто з якимось двіжком не працюєте то це зовсім не означає що він мертвий))  
Ось наприклад по друпалу, він зараз десь у 5 разів популярніший за опенкарт
https://trends.google.com.ua/trends/explore?date=today 5-y&q=%2Fg%2F11b5m9hl85,%2Fm%2F01641s&hl=uk
Але масово ви про них і не будете чути, бо і друпал і магенто це зовсім інший сегмент сайтів, це корпоративні сайти, на друпалі колись працював сайт білого дому, не знаю як зараз + різні дуже великі сайти та портали, напр. redhat.com, europa.eu ітд. на магенто розробляють магазини типу allo.ua та інші подібні та дуже великі магазини. 
Розробники там беруть до 200 і навіть більше $ за годину! і за один день заробляють більше, ніж середньостатистичний розробник під опенкарт заробляє за місяць))
Просто це корпоративний сегмент і туди дуже тяжко пробитися якомусь одному фрілансеру, там заказчики це дуже великі контори які навіть дивитися у сторону фрілансерів не будуть, вони краще заплатять декілька десятків а то і сотень тис.$ якісь великій софтверній фірмі, ніж в десятки разів менше, але якомусь фрілансеру..  

Знімок екрана з 2023-10-04 17-37-27.png

  • +1 1
Надіслати
В 04.10.2023 в 17:52, sv2109 сказав:

Якшо ви особисто з якимось двіжком не працюєте то це зовсім не означає що він мертвий)) 

 

В мене досвід роботи з двигунами різними побільше чим в тебе
Я починав з друпала (на ньому зробив не один десяток сайтів), потім wp, presta, magento (на ній та друпалі більш всього часу працював), усі відомі FW
І ти гадаєш я не слідкую за ними усіма... ще й як. І бачу що вони там "творять" без баяну. Це жах. Ще гірший чим в опенкарт
І не треба мені "тикати" дуполайзером... він зовсім неадекватні цифри показує. В мене ліцензій доменів більш,чим він показує по всьому світу ))) Я утрирую, але не набагато.
Давай без демагогії. Я чітко написав чому опенкарт краще відомих cms та fw в реальності и чим він гірше.
На рахунок хто скільки бере... таргетологи (ті що лінивих лохів розводять на налаштування фб піксела, гугл аналітики й гугл ads) теж беруть 100$ в годину... (це окрема тема)
А в нас різна школота "бере" 5$ в годину (за хліб та воду), а потім просто розводять замовника. А інші вже більш менш "фахівці" беруть 15$ (це вже за хліб та чай). Не буду далі розводити по цьому питанню тему. "Ви" самі так позиціонували. 25 евро в годину програміста це майже всюди. 200$ беруть в мадженто бо там нема достатньої кількості фахівців... але зауважу і ринок дуже малий і получити "кита" який тебе буде постійною роботою (без кита сидять 80% відсотків часу та чекають "приливів амазонки") навантажувати дуже, дуже тяжко... так що вони не зневажають і за 5$ підхалтурити
 

Надіслати
04.10.2023 в 08:31, markimax сказал:

І де зараз друпал? Хтось чув? Ауу... Де Magento?... Ауу...
Ще раз ..."повноцінні" FW - це надмірність та перевантаження купи коду, в шкоду архітектурі. 
Опенкарт как ідея, один з найкращих...
На жаль Даніель все гарне в ньому "зпускає в унітаз". Так, є таке. Але я дивлюся більше на engine архітектури, а не на надмірність купи коду.

"Норм":-D так перейшли на симфоні

 

Марк все эти метрики лишь показывают популярность использования и никак не отражает коммерческий успех. Сколько магазинов из этого числа приносят прибыль? Мелкие магазины с низким оборотом собраные за 3 дня на купленных плагинах, это не показатель.
Adobe выкупил Magento и обеспечил ему коммерческое использование и поддержку на многие годы в B2B сегменте. Drupal так же ушел в B2B, но как формат CMS он умирает, т.к много костылей и для чего-то своего Laravel или его младший брат Lumen куда лучше и удобнее.
А вот куда идет Opencart этот вопрос более острый. Он как бы застрял в сегменте домашнего-магазина и только единицы на нем смогли реализовать что-то достойное.
Если смотреть со стороны финансов, не будем брать запад, там совсем другая, берем европу, зп на Laravel 3-6к евро, при работе на компанию 8 часов без головной боли. А что может дать Opencart, на компанию с ним не пойдешь, работать на модули, шаблоны итд требует куда большего времени и не дает абсолютно никаких перспектив и развития. Вот даже сейчас возьми рынок Украины сломан, от РФ все отказались, кому теперь сильно нужен магазин и модули на него?! Думаю что эта ситуация не скоро улучшиться. Азия использует Opencart активно, но кто из разрабов там что-то делал, думаю единицы.

На рынке США и Канады все мелкие CMS умерли с приходом Shopify, Opencart занял нищебродскую нишу и уверенно ее держит, точка.

@sv2109 Спасибо за пост, Laravel сейчас практически стал монополистом, на нем все хотят делать свежие проекты и переходят с Symphony, Slim, Zend итд. По своему опыту работы с ним скажу, что пока лучше еще не придумали. Есть интересные решения от SpiralScout с их Spiral Framework, Cycle ORM и Roadrunner но там очень много чего нету и применимо в довольно специфических проектах.

  • +1 1
Надіслати
В 05.10.2023 в 23:24, ocdev_pro сказав:

Если смотреть со стороны финансов, не будем брать запад, там совсем другая, берем европу, зп на Laravel 3-6к евро, при работе на компанию 8 часов без головной боли.

Не згоден взагалі з тобою. Як раз на опенкарт є і великі магазини з багатомільйонними  оборотами грошей $ ...  і є  "домашні".
А чому ..  ти таке питання не задавав собі. А тому що він легкий в освоєнні та уніфіковано-стандартизований, з купою тем, модулів та т п, на відміну від "інструменту-лопати" FW-ка будь то Laravel чи інший, який сугубо для будування "пропрієтарних" магазинів. Ось чому треба розробники в компанії, бо у кожної компанії фактично своя CMS на базі Laravel чи іншого FW, звичайно з багатьма негативними наслідками всіє цієї фрагментації, бо до свого магазина треба тільки свої "модулі". І ринок США це один з головних ринків опенкарт (і норм там зп). І як раз ніша опенкарт набагато вища за Shopify (оці уж точно для домогосподарок та ніщебродів)

Надіслати
В 05.10.2023 в 23:24, ocdev_pro сказав:

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

І зараз на форумі дуже добре видно стагнацію опенкарту. Нові модулі майже не з'являються. Останній був доданий більше двох місяців тому!

Надіслати
В 06.10.2023 в 10:41, Vladzimir сказав:

І зараз на форумі дуже добре видно стагнацію опенкарту. Нові модулі майже не з'являються. Останній був доданий більше двох місяців тому!

А причому тут "нові" модулі. Не бачу зв'язку.
По перше вже дуже багато модулів на різний смак (причому в інтерпретаціях різних розробників) і що ... "вєлік" винаходити?
Що "ринок" потребує - то і роблять. А ринок модулів - перенасичений.
По друге багато розробників хто в ЗСУ, хто "виїхав", хто ...

Надіслати
06.10.2023 в 10:41, Vladzimir сказал:

І зараз на форумі дуже добре видно стагнацію опенкарту. Нові модулі майже не з'являються. Останній був доданий більше двох місяців тому!

Это из-за блокировки продавцов из РФ и РБ.

Надіслати
В 06.10.2023 в 10:53, markimax сказав:

А причому тут "нові" модулі. Не бачу зв'язку.

 

Зв'язок є, і причому прямий. Модулі з РФ зняті з продажів, а адекватних альтернатив немає.

 

В 06.10.2023 в 10:54, buslikdrev сказав:

Это из-за блокировки продавцов из РФ и РБ.

І це теж. Але мій модуль, наприклад, адміністрація модерувала понад місяць! При тому що він опенсорсний і фрішний.

Надіслати
В 06.10.2023 в 10:58, Vladzimir сказав:

 

Зв'язок є, і причому прямий. Модулі з РФ зняті з продажів, а адекватних альтернатив немає.

 

Як немає. Є альтернативи. Simple не було. Олексій зробив, і далі розвиває, оновлення велике вийшло ось недавно. Не бачу більше якихось модулів, які б потребували власники магазинів, яких нема на форумі. Можете привести приклади які модулі дуже потрібні власникам магазинів, а на форумі їх нема чи зняті з продажу? Зробимо, якщо є велика потреба :-D
На рахунок модерації... ну мабуть це було влітку. В відпустках були. Мені "вивід" робили більше місяця (а зазвичай набагато швидше)

Надіслати
В 06.10.2023 в 11:06, markimax сказав:

Simple не було. Олексій зробив

Я сказав адекватних альтернатив. Шило на мило міняти якось не тойво.

Де адекватні аналоги FilterIt, FlyPage?

Надіслати

Все будет со временем, симпл сколько лет 10 делался)

я посмотрел последние много страниц на лайве, там нет ровно ничего чего бы не хватало, вот вообще тупо ничего

 

  • +1 1
Надіслати
В 06.10.2023 в 11:09, Vladzimir сказав:

 FlyPage?

А де ви там бачили FlyPage?
Щось я не бачу на жодному їх маркету його ;) Мабуть так треба власникам магазинів

В 06.10.2023 в 11:24, spectre сказав:

Все будет со временем, симпл сколько лет 10 делался)

я посмотрел последние много страниц на лайве, там нет ровно ничего чего бы не хватало, вот вообще тупо ничего

 

Simple робився більше 10 років, звісно там буде трохи більше функціонала
onepage-у тільки .. 1 рік...  Але Олексій я бачу працює над поліпшенням постійно. І зауважу функціонала onepage буде досить для 99% власників магазинів
 

Надіслати
05.10.2023 в 16:42, markimax сказал:

Не згоден взагалі з тобою. Як раз на опенкарт є і великі магазини з багатомільйонними  оборотами грошей $ ...  і є  "домашні".
А чому ..  ти таке питання не задавав собі. А тому що він легкий в освоєнні та уніфіковано-стандартизований, з купою тем, модулів та т п, на відміну від "інструменту-лопати" FW-ка будь то Laravel чи інший, який сугубо для будування "пропрієтарних" магазинів. Ось чому треба розробники в компанії, бо у кожної компанії фактично своя CMS на базі Laravel чи іншого FW, звичайно з багатьма негативними наслідками всіє цієї фрагментації, бо до свого магазина треба тільки свої "модулі". І ринок США це один з головних ринків опенкарт (і норм там зп). І як раз ніша опенкарт набагато вища за Shopify (оці уж точно для домогосподарок та ніщебродів)


Ну у каждого свое представление, США точно не про Opencart. Никто не спорит, что и на нем есть большие магазины с оборотом, но их % кромешно мал. Ну и еще не 1 большая компания не хочет связываться с подобным OpenSource продуктом. Компании выбирают проприетарные решения, как раз в угоду безопасности и гибкости поддержки, придерживаясь определенных унифицированых решений и стандартов.
Увы да это дорого, поэтому мелкие магазины берут что-то готовое, 300$ на темы и модули, еще 500-1000 что бы это собрать и залить на хостинг. Это выгодно мелкому ритейлу, т.е домашним магазинам.
Но c позиции разработчика, открываем LinkedIn, Indeed и видим что вакансий связанных с Opencart нет, это только фриланс заказы, на которых в США ты никуда не уедешь. Что бы  хватало на жизнь надо минимум 100к в год и на Opencart такого не найти.
Даже больше скажу на PHP в целом не так много вакансий, в США нужен C#, .Net, Python, Java, Node

Если условно сильно напрягтись, запастись терпением и временем и найти компанию в который ты будешь незаменимым Opencart разрабом, то выше 30$ час платить не будут, вычитаем от 24% налогов и останется 3500$ на руки, чего хватит что бы жить гдето в провинциальном городе среднестатистического штата типа Луизианы, Висконсина итд. И то этого хватит на базовые расходы. Поэтому Opencart это не о заработке в плане наемного труда.
Если продавать модули на envato, opencart.com итд, может с этого и будет толк, но там нельзя использовать всеми любимый ioncube. Поэтому рвать пятую точку, бить себя в грудь, что opencart сила не имеет никакого смысла с точки зрения заработка. При прочих равных WP на рынке США может дать гораздо больше, даже с его уродским WooCommerce

Надіслати
06.10.2023 в 03:41, Vladzimir сказал:

І зараз на форумі дуже добре видно стагнацію опенкарту. Нові модулі майже не з'являються. Останній був доданий більше двох місяців тому!

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

Надіслати
В 06.10.2023 в 15:47, ocdev_pro сказав:

Opencart.com как продавал всем так и будет продавать

Тому що для Данілки гроші не пахнут.  Але так, його бізнес, поки шо плаває, бо ми знаємо що не тоне.

Надіслати
В 06.10.2023 в 15:31, ocdev_pro сказав:

Ну и еще не 1 большая компания не хочет связываться с подобным OpenSource продуктом.

Стопіт ))) Мені подобаються люди, котрі самі собі суперечать ))) А Laravel вибачте який продукт .. OpenSource. Питань більше нема.
І пропрієтарне ПЗ це "уніфікція" ) Перший раз таке чую. Все навпаки. Це як раз фрагментація системи.
На рахунок вакансій, зп та т п  маячня. Що Laravel що опенкарт нема значення для фахівця програміста. Питання... скільки тобі треба часу щоб наприклад програмувати використовуючи Laravel на рівні, наприклад, middle ;) Відповідь очевидна. Отож.

В 06.10.2023 в 15:47, ocdev_pro сказав:

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

Піди ще 3.14ам снаряди піднось, та "донать" їм, щоб вони більше вбивали українців, як в Бучі чи Грозі чи.... Все зрозуміло з тобою - "гроші не пахнуть". Моральних принципів null. І нікуди форум "не уходить". Не сподівайся на це.

  • +1 2
Надіслати

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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