This question has been listening to me for quite some time, I want to create cms, School Mnagement System, to be more specific, and what is important for me, makes this system plugin based, so that administrators can download and install plugins directly from the admin panel, for sure just like wordpress.
Now I read about wordpress Hooks , Actions and Filters , and to be honest, I can say that I'm just a little familiar with their functionality, but to apply the same functionality to the Laravel App ... it's a little difficult to understand, at least for me.
I also looked for this question and found that almost everyone offers packages, but while packages can work fine for other developers who want to use the packageโs functionality, they cannot be easily installed by the user, and are not familiar with any programming language, and this is exactly what i want in my application.
Now, what I mean so far, as in Wordpress Actions and Filters , almost everything that I would like to use in Wordpress theme files (to make this part of the code flexible for adding plug-in functionality) should be called as functions, and a call of this Wordpress do_action () function is a kind of required path, which of course makes sense.
In this case, plugin developers can simply call add_action () / add_filter () in their files and put their plugins in the application stream. So that...
Basically, I ask here:
- How to apply this functionality to a laravel application?
- Is there an easier way than calling everything with the do_action () function?
- Do I have to write some kind of file management module for downloading and updating plugins?
Again, I have to say that I am not very well versed in how Wordpress can achieve this functionality. Therefore, I may be mistaken in relation to the description mentioned above, but please, I appreciate any clarification on this subject if you can.
Thanks in advance for your understanding.
* PS I tried to be as clear as possible about the problem, and I am not looking for any specific method for the system that I am developing. I want to know the general / best methods (if there is a better way) to achieve this functionality, preferably in Laravel, but the general algorithm will still be very appreciated.
I know that many people have the same question and they solve this problem, so if you even provide a link to a useful article, it would be great. *