A very basic question probably...
But what are the differences in Joomla terms between:
If I am a developer for Joomla what and why should I name it a module, component, plugin?
Joomla Stack Exchange is a question and answer site for Joomla! administrators, users, developers and designers. It only takes a minute to sign up.Sign up to join this community
I knew a joomla doc page on it, but i can't find it now. Here is what i remember from that page. Assume joomla as an OS like windows.
Module is the most limited one functionally cause you have to assign it to somewhere on the Components view, so it's like widgets of the OS.
Plugin is like the background services of this OS, which are running on every request, they can change views but better not and mostly just uses enquemessage system to show stuff to the user.
Components are like Apps and they could handle many routes and generate content part for the pages.
You can use plugin for all the needs but its against generalization and maintainability meaning you can't easily see what's come from where anymore and easily get confused in middle of the project.
The component is used to create content for a page. The linking within Joomla is between components and only links to component views can be added to the menu.
Modules are used to place additional content on pages of a web site, along the main content created by the component. Ususally this is done by side, top or bottom bars, while the main content is in the center.
Plugins are used to interfere with the calling stack of the Joomla framework at different points, not necessarily producing any output at all. A plugin is called on specific events, happening within the processing of a request.
An example would be if you have a component storing user specific data. If you want this data to be deleted once the user gets deleted through the user admin in the backend, you write a plugin responding to user deletions. See https://docs.joomla.org/Plugin/Events for a list of events present in the standard Joomla implementation.