LaravelのDIがAttributeでできるようになってたぞ!

執筆日: 更新日:
この記事の目次
chevron_right
chevron_right

時はLaravel v12.22.0。
アトリビュートでDIができるようになった。

そう、Javaでいうアノテーション。
あれでだ!

ということを今(v12.41.1)知り、喚起しているNな人です。

見比べていきましょう

<?php

class RepositoryServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        $this->app->singleton(UserRepositoryInterface::class, UserRepository::class);
				
        // ....
    }

<?php

#[Bind(UserRepository::class)]
#[Singleton]
interface UserRepositoryInterface
{
}

めっちゃ良くないですか?
interfaceにnewしたい実クラスを書くだけです。

これからいちいちproviderに書かなくて良くなり、楽になりますね!

[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。