8000 Add provider with registered facade · grok-php/laravel@411d5d8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 411d5d8

Browse files
committed
Add provider with registered facade
1 parent c5353be commit 411d5d8

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

src/Facades/GrokAI.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace GrokPHP\Laravel\Facades;
4+
5+
use Illuminate\Support\Facades\Facade;
6+
7+
/**
8+
* @method static array chat(array $messages, \GrokPHP\Client\Config\ChatOptions $options)
9+
*/
10+
class GrokAI extends Facade
11+
{
12+
protected static function getFacadeAccessor(): string
13+
{
14+
return 'grok-ai';
15+
}
16+
}

src/Providers/GrokServiceProvider.php

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
namespace GrokPHP\Laravel\Providers;
4+
5+
use Illuminate\Support\ServiceProvider;
6+
use GrokPHP\Client\Clients\GrokClient;
7+
use GrokPHP\Client\Config\GrokConfig;
8+
use GrokPHP\Client\Enums\DefaultConfig;
9+
10+
class GrokServiceProvider extends ServiceProvider
11+
{
12+
public function register(): void
13+
{
14+
$this->mergeConfigFrom(__DIR__ . '/../../config/grok.php', 'grok');
15+
16+
$this->app->singleton(GrokConfig::class, function () {
17+
return new GrokConfig(
18+
apiKey: config('grok.api_key'),
19+
baseUri: config('grok.base_uri', DefaultConfig::BASE_URI->value),
20+
timeout: (int) config('grok.timeout', (int) DefaultConfig::TIMEOUT->value),
21+
);
22+
});
23+
24+
$this->app->singleton(GrokClient::class, function ($app) {
25+
return new GrokClient($app->make(GrokConfig::class));
26+
});
27+
28+
$this->app->alias(GrokClient::class, 'grok-ai');
29+
}
30+
31+
public function boot(): void
32+
{
33+
if ($this->app->runningInConsole()) {
34+
$this->commands([
35+
\GrokPHP\Laravel\Commands\InstallGrokCommand::class,
36+
]);
37+
38+
$this->publishes([
39+
__DIR__ . '/../Config/grok.php&# 4978 39; => config_path('grok.php'),
40+
], 'config');
41+
}
42+
}
43+
}

0 commit comments

Comments
 (0)
0