Maravel vs. PHP Frameworks Benchmarks: Breathing Down the Neck of the Microframework Elite
RPS & Memory peak These are the results for a“Hello World” benchmark thanks to https://github.com/myaaghubi/PHP-Frameworks-Bench on an old desktop system: PHP 8.3 Ubuntu Mate 24.04 GIGABYTE GA-M52S-S3P rev 1.0 AMD Phenom ll x2 550 3.1 ghz 8GB 4x4GB Samsung M378T5263AZ3-CF7 PC2–6400U-666 4GB 2Rx8 800MHz 240-pin DIMM Non-ECC DDR2 GPU NVIDIA Corporation G73 GeForce 7300 GT ( rev a1 ) HDD IDE Note:...
New, Faster, Safer Maravel Micro-Framework Router
Maravel-Framework 10.67.0 brings a new, faster and safer Router via Maravel 10.52.48. It all started after I finished refactoring the deferred service providers to gain boot speed (see history: Maravel-Framework 10.64.17 brings domain routes restriction to Maravel Micro-Framework, The Zero-Cost Boot Hack Every Maravel Developer Needs to Know Maravel 10.52.47 Doubles Lumen’s 10 Throughput in PHP...
Maravel 10.52.47 Doubles Lumen’s 10 Throughput in PHP 8.3
Maravel-Framework 10.66.8 enables Maravel Micro-Framework 10.52.47 to obtain with 107% more RPS than Lumen 10 in a “Hello world” https://github.com/myaaghubi/PHP-Frameworks-Bench benchmark on PHP 8.3. This result comes after the deferred providers logic in Maravel was improved. In previous benchmarks, Maravel was with 62% faster than Lumen 10 in PHP 8.1: Press enter or click to view image in...
The Zero-Cost Boot Hack Every Maravel Developer Needs to Know
I had to configure the mail on Maravel. The Lumen usual path would had been: // bootstrap/app.php $app->configure('mail'); $app->alias('mail.manager', Illuminate\Mail\MailManager::class); $app->alias('mail.manager', Illuminate\Contracts\Mail\Factory::class); $app->alias('mailer', Illuminate\Mail\Mailer::class); $app->alias('mailer', Illuminate\Contracts\Mail\Mailer::class);...
Maravel Micro-Framework 10.32.35 With Built-in CruFd Freemium MaravelQL is Out
Version 10.52.35 of Maravel Micro-Framework is out with built-in cruFd (Create, Read, Update, Filter and Delete). Forget about implementing filters for each of your resource. MaravelQL handles that for you. It requires the latest Maravel-Framework 10.65 and the laravel-crud-wizard-free lib suite composed of: laravel-crud-wizard-free laravel-crud-wizard-decorator-free...
Segregated Relations Maravel-Framework 10.65
Now you can define your relations like this, in one place in your model: // model protected function segregatedRelationsDefinitionMap(): array { return [ 'relName' => fn(): HasOne => $this->hasOne(Model::class, 'model_id', 'id'), // Reuse the segregatedrelation inside another segregated relation: 'relNameScoped' => fn(): HasOne => $this->relName()->where('col', '=', 'text'), 'relNameScoped2' =>...
RFC Segregate Eloquent Relation Definition Maravel-Framework 10.65
Challenged by this discussion which proposes PHP attributes for the relation definition to avoid the method definition issues that arise for identifying if a method is relation or not in an active record, after this PR you can segregate the relation definition from the model’s methods without using Reflection. More details.
Maravel-Framework 10.64.17 brings domain routes restriction to Maravel Micro-Framework
This was the missing piece after version 10.64.14 of Maravel-Framework brought full view support to Maravel, including view:cache, session (CSRF), cookie and FormRequest. domain keyword can be used as single valid url or as list of valid urls. The global helper function route(‘alias’) will return full URLs instead of URIs. Check the documentation for more.
Maravel-Framework 10.64.14 Boosts Maravelith API RPS UP 90% And Memory Down 3%
Maravelith API vs WEB RPS increased by 90% and memory decreased by 3% after I converted View, Cookie and Session service providers into deferred providers in version 10.64.14 of Maravel-Framework that also brought full view support to Maravel as well, including view:cache, session (CSRF), cookie and FormRequest. As mentioned here, it is not fair to compare Maravelith WEB with Maravel API or...
Maravel-Framework 10.64.8 Brings Session and Cookie support to Maravel
After version 10.64 introduced the FormRequest to Maravel, version 10.64.8 brings Session and Cookies support also as OPT IN. The reason for this feature is that you might need to use csrf tokens and/or cookies in your views WITHOUT migrating to Maravelith and trading boot speed just for that. Besides this, the Session, Cookie and View Service Providers are now deferrable in Maravelith. The...
Maravel-Framework 10.64 Brings Resolving Events Cache And FormRequest to Maravel
Because Maravel-Framework is a DI centered framework, the efficiency of its container is crucial. Version 10.64 introduces FormRequest in Maravel Micro-Framework 10.52.25. Version 10.64 of Maravel-Framework removed the \Illuminate\Foundation\Providers\FormRequestServiceProvider, leading to faster registration and boot times. Please note that using $app-beforeResolving, $app->resolving or...
Maravel-Framework 10.63.5 finished moving 24.7k lines of code to maravel-framework-dev
10.8k dev commands 10.2k test classes 3.7k remaining test classes in v10.63.5 The tests using these MOVED classes must be updated with \MacropaySolutions\MaravelFrameworkDev\… instead of Illuminate\… FQN prefix. The old tests will fail for sure because of this but production code should not if it does not use fake/test code/classes.
Maravel-crud-wizard-free lib suite got new speed improvement
Versions 2.0.0 of laravel-crud-wizard-decorator-free and version 7.1.0 of laravel-crud-wizard-free introduce an important response time improvement by eliminating useless json_decode and json_encode calls between the controller and the middlewares. Because the controller resolves the JsonResponse from DI, the CrudProvider registers a binding for it in which the json_encode is skipped when the...
Maravel Framework 10.63 avoids runtime reflection on DI
Because I dislike runtime reflection, I improved the autowiring:cache command to include also constructors, not just methods. If the concrete has contextual bindings (and constructor parameters) the old reflection is still used. If the parameters are sent as array list, concrete will be instantiated directly with them. On failure, it will default to the old reflection but at the cost of...
Updated Maravel Micro-Framework and Maravelith Documentation Available
The official web page https://maravel-framework.com/docs/ now holds links to the official updated documentation of the Maravel-Framework’s Templates. Maravel Micro-Framework Docs Maravelith Docs Maravel-Framework Wiki The docs were updated, starting from Lumen and Laravel 10 docs, with the fixes and improvements up to Maravel-Framework 10.62.8.
