- Does jcroll/foursquare-api-bundle work with Laravel?
- No. It is a Symfony bundle built around Symfony's dependency injection container and configuration tree, and it ships no Laravel service provider, facade, or publishable config file. Laravel may install the code via Composer, but nothing in the framework will boot or wire the bundle. For Laravel you should use the underlying Foursquare client directly or call the Foursquare Places API through Laravel's Http facade.
- How do I install jcroll/foursquare-api-bundle in a Laravel project?
- You can try composer require jcroll/foursquare-api-bundle, but expect constraint conflicts because the bundle pulls Symfony 2.x/3.x components and an old Guzzle 3.x/5.x release. Modern Laravel 10/11 requires PHP 8.1+ and Guzzle 7, so resolution often fails without risky flags such as --ignore-platform-reqs. Even if it installs, there is no Laravel integration to register, so installation alone gives you no usable Foursquare service. The practical path is to skip the bundle and depend on a maintained HTTP client instead.
- Which Laravel and PHP versions does jcroll/foursquare-api-bundle support?
- The package targets Symfony 2.x/3.x-era applications, not Laravel, so there is no official Laravel version support matrix. Its transitive Symfony and Guzzle constraints predate modern Laravel's PHP 8.1+ and Guzzle 7 requirements, which makes clean installation on Laravel 10 or 11 unlikely. Treat any successful install on a current Laravel app as unsupported and fragile.
- How do I configure Foursquare client ID and secret for Laravel?
- The bundle expects configuration through Symfony's config tree, not Laravel's config files, so there is no native place to put Foursquare credentials. Version 1.1.4 also removed the jcroll_foursquare_api.client_id and client_secret container parameters, which breaks Symfony consumers that read them. In Laravel, store credentials in config/services.php and .env and pass them to your own Foursquare HTTP calls. Do not rely on the bundle's configuration layer.
- What Foursquare endpoints can I access with this bundle?
- It exposes the legacy Foursquare v2 REST endpoints for venues, check-ins, tips, and users through the jcroll/foursquare-api-client wrapper. Authentication and response shapes are those of the legacy v2 API, which Foursquare has superseded with the Places API. Before building against it, verify that each endpoint you need still responds in the format the client expects. There are no fixtures or tests in the release to confirm current behaviour.
- Is there a Laravel facade or service provider for jcroll/foursquare-api-bundle?
- No. The repository contains no Illuminate dependencies, no ServiceProvider, no facade, and no publishable config directory. All of its glue code is Symfony-specific dependency injection and configuration. Using it in Laravel would mean re-authoring that integration yourself, at which point you are better off using the client directly.
- Can I use jcroll/foursquare-api-client directly in Laravel instead?
- Yes, that is more sensible than installing the Symfony bundle, because the client is the only reusable part and it is a thin HTTP wrapper. However, its ~2.1 branch encodes legacy Foursquare v2 assumptions and may still drag old Guzzle constraints into your Composer graph. If you go this route, pin a commit hash and wrap the client behind your own service. For most Laravel apps, calling the Places API with Http::withToken() is simpler and safer.
- What is the best Laravel alternative to jcroll/foursquare-api-bundle for nearby places?
- The recommended default is to call the Foursquare Places API directly from Laravel using the Http facade, so you control auth, retries, timeouts, and response mapping. If your requirement is really nearby places rather than Foursquare data specifically, maintained SDKs for Google Places, Mapbox, or OpenStreetMap can be better long-term choices. Avoid adopting an abandoned Symfony bundle just to avoid a few HTTP calls. The integration surface is small either way.
- Is jcroll/foursquare-api-bundle maintained and safe for production?
- No. The package was last meaningfully updated around 2016, has very low adoption, and shows no security response path. Version 1.1.4 is a small config fix, not a revival, and it removed container parameters without a major version bump, which is a BC break declared non-major. Its pinned legacy Guzzle and Symfony dependencies carry known CVEs with no upgrade path short of rewriting. If you must use the code, vendor it and pin a commit hash rather than tracking a branch or caret range.
- How do I test a Foursquare integration in Laravel without hitting the live API?
- If you call the Places API through Laravel's Http facade, use Http::fake() to stub responses and assert the request URL, headers, and query parameters. If you vendor the jcroll client, wrap it behind an interface and inject a fake implementation in tests, because the bundle provides no testing helpers or fixtures. Either way, add contract tests against recorded responses to catch API drift. Do not rely on the bundle for test coverage; it ships none.