A
A
Anton Dyshkant2017-03-20 20:19:32
symfony
Anton Dyshkant, 2017-03-20 20:19:32

What is the best PHP framework to use for writing a modular CMS?

Good afternoon.
I was faced with the task of developing a site, "under the wing" of which heterogeneous functionality should be available, which, moreover, will constantly expand in the sense of adding fundamentally new sections (perhaps by different people). Those. functionality expansion should be provided from the very beginning so that subsequent integrations of new parts of the application are as automatic as possible.
For brevity, I will call this heterogeneous functionality modules (although I'm not sure if this is the right word).
I want to emphasize that a module does not mean just some useful functionality, not some new library, but a set of software tools and data that allows you to display some information on the site "from and to", i.e. each module must have a controller, its own models, classes for working with the database, views, and, most importantly, the program code of the client part of the application (all this must correspond to interfaces common to the entire application).
I imagine the solution to this problem as follows (thesis):

  • The application should consist of CMS and module extensions. (Actually, I'm not sure if this will really be a CMS in the full sense of the word, but I will use this term.)
  • The CMS should have the ability to export and import modules.
  • Modules should be independent of each other, but dependent on the framework and the codebase associated with it (i.e. they should not reinvent their own wheel, but use a common application codebase).
  • Modules and CMS should have a common authorization system, but separate user role systems.

In addition, to manage this system:
  • The CMS should have its own admin panel through which you can manage things related to the entire CMS.
  • The module must have its own admin panel integrated into the CMS admin panel.

Also, most likely, you will need to provide access to these modules through various subdomains in the form "foo-module.site.com/bar-action-of-foo-module"
Something similar (in a VERY first approximation) I saw in the CMS Joomla !, however, it still has more CMS-ness, and I need many times less (I'm not trying to create "another CMS" for users, but I want to make my work a little easier by separating general and private functionality into different baskets). In Joomla! the closest analogue of my "module" is a "component", in which (as in the whole Joomla!) the HMVC pattern is implemented, about the details of the "good" implementation of which I did not find anything except beautiful block diagrams drawn by users of the same Joomla!.
In general, a large set of wishes is outlined above, but the questions are:
  1. What existing PHP framework is most suitable for writing this CMS? I am now looking towards Symfony2 and Yii2: do they have the ability to use the HMVC pattern, or maybe this will not be necessary?
  2. If suddenly something from what I have said above leads you to bewilderment - I will be glad to hear criticism regarding the formulation of the problem or the solutions I propose.
  3. If you know any good approaches to solve the above problems - I will be very glad to hear them.

UPD: I ask the question "which framework to use" because I do not know the advantages of existing frameworks for solving the described tasks. Therefore, if it’s not difficult for you, in addition to the actual name of the framework, indicate the reasons why, in your opinion, this framework is most suitable (compared to other frameworks) for solving the tasks described above . Thanks for understanding.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
G
GrimJack, 2017-03-20
@GrimJack

Now lovers of their own will come running and will drag the blanket in all directions (symphony, ui2, laravel and others). The topic is hackneyed, the conclusion is to write on what you can / conveniently

M
Maxim Timofeev, 2017-03-20
@webinar

Yii2 is MCV. HMVC in yii2 is implemented only with an ax and a shovel, which is highly discouraged by the developers of the framework and is considered idiotic. Modular structure - no problem. Write a CMS without problems.

N
NesCafe62, 2018-02-25
@NesCafe62

I had exactly the same idea a few years ago (I used Joomla but ran into the fact that it is difficult to do customization in it and some things are not possible at all without changing the core). The idea was to make the same CMS with Joomla capabilities only for programmers and modular with installable / uninstallable parts (modules also conceived not just libraries with code, but also with their own visual interfaces) I
started writing my own framework , made several projects on it. A couple of years later I learned about yii, symfony and others. Now they have developed well since their first versions.
Of course, I would not recommend using my framework yet: there is no documentation (in the 2.0 version there is only one page) and people who are used to writing in yii and other ready-made solutions are skeptical about it.
Now I'm writing 3.0 with Composer support, and other wishes.
Any frameworks are good if you know how to use them.
ps I will be glad to welcome everyone (on the git) who asks the same questions as the author, and is ready to participate in bringing this idea to life.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question