2026-01-25
Laravel
GitHub Copilot CLI SDK for Laravel
他言語版の公式SDKを元にLaravel版もさっと開発できた。
Laravel version of GitHub Copilot CLI SDK. Contribute to invokable/laravel-copilot-sdk development by creating an account on GitHub.
公式SDKの使い方そのままではLaravelらしくないのでFacadeを使ったLaravel流の使い方ができるようにしている。
use Revolution\Copilot\Facades\Copilot;
$response = Copilot::run(prompt: 'What is 2 + 2?');
echo $response->content();
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;
Copilot::start(function (CopilotSession $session) {
echo 'Starting Copilot session: '.$session->id();
$response = $session->sendAndWait(prompt: 'Tell me something about PHP.');
echo $response->content();
$response = $session->sendAndWait(prompt: 'How about Laravel?');
echo $response->content();
});
fake()
いつからかLaravelで使われ出して最近はサードパーティパッケージでも普及しているfake()メソッドでのモック。
お馴染みMockeryのshouldReceive()、expects()はFacadeを使えば自動的に対応するので簡単だけどfake()を真似するのは中々大変。
こんなテストを書けるようにしたいのでがんばって対応。
use Revolution\Copilot\Facades\Copilot;
Copilot::fake('4');
$response = Copilot::run(prompt: 'What is 2 + 2?');
expect($response->content())->toBe('4');
Copilot::assertPrompt('What is *');
Copilot::assertPromptCount(1);