No, it doesn't run on PHP 7.2!
The neoan-core Lenkrad doesn't play the compatibility game. Being backward compatible to older PHP versions or playing nicely with a plethora of ecosystems is a challenge that not only slows down development, but results in verbose usage and unoptimized core code.
I wanted to have a framework for the next generation. I wanted to finally have a framework that let's me write business logic the way I want it to behave.
Let's compare:
In Laravel, I need a migration and a model to make the Eloquent ORM work:
the migration
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('password');
$table->string('email')->unique();
$table->timestamps();
});
}
public function down()
{
Schema::drop('users');
}
};
And the model
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'users';
}
We might be used to this, but what we really want to write is:
class User extends Model
{
#[IsPrimaryKey]
public readonly int $id;
public string $name;
#[Transform(Hash::class)]
public string $password;
#[IsUnique]
public string $email;
use Timestamps;
}
The advantage is not only easier reference and less verbose code. Your IDE will be able to better help you with navigating objects through auto-completion:
$user = new User();
$user->name = 'Adam'; // name was suggested, as it's a property of the model class
...
Interested?
If you have PHP8.1 and interested in seeing how a framework could actually make your life easier, try it out:
composer create-project neoan.io/starter-project [my-app]
The package is light in dependencies and up & running in seconds. Feedback highly appreciated!
Top comments (0)