고속 개발: 작동하는 데 걸리는 시간

아니요, PHP 7.2에서는 실행되지 않습니다!



신생 코어 Lenkrad는 호환성 게임을 하지 않습니다. 이전 PHP 버전과 역호환되거나 과다한 생태계와 원활하게 작동하는 것은 개발 속도를 늦출 뿐만 아니라 장황한 사용과 최적화되지 않은 핵심 코드를 초래하는 문제입니다.

다음 세대를 위한 틀을 갖고 싶었습니다. 나는 마침내 내가 원하는 방식으로 비즈니스 로직을 작성할 수 있는 프레임워크를 갖고 싶었습니다.

비교해보자:

Laravel에서는 Eloquent ORM이 작동하도록 마이그레이션과 모델이 필요합니다.

마이그레이션


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');
    }
};




그리고 모델

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{

    protected $table = 'users';
}


우리는 이것에 익숙할 수 있지만 우리가 정말로 쓰고 싶은 것은 다음과 같습니다.


class User extends Model
{
   #[IsPrimaryKey]
   public readonly int $id;
   public string $name;

   #[Transform(Hash::class)]
   public string $password;

   #[IsUnique]
   public string $email;

   use Timestamps;
}



이점은 더 쉬운 참조와 덜 장황한 코드만 있는 것이 아닙니다. IDE는 자동 완성을 통해 개체를 탐색하는 데 더 나은 도움을 줄 수 있습니다.

$user = new User();
$user->name = 'Adam'; // name was suggested, as it's a property of the model class
...



관심 있는?



PHP8.1이 있고 프레임워크가 실제로 삶을 어떻게 더 쉽게 만들어주는지 알고 싶다면 다음을 시도해 보십시오.
composer create-project neoan.io/starter-project [my-app]
패키지는 의존성이 적고 몇 초 만에 가동 및 실행됩니다. 피드백을 높이 평가합니다!

좋은 웹페이지 즐겨찾기