displayce/slack
PHP Slack API client with object-based payload and response classes mirroring Slack’s docs. Supports all Slack API methods, serializes data via JMS Serializer, and includes docs for installation, OAuth/tokens, usage, methods, and events.
SlackTeam::messages()->send()).Slack::chat()->postMessage()).SendSlackMessageJob)./slack/webhook) with no built-in validation or event dispatching.Message, User). Would need to extend or pair with Laravel’s ORM.spatie/ray or Laravel’s retry helper).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Deprecated API | Critical | Audit Slack API docs for breaking changes; wrap calls in feature flags or middleware. High likelihood of failures if using unsupported endpoints. |
| Security | High | Validate all incoming webhooks; use Laravel’s signed middleware for CSRF protection. No OAuth 2.1 support confirmed—risk of auth failures. |
| Performance | Medium | Add Guzzle HTTP client with connection pooling; cache responses (e.g., laravel-cache). No async support—rate limits may throttle synchronous calls. |
| Maintenance Overhead | Critical | Plan for immediate fork or replacement (e.g., slack/slack-api-php-client or spatie/slack). No active development suggests abandonment risk. |
| Testing | High | Mock Slack API responses (e.g., vcr or mockery); test rate limit handling. No built-in test utilities—manual setup required. |
conversations.history instead of channels.history?)chat.scheduledMessage.send) or app home tabs?429 Too Many Requests, 401 Invalid Auth) surfaced? No Laravel-exception compatibility confirmed.spatie/slack)?SlackClient as a singleton or context-bound instance (manual effort).Slack facade for cleaner syntax (e.g., Slack::chat()->postMessage())—must be custom-coded.VerifySlackSignature).SendSlackMessageJob).laravel-cache—no package integration.pest or phpunit with mocked Slack responses (e.g., vcr for recording/replay).README.md (e.g., "OAuth 2.1 not supported").$this->app->singleton(SlackClient::class, function ($app) {
return new SlackClient(config('services.slack.token'));
});
// app/Facades/Slack.php
public static function chat() { return app(SlackClient::class)->chat(); }
// app/Jobs/SendSlackMessage.php
public function handle() {
Slack::chat()->postMessage($this->channel, $this->text);
}
routes/web.php:
Route::post('/slack/webhook', [SlackWebhookController::class, 'handle']);
spatie/ray).laravel-log).slack/slack-api-php-client or spatie/slack within 6–12 months.How can I help you explore Laravel packages today?