Module and Extension Development in Suitecrm 8

I have been looking at the docs, and I am a bit confused with the new way Modules and Extensions work.
My understanding is that Modules can contain multiple Extensions. If my goal is to create custom views, should I start by creating a Module using the Developer Tools Module Builder and then add my Extension to that Module?
Additionally, when it comes to creating the Extension, what’s the recommended approach: writing it in PHP or using Angular?
I’m aware there are multiple ways to code and create modules and extensions in SuiteCRM, and I’d like to know which approach is currently recommended for creating custom views and handling the requests to the backend?. Any help would be appreciated

My answer won’t be very helpful to get you actually doing the work, but it might at least clear up some confusions…

Old versus new

Old is legacy code. It has module builder. I don’t think it’s worthwhile to start developing new modules in this old framework.

New is a Symfony PHP backend, and an Angular front-end, connected though a GraphQL API (used not only for external integrations, but for every internal data query). There is no Module Builder, and little documentation. I don’t think it’s easy to start developing new modules in this new framework. On the other hand, much of what you need to learn is standard Symfony or Angular stuff, so generic tutorials can be a great help even if they don’t mention SuiteCRM.

Back-end versus front-end

A module needs both.

The back-end is extensible in the Symfony way. You can decorate or override essentially any class in the backend.

I know very little about the front-end, but I guess that, as a modern framework, Angular has its own extensibility architecture.

Modules and views

I guess that, in order to put the pieces together, we will need some notion that goes beyond generic Symfony and Angular, we need details about what a SuiteCRM v8 module is, what a view is. Currently, our best shot at this is to try to copy some core module…

… or to look for specific commits in the v8 history to see the moment when a legacy module was moved to become a new v8 module. I guess that should give you a basic idea of what to do to. I’ve been meaning to do this kind of archeology to learn more v8 stuff, but just haven’t had the time.

4 Likes

thank you for taking the time to write this cleared some of my confusion. I’ll have to look more into it then

1 Like

so what`s the new way to make a simple custom module in suitecrm8 (without Module Builder?)? i can not find any documentation that shows how to create a simple custom dummy module without moduleBuilder.

where can i find the coremodule code for e.a. Accounts to check how this was changed to new style?

1 Like