davidwnek/survey_monkey_api_client_bundle
Symfony bundle integrating a SurveyMonkey API v3 client with OAuth setup. Configure client ID/secret and redirect URL via config/parameters, enable the bundle, and optionally use the built-in controller to handle the auth code callback.
Pros:
Symfony/Bridge packages). This makes it adaptable to Laravel with minimal refactoring.client_id, redirect_url) fits Laravel’s .env paradigm with minor adjustments (e.g., moving parameters.yml to .env).Cons:
AppKernel and annotation routing, which Laravel replaces with AppServiceProvider and route model binding. Requires adaptation (e.g., converting annotations to Laravel controllers/services).Controller component may require extraction into a Laravel-specific service layer.Laravel Adaptation Path:
AppKernel registration to AppServiceProvider::register().routing.yml) with Laravel’s routes/web.php or API routes.parameters.yml to .env (e.g., SM_CLIENT_ID=xxx).config/survey_monkey.php for bundle settings.bind() in AppServiceProvider.$this->app->bind('survey_monkey.client', function ($app) {
return new \DavidWnek\SurveyMonkeyApiClient\Client(
$app['config']['survey_monkey.client_id'],
$app['config']['survey_monkey.secret']
);
});
AuthenticationController with a Laravel controller using middleware (e.g., RedirectIfAuthenticated).Mockery or createMock().Key Technical Risks:
foreach by reference) or strict typing.HttpFoundation (used for requests/responses) vs. Laravel’s Illuminate\Http.bind() vs. singleton()).spatie/laravel-survey-monkey) that offer better compatibility?Laravel Compatibility:
HttpKernel and DependencyInjection components are well-supported via symfony/http-kernel-bridge and symfony/dependency-injection.Controller with Laravel’s Controller base class.Request/Response objects to Laravel’s Illuminate\Http.Tech Stack Synergy:
Cache::remember() for API responses).laravel/socialite).Phase 1: Proof of Concept (1–2 weeks)
AppKernel with AppServiceProvider.Route::get().Phase 2: Feature Parity (2–4 weeks)
Phase 3: Integration (1–2 weeks)
.env and config/survey_monkey.php./surveys, /responses) for changes.composer require symfony/http-kernel-bridge symfony/dependency-injection
Socialite or custom middleware).Illuminate\Support\Facades\Cache)..env variables for credentials.How can I help you explore Laravel packages today?