Hey. I would like to present you a new project of an open source online store. We recently made an alpha release, and we have something to show.
Why did we start this project? This is the main question.
There are not many open source projects in the world that are focused on creating online stores. We have been developing online stores on other platforms for many years, and have come to understand that in the modern form, platforms are full of complex manipulations in order to produce simple everyday things. To perform a simple action, you need to jump through the menu. This greatly reduces the productivity of the store manager and increases the likelihood of errors.
We decided that these disadvantages would turn into advantages on our platform. We initially devote a lot of time to ergonomics, while maintaining the basic functionality. We make many solutions for the first time in online stores in open source code. And that’s great. After all, now you can simply manage complex things. Product addition becomes easier. Discounts are easily manageable. Characteristics for goods are much easier to create.
Many familiar actions are greatly simplified, and at the same time their functionality is even more than usual we are used to seeing.
And we intend to continue to move forward. We believe that our decision will benefit people. We make a lot of effort for this. On January 1, 2021, we released our first Alpha release. You can watch a demo on our website.
Project page on GitHub – https://github.com/musicman3/eMarket
Technical support and demo – http://emarketforum.com
TL;DR
No one will ever use this. You will be lucky if 10 people install this but even that is optimistic.
—
Longer:
no tests
no framework
no ORM
code is amateurish
no typehints
no static analysis
no template engine
comments in Russian
not a single PSR rule
Advice:
don’t waste a single minute on this, you will be wasting time. Learn proper PHP first, learn ORM, pick framework.
Or install modern e-commerce tool and learn from them. Sylius is at top, follows all of modern PHP with tons of options.
Full of tiny little .php files include()ing others, no sign whatsoever of routing, any kind of db abstraction, or any kind of … well anything that would make it fit into anything else. No classes anywhere, hell I can’t even see that the “controllers” are even using functions
Look closely. There is routing, classes, a router and all the modern stuff (composer, bootstrap and more). See directory Model
No bashing and discouraging here guys, please. There is a considerable amount of workforce spend and no one should disrespect. I completely understand where you are coding in a language you have just freshly got in to. It is pretty natural not to grasp the language’s ecosystem. It takes time to sink in. I leave some suggestions below.
Learn the composer. Learn every bit of it. Packagist, autoloading, version constraints, require require-dev, etc. Put your classes into the src folder and configure psr4 autoloading in composer.json. This is a minimal setup in which you can introduce yourself to the modern PHP ecosystem.
Learn PSRs. https://www.php-fig.org
Learn code quality tools. Psalm, PHPStan, PHP CodeSniffer <– they prevent many bugs.
Pick a framework. You can start with Laravel. This will introduce you to modern coding standards. Once you settled in, I would suggest you move to Symfony. Because Laravel doesn’t offer much after you get used to modern coding style and architecture in the PHP ecosystem. Besides, it does damage which is the subject of whole another discussion anyway.
Learn OOP. Important. If you want to build modular and maintainable products (who doesn’t?) you must have the ability to model real-world problems with objects.
Like it is said in the top comment, you are just wasting your time. The Dunning-Kruger effect is no joke.
I completely understand where you are coding in a language you have just freshly got in to
I try to be encouraging to newbies too, but what’s endemic to the PHP community is a constant stream of people releasing products without a basic understanding of the ecosystem, and a barely surface understanding of the language itself. Often accompanied by verbiage about how their product is “lightweight” or otherwise has some advantage for not having followed any accepted standards. I’m not inclined to soft-pedal criticisms of those such things.
Thanks for the real look at the project.
See Model->composer.json
See my Classes to Model->Vendor->eMarket – is PSR and OOP.
I don’t use frameworks because I need more control over the code.
This project is multilingual, multi-template, multi-currencies, MVC. Payment, delivery and discount modules are completely independent and are in a separate Modules folder. Modules have their own classes and structure of the MVC.
Instead of ORM, I use PDO-wrap