Must read Building the next-gen Chevereto


Chevereto Developer
Chevereto Staff
Hello upgrade now payment plan for albums and join disk space.

Hello upgrade now payment gateway or plan for albums and join disk space sub categories.
It has been already planned, however is just a thought nothing concrete to talk about.

Hi @Rodolfo

How about adding multi-domain support. Like we can add any domain in the backend with shorty URLs and people can choose the domain from the front end.

No word on that. Probably won't be added in the core.


Chevereto Developer
Chevereto Staff

Documenting is ongoing, at this time I've already documented few components of the Chevere framework which I'm about to introduce in this post.

Keep in mind that Chevereto V4 will be built on top of the Chevere Framework, which is in charge of providing the elements needed to create and organize the application logic.


Controllers in Chevere are classes which define how the application will handle incoming user input, which refers to any action that the application should address. Controllers will be used in any situation where the application needs to be instructed "to do" something.

Its application will be in HTTP routing (wiring HTTP requests to a Controller), service workers, commands, and any other place where the application will process direct user input.


Hooks is the system which allows to define extensible code. Using hooks, any class can define hook sections where third-party logic will be allowed to be executed. Hooks will be used to provide the plugin system.


Str is a collection of string related functions, offering string manipulation (Str), asserting (StrAssert) and bool (StrBool). Str components will be used to work with strings.


Message is a component which allows to create rich system messages. Message will be used to offer a common standard for system messages, with the flexibly to cast the message string for console, HTML or text plain.


Filesystem is a collection of classes that interact with the filesystem. It will be used to carry any filesystem related need like create a file, manipulate its contents, handle directories, etc.


Cache is the system used to cache system files. It will be used to cache application states which will make applications works faster.


It seems that the documenting process will take about a month, I will keep you updated.


Chevereto Developer
Chevereto Staff

Documenting is still on progress, I've added Filesystem, Introduction, and Routing, and last days I've been working in an improved plugs system.

(A plug is logic that it is injected on runtime, based on previously registered plugs).

The new plug system that I'm developing is all about allowing multiple plug types, not only hooks. At this time the plugs built-in are Hooks (allows to pass a variable to third-party logic) and EventListeners (notify to third-party logic that something happened). I've made the framework in such way that we could have countless plug types in the future to satisfy any given application architecture.

How plugs works?

Let's say that you have a concrete action, like signup an user for your website. Using the EventableInterface (defines an object which implements events) you can name "events" for the logic, like "onEmailSent", which will be broadcast to all EventListeners registered for that EventableInterface. That way, it notifies when something happens.

A event listener comes handy when you want to react to something, for a "onEmailSent" event it could also trigger an email to an admin, send a sms, log to a file, whatever.

On the other hand, in some cases you will need to fill-in missing arguments of perhaps alter an image after it has been validated (like applying a filter). Using the HookableInterface (defines an object with implements hooks) you can allow third-party logic to enhance the default functionality by altering the data.

Of course, these are just two types of plugs (built-in ones) and I hope to add more types as it gets needed.

Why should I care?

This is perhaps the most common thought when reading this topic, so I will try to tell you why this should matter to you.

Plugs are the base for plugins (did you see it coming?) which is the system that defines how Chevere applications will be extended. All the plugins, add-ons, or whatever you may want to add to Chevereto will be based on this system.

In other words, it will be the most used system for third-party developers.


Chevereto Developer
Chevereto Staff

Hey there, I've another progress report.

The architecture is being documented, which basically outlines what is the thing.
There are some concepts still pending, like the request processing and the loop runner. Also I've to document the progressive approach of the framework.

Hope that you can get a better idea on what's this all about.