Must read Building the next-gen Chevereto

Rodolfo

Chevereto Developer
Chevereto Staff
Joined
Oct 7, 2008
Messages
15,526
Points
237
Location
Chevereto HQ
Website
rodolfoberrios.com
It has been a while since I wrote a word about the next-gen Chevereto. Today I want to show and tell the actual work-in-progress behind Chevereto 4 and all the new business that I'm building here.

Spoiler alert: I don't have any dates yet, but I want to show you the work in progress.

Chevereto\Core

The framework behind Chevereto 4 is Chevereto\Core, a modern API-first web application framework that eases the development of extensible web applications. I've been working in this framework since May 2018, and a few weeks ago I started to publish its work-in-progress at GitHub.

The challenge was to create a framework capable of automating the routing process needed when describing controllers for an API based on HTTP methods. This evolved into a structure with invokable controllers, hooks (events), router, cache, error handling, debugging and of course, a console.

Most of you won't have to mind about this framework thing at all, but for anyone wanting to modify Chevereto and even make an income or reputation by sharing that code, this is a huge leap towards that direction. For example, developers won't be tied to the render imposed by the default theme as they could craft any kind of client (web, mobile, desktop, whatever) and interact with Chevereto using its API.

Modernized

Chevereto\Core uses modern tools like composer, phpstan, scrutinizer and phpdoc. The code follows the PSR-2 and Symfony coding standards, and it embraces strong typing and strict types.

It includes console commands and works so neat that most of my development process is now server-less. I can't recommend highly enough how great it feels to work with PHP like that. Here is what looks like:

2246

At this time I've commands for forge a HTTP request, inspect and run callables. Later I will add cache, dump and other most-wanted developer tools.

APIs built with Chevereto\Core use the json:api standard and are self-exposed: The API communicates what it does and how you have to use it. No documentation needed, no manual routing.

Current development state and release dates

The framework development is still ongoing and is reaching the point when I will have to start to migrate V3 codebase into it. Even for me, it is unknown how much time it will take me to achieve that migration because V3 has code that I haven't touched in years.

As some may know, I'm a one-man-army developer, and I ship my code soon as is shippable. Not a surprise that I'm slow, but that's because I'm doing way more than just coding like, for example, actually running the business or its software support (bugs). Don't get me wrong, I love to learn new stuff and push myself to the limit but I still have just two hands and, I don't have the manpower that others have.

Here, check how my GitHub activity changed when I made my development public (March 8):

2245


I will like to take the opportunity to thank @tomsit for helping me out with the forum and the Discord server. From December to March I was in a cave re-factoring the framework and the help that I got by not having to worry that much about support was like day and night for my development goals.

Questions welcome

I assume that there could be questions related to how to understand the framework code, its documentation, which template system is going to use, how it runs middleware, which components I'm using or why I'm not using a certain component, etc.

Feel free to ask anything, I will love to know what you want to build with Chevereto, how you want to integrate it with your existing system or what kind of customization you want to achieve.
 

ashkir

Core license
License owner
Joined
Feb 14, 2016
Messages
336
Points
125
I am wanting to build a script that pulls in all IDs in an album, so I can display a random image. Imgur had a really popular one they canceled out. Most servers can't handle it, but I wanna do this. It is the #1 requested feature.

Along with this, I would love to see how desktop apps, mobile apps, et cwork with an awesome api in the future :D
 

anyimg

Core license
License owner
Joined
Sep 10, 2014
Messages
56
Points
58
Your script has the potential of great success.
In my personal opinion you need an investor and a generous financier to make your project jump to a higher level.
 

Rodolfo

Chevereto Developer
Chevereto Staff
Joined
Oct 7, 2008
Messages
15,526
Points
237
Location
Chevereto HQ
Website
rodolfoberrios.com
Update 2019-04-16

Code quality

At this point the base framework concept has been proved and tested, meaning that now I'm just refactoring the code to meet higher standards. Having a clean and solid code base makes the software more appealing for third-party developers. Think in the code as a building, and third-party devs as people willing to work in that facility.

2255

The goal is to reach code quality = 10 and you can check the progress here: https://scrutinizer-ci.com/g/rodolfoberrios/chevereto-core/reports/ - For those wondering how other projects compare, check this list: https://scrutinizer-ci.com/explore/ (for example, you can check yii2 or cake).

This tool (scrutinizer-ci) scores your code based on cyclomatic complexity, coding standards, bugs, bad practices, etc. In other words, it presents a numeric representation of your overall code quality.

JSON:API

As I mentioned before, Chevereto\Core is adopting the json:api standard. Let me put some context on why this is so important: It allows Chevereto based websites to self-expose how you can interact with it, for everybody, in a "language" that other machines can easily understand. As Chevereto is evolving into a media hub, being capable of using Chevereto on top of your existing website or systems is a must and the key to reach there is the implementation of this standard.

The whole API registering and routing happens automatically, you only need to define the actual functionality. Of course, it supports HATEOAS.

This will allow stuff that is completely impossible or very hard to achieve with the current Chevereto V3 codebase. Things like completely unique user interfaces, themes, desktop and mobile applications are some of the basic examples on the new stuff that this will bring to the table.

Serverless PHP development

If you have worked with PHP, you may be familiar with the concept of running a server in your machine for being able to interpreter the language as an HTTP request resolver. Probably you have used XAMP or any of its alternatives to be able to see the outcome of a given PHP software or script. Maybe you even run Docker containers for that matter. The concept of serverless PHP development here that you don't need Apache, Nginx or any of these known subjects to develop software on top of Chevereto\Core.

As the server can be wrong in so many ways, the only way to separate these concepts is being totally agnostic of the target server you end up using in production. To achieve this, Chevereto\Core includes a console that can be used to run any HTTP request in the command line. For example, instead of opening your browser at http://localhost.com:8000/test, you simply run app/console request GET /test.

Developers working with Chevereto\Core only need the PHP executable and the framework provides all the commands needed to work and interact fast with the application.
 

Youssef

Network license
License owner
Joined
Aug 17, 2017
Messages
105
Points
68
Location
France
@Rodolfo can you in the version 4 of chevereto separate the translation of the backend and the front end because currently in version 3 all the translations are grouped in the same file.
Thank You
 

Rodolfo

Chevereto Developer
Chevereto Staff
Joined
Oct 7, 2008
Messages
15,526
Points
237
Location
Chevereto HQ
Website
rodolfoberrios.com
@Rodolfo can you in the version 4 of chevereto separate the translation of the backend and the front end because currently in version 3 all the translations are grouped in the same file.
Thank You
V4 aims to be an API so there will be several different "fronts", "backs" and several different translations for those.
 

Kayz

Founder license
License owner
Joined
Nov 2, 2013
Messages
78
Points
58
I will most probably get banned for saying this.... it's been spoken about many times.... i apologise for saying it....

Membership monetization options....? đŸ™ˆ
 
  • Like
Reactions: txus

Kayz

Founder license
License owner
Joined
Nov 2, 2013
Messages
78
Points
58
Sure, is just that any of these extras will be delivered as plugins. There should be official and third-party plugins so you will have plenty options for it.
Good call, i don't suppose you have an ETA for it?

I know i have been reading about memberships for the past couple of years now but it's never materialised.... it wont be anytime soon now would it?
 
  • Like
Reactions: txus

Rodolfo

Chevereto Developer
Chevereto Staff
Joined
Oct 7, 2008
Messages
15,526
Points
237
Location
Chevereto HQ
Website
rodolfoberrios.com
Good call, i don't suppose you have an ETA for it?
No, I don't have a beta yet but the development is Open Source and you can check the work in progress here: https://github.com/rodolfoberrios/chevere

I'm in the first phase, developing the new framework that powers Chevereto. That is very close to a production-ready release... After that, I will start phase two which is update the actual Chevereto code base into the new system. The result of this will be V4 (modern Chevereto) and after the usual 3 months crash course (new major release issues) I will start to work in all the most wanted plugins like subscriptions and anything money making related.
 
  • Like
Reactions: Kayz and Youssef

Mick59320

New Member
Joined
Apr 14, 2019
Messages
8
Points
3
Hello @Rodolfo you enable upload in a album if the user have the url of the album but is not the owner?
Like collaborative album.

Thks.
 
  • Like
Reactions: imgyukle

Youssef

Network license
License owner
Joined
Aug 17, 2017
Messages
105
Points
68
Location
France
Hi @Rodolfo, Is there any news about version 4 of chevereto ? because I consulted github and there has been no update for 2 weeks.
 

Rodolfo

Chevereto Developer
Chevereto Staff
Joined
Oct 7, 2008
Messages
15,526
Points
237
Location
Chevereto HQ
Website
rodolfoberrios.com
Hi @Rodolfo, Is there any news about version 4 of chevereto ? because I consulted github and there has been no update for 2 weeks.
I've been working in 3.X for a the past two weeks. I added a money back guarantee, changed some words in the website, fixed some wrong documentation and released a new revision.

I'm sorry but I can't work in 4 and 3 at the same time.
 
  • Like
Reactions: bilderupload

Youssef

Network license
License owner
Joined
Aug 17, 2017
Messages
105
Points
68
Location
France
hi @Rodolfo I have just seen github and I saw that the work progress can also use the labels in issues, in order to know the bugs, the remaining features, improvements, ... it gives an idea of the work that remains.



2350
 

Youssef

Network license
License owner
Joined
Aug 17, 2017
Messages
105
Points
68
Location
France
Hello @Rodolfo is what v4 advance towards a release of an update. Because it's been more than two that I buy the script and I can not get any income. I need the features of version 4 to make my activity profitable: payment support, other format support (audio, video ...). Can you please speed up the development?