by 2014 there was only Uru and myself. He moved on to a non-php job, and I suffered from quite serious brain damage, from which I am only very slowly recovering. One of the problems I still have is poor memory, which means I have to code with the manual besides me, as I can't remember syntax very well. And mental activity tires me very quickly, so I can't do much in a day.
I used the good days, together with the devs in my company, to make sure the code remained maintained, and compatible with current PHP versions, so current dev runs fine on PHP 8.
As to 2.0:
At the time there was a strong movement towards isolation and testability. While all very fine, as the work got on, I more and more started to realise that it was slowing becoming a Symfony / Laravel style monster, and that is not why people select Fuel. They select it because it is small, simple and easy to understand. And with the above happening, everything grinded to a halt.
I am still committed to Fuel (otherwise we wouldn't have maintained it) and Fuel is still the framework of choice of my company, and we have quite a few apps in development and maintenance, one already since 2011. Started on PHP 5.3.3, now runs on PHP 8, no problem.
When my health improves further, I would like to start working on it again. But more with a practical focus.
The original 2.0 architecture was basically a completely new design, which would have caused a problem for existing applications and their continuity: how long to maintain two frameworks?
Instead, I would like to redesign and upgrade Fuel more organically, so only one codebase has to be maintained, and users can upgrade to newer versions without (much) impact to existing applications. Even if they are 10 years old.
A few things we (as a Fuel dev company) would like to do: - replace the autoloader with a PSR4 loader
- merge modules and packages into PSR4 loadable components
- replace the underscore by a namespace ( \Controller\Welcome instead of Controller_Welcome)
- simplify the request/response flow code
- introduce a root namespace for the app (to not contaminate the namespace root)
- split result rendering from the controller code (return data only, render based on requirements)
- OpenAPI support
- lift the PHP requirement to 7.4 / 8.0 (depending on timing)
- implement strict / typing
- better tesability and code coverage for the framework code
I used to be very interested in version 2, but gradually I lost this interest for the following reasons: Everything I need is done right now (based on my usage and knowledge and comparison with other frameworks, until recently Laravel didn't even have a temporal model)
Better customer support and faster code development
Stable framework and avoidance of stupid changes and behaviors in other frameworks.
Easy training of new employees (all use the same framework and version for several years)
High cost support and development of older versions that we do not have.
To hire a programmer in other frameworks, the version of the framework must be mentioned !!
fuelphp is very fast.
I think small changes are better than changing the whole framework and in version 2 these changes are inevitable and have a lot of time and cost for everyone.
@Harro, we have checked 1.9/dev but it seems migrations do not work properly. We have switched to dev-1.9/develop in composer.json:
"fuel/core": "dev-1.9/develop",
"fuel/auth": "dev-1.9/develop",
"fuel/email": "dev-1.9/develop",
"fuel/oil": "dev-1.9/develop",
"fuel/orm": "dev-1.9/develop",
"fuel/parser": "dev-1.9/develop",
But php oil r migration:fresh returns an error: Uncaught exception Fuel\Core\FuelException: 0 - Migration class "Fuel\Migrations\Currency" must include public methods "up" and "down" in /var/www/platform/fuel/core/classes/migrate.php on line 489
It seems it is related to PHP8 change: The ability to call non-static methods statically has been removed. Thus is_callable() will fail when checking for a non-static method with a classname (must check with an object instance).
So if I change the code to, for example: if ( ! is_callable(array(new $class, 'up')) or ! is_callable(array(new $class, 'down')))
It works. How did you manage to do migrations on PHP8 without this change on 1.9/develop? Is there something I am missing?
I've checked our local Fuel masters, and for fuel/core:
[root@dev] $ git status On branch 1.9/develop Your branch is up to date with 'origin/1.9/develop'.
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: classes/finder.php
modified: classes/migrate.php
modified: classes/package.php
So we have local fixes that someone made but not committed (which also means they aren't synced with github.
I'll check them now, push them, and then check who I need to cover in tar and feathers....