Ich schaue auf den Code von Laravel Festify. Im Dienstanbieter können Sie Aktionsklassen registrieren, um bestimmte Jobs wie folgt auszuführen: < /p>
Code: Select all
Fortify::createUsersUsing(CreateNewUser::class);
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
Diese binden die angegebene Aktionsklasse an eine Schnittstelle im Service -Container.
Code: Select all
interface CreatesNewUsers
{
/**
* Validate and create a newly registered user.
*
* @param array $input
* @return \Illuminate\Foundation\Auth\User
*/
public function create(array $input);
}
Aber die Schnittstelle updateUserProfileInformation Implements erscheint seltsam:
Code: Select all
/**
* @method void update(\Illuminate\Foundation\Auth\User $user, array $input)
*/
interface UpdatesUserProfileInformation
{
//
}
< /code>
Warum nicht eine Methodensignatur auf die übliche Weise definieren? So etwas: < /p>
interface UpdatesUserProfileInformation
{
public function update(\Illuminate\Foundation\Auth\User $user, array $input): void;
}
Was ist der Zweck, stattdessen eine @Method Annotation zu verwenden? Was erreicht es?
Ich schaue auf den Code von Laravel Festify. Im Dienstanbieter können Sie Aktionsklassen registrieren, um bestimmte Jobs wie folgt auszuführen: < /p>
[code]Fortify::createUsersUsing(CreateNewUser::class);
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
[/code]
Diese binden die angegebene Aktionsklasse an eine Schnittstelle im Service -Container.[code]interface CreatesNewUsers
{
/**
* Validate and create a newly registered user.
*
* @param array $input
* @return \Illuminate\Foundation\Auth\User
*/
public function create(array $input);
}
[/code]
Aber die Schnittstelle updateUserProfileInformation Implements erscheint seltsam:
[code]/**
* @method void update(\Illuminate\Foundation\Auth\User $user, array $input)
*/
interface UpdatesUserProfileInformation
{
//
}
< /code>
Warum nicht eine Methodensignatur auf die übliche Weise definieren? So etwas: < /p>
interface UpdatesUserProfileInformation
{
public function update(\Illuminate\Foundation\Auth\User $user, array $input): void;
}
[/code]
Was ist der Zweck, stattdessen eine @Method Annotation zu verwenden? Was erreicht es?