Services système
Définition du service
Le moyen le plus simple est d'utiliser la ligne de commande pour générer un service :
php think make:service FileSystemService
Le service créera automatiquement deux méthodes vides : les méthodes d'enregistrement et de démarrage.
Méthode d'enregistrement
la méthode de registre est généralement utilisée pour enregistrer des services système, similaires aux fournisseurs de services dans Laravel, par exemple :
<?php namespace app\service; use my\util\FileSystem; class FileSystemService extends Service { public function register() { $this->app->bind('file_system', FileSystem::class); } }
la méthode de registre ne nécessite pas de paramètres
<?php namespace app\service; use my\util\FileSystem; class FileSystemService extends Service { public $bind = [ 'file_system' => FileSystem::class, ]; }
la méthode de démarrage
la méthode de démarrage est utilisé pour définir les opérations qui doivent être effectuées avant de démarrer un service système. Par exemple :
<?php namespace think\captcha; use think\Route; use think\Service; use think\Validate; class CaptchaService extends Service { public function boot(Route $route, Validate $validate) { $route->get('captcha/[:config]', "\think\captcha\CaptchaController@index"); $validate->extend('captcha', function ($value) { return captcha_check($value); }, ':attribute错误!'); } }
Enregistrement du service
Définissez le service système dans le fichier public global service.php de l'application, et le système terminera automatiquement l'enregistrement et le démarrage. Par exemple :
return [ '\app\service\ConfigService', '\app\service\CacheService', ];
Si vous devez enregistrer un service système dans votre extension, ajoutez d'abord une classe de service dans l'extension, puis ajoutez la définition suivante dans le fichier composer.json de l'extension :
"extra": { "think": { "services": [ "think\captcha\CaptchaService" ] } },
Le système l'exécutera automatiquement après l'installation de l'extension La commande service:discover est utilisée pour générer une liste de services et l'enregistrer automatiquement lors de l'initialisation du système.