State processor
State processor sẽ góp phần process
application state của bạn lên Hasura.
info
Đây là tính năng nâng cao dành cho những ai muốn xây dựng các processors riêng góp phần khi thực thi persist application state.
- Đối với Laravel users
- Đối với Symfony users
Đầu tiên bạn cần tạo class processor để tham gia tiến trình persist application state:
namespace App\Hasura;
use Hasura\Metadata\StateProcessorInterface;
final class ReloadStateProcessor implements StateProcessorInterface
{
public function process(ManagerInterface $manager, bool $allowInconsistent = false): void
{
$manager->reload(true, true);
}
}
Sau đó bạn cần đăng ký class trên vào metadata.state_processors
trong file config/hasura.php
:
'metadata' => [
'state_processors' => [
...
\App\Hasura\ReloadStateProcessor::class
]
]
Vậy là xong, khi bạn thực hiện persist application state nó sẽ được gọi kèm
tip
Các processors đều được khởi tạo thông qua app container nên bạn có thể inject dependencies services nếu cần.
Bundle đã cấu hình sẵn auto configuration tag hasura.metadata.state_processor
dành cho
các classes implements StateProcessorInterface, khi
class của bạn implements interface trên thì khi thực hiện persist application state nó sẽ được gọi kèm, ví dụ:
namespace App\Hasura;
use Hasura\Metadata\StateProcessorInterface;
final class ReloadStateProcessor implements StateProcessorInterface
{
public function process(ManagerInterface $manager, bool $allowInconsistent = false): void
{
$manager->reload(true, true);
}
}
Theo ví dụ trên, reload state processor sẽ thực hiện reload local remote schema SDL (nếu có).