Answer the question
In order to leave comments, you need to log in
Symfony enterprise scale application?
Good afternoon.
On Habré I found a link to an article:
Symfony modular, microservice-ready architecture. ...
and
Part 2
Repository
Interested in the opinion of the author's approach. He changed the file structure of the project to Symfony 6, separated the frontend (by the author of Angular) from the backend (REST API), defined the application structure on the backend with division into modules, even divided the database according to the principle of the minimum required data for each module, even at the cost of data denormalization and .etc. The author accompanies each of his thoughts with theoretical premises and seems to be even logical. Question: how does this solution correspond to modern trends in building an enterprise-level application? I am at a crossroads. Required: to rewrite the ERP of the level of a small machine-building enterprise, the WEB interface of which is used by all enterprise services, from the personnel and production department, to storekeepers, quality control workers, etc. Used self-written and non-faint-hearted CMS ( PHP + JavaScript ), MySQL, ~ 150 users at the same time, > 100 tables. At the front-end, they started using JQuery much later, before that vanilla JS, new PHP code was already written using OOP and PSR. Tons of Chinese-Hindu code at its worst, complete disregard for all programming rules and principles, no CSS, all styles like style="background-color:red" etc. I've been planning for a long time, I put it off for various reasons, only now, in fact, I began to collect all the data in a heap, it has become too dreary to support IT, the ballast is too heavy. At first I wanted to take Symfony as is, as they say, with Twig and Doctrine, fasten the frontend with Encore and VueJS, create Entities, write the necessary services, etc. And then I read the article. Symfony experts are requested to comment-criticize this article, advise,
Thank you.
Answer the question
In order to leave comments, you need to log in
the pain of creating ERP is the difficulty of implementing the ERP itself,
what language is there? the tenth question; the use of such a complex framework as
synfony
only complicates the matter
; few people do it
In my opinion, such an application should be written on Laravel, front vue, react, angular. Unless, of course, you switch to another language on the back
Write on what you know best. If there is no experience in symphony, then it will be very difficult to remake such a legacy and teach at the same time. The framework itself does not solve the problem.
In general, there are two different tasks - front and back.
On a back - depends on how competently the database is made. If it is correctly normalized, then it doesn't matter, by and large, which framework. As in the comments above, I would suggest laravel after all. Out of habit, the doctrine in the symphony is still a beast. Personally, in some projects I connected eloquent from laravel separately (library for working with the database).
And about the front - you need to look at how the requests are made. If it’s more or less normal, you can generally do it right on vuejs first (well, or on something else, it’s just the easiest). And then decide with the back. Embedding vuejs in symphony\laravel is not a problem.
Enterprise-scale applications are written in Symfony very easily and conveniently, alone in about 2-3 months.
But with one huge note - work experience and knowledge of the framework.
Based on your experience, you don't have much. It is now possible to create a project out of the box in two versions, a traditional application (many components are installed, including a template engine) and an application for microservices (it is convenient when you know exactly what you need and how to install it).
The third option is to use only the individual components you need, as many cms do.
What difficulties will arise:
1 - the transfer of current tables and data, the normal generator for the doctrine was killed a few versions ago.
2 - ready-made users can be said no, there is a minimum functionality that needs to be expanded.
3 - elaboration of the structure of url addresses, access rights, data transformation.
According to the style of the code inside the page, style="background-color:red", this does not mean anything, if you do not know the full story, perhaps the deadlines were running out, there was no developer front, or they were planned, and they were fired.
Laravel for the initial prototype, when there is no experience in developing similar systems, is better suited. After that, you will most likely run into performance, but it’s possible that it will do.
My path would be something like this.
Look at the structure of the database.
To study how the system of rights, access levels works
Look at ready-made REST frameworks, perhaps the solution has already been written.
If there is no ready-made, only then start doing it yourself.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question