20steps/placetel-bundle
Symfony2 bundle exposing Placetel monitoring as a configurable service. Supports API access with adjustable timeouts, response caching to avoid rate limits, and some derived KPIs. Early/incomplete implementation; docs and full API coverage pending.
AppKernel, config.yml, services.yml) requires abstraction or refactoring.Illuminate\Contracts\Container and Illuminate\Support\Manager.App\ServiceProvider can register the Placetel service, but Symfony’s services.yml would need conversion to Laravel’s config/services.php or a custom provider.parameters.yml can be mapped to Laravel’s .env or config/placetel.php. The bundle’s hardcoded defaults (e.g., timeout=10) should be made configurable via Laravel’s binding system.CacheInterface) would need replacement with Laravel’s Illuminate\Cache (e.g., cache()->remember()).EventDispatcher, HttpKernel) are incompatible with Laravel. A wrapper layer or partial rewrite would be necessary.getServices()) should validate feasibility before full adoption.cache()->tags() for invalidation)?api_key stored? Laravel’s .env is ideal, but the bundle’s Symfony config may need hardening.| Symfony2 Feature | Laravel Equivalent | Migration Strategy |
|---|---|---|
services.yml |
config/services.php or ServiceProvider |
Convert YAML to PHP config or use Laravel’s bind() method. |
parameters.yml |
.env + config/placetel.php |
Map Symfony params to Laravel bindings. |
EventDispatcher |
Laravel Events | Replace with event(new PlacetelEvent()). |
| Symfony Cache | Illuminate\Cache |
Use cache()->remember() with same TTL. |
HttpKernel |
Guzzle HTTP Client | Replace with Laravel’s HTTP client or Guzzle. |
PlacetelServiceProvider that registers a Laravel-compatible PlacetelManager facade.// app/Providers/PlacetelServiceProvider.php
public function register()
{
$this->app->singleton('placetel', function ($app) {
return new PlacetelManager(
$app['config']['placetel.url'],
$app['config']['placetel.api_key']
);
});
}
PlacetelService.php to a standalone Laravel package.laravel-placetel) with full API support.getServices()).strict_types).docs/).CacheInterface) to swap implementations.CONTRIBUTING.md for future updates.EventDispatcher) will be unfamiliar.How can I help you explore Laravel packages today?