- How do I install tourcms/tourcms-php with Composer in a Laravel app?
- Run composer require tourcms/tourcms-php. It is framework-agnostic, so Laravel does not auto-register a provider or publish config. Instantiate the client in a service provider or gateway class and pass credentials from config/services.php and .env. Check composer.json for PHP and Guzzle constraints before installing.
- Is tourcms/tourcms-php a Laravel package?
- No. It is a thin PHP client for the TourCMS REST API, not a Laravel package. There is no first-party laravel-tourcms provider, facade, or config publish. In Laravel you own roughly 100 lines of glue: a service provider, config entry, and gateway interface.
- Which Laravel versions can I use with tourcms/tourcms-php?
- The SDK is framework-agnostic, so Laravel compatibility depends mainly on the PHP and Guzzle constraints in its composer.json. Laravel 10 and 11 pin Guzzle 7, so confirm the SDK allows that version before upgrading. Run your test suite on the target Laravel version rather than relying on a Laravel-specific support matrix.
- How do I authenticate TourCMS API requests and handle channels?
- The client supports API key authentication and channel-aware requests. Store the API key and marketplace or channel identifiers in .env and expose them through config/services.php. Bind a configured singleton in a service provider so controllers and jobs do not read environment variables directly.
- What can I build with this TourCMS PHP SDK?
- It gives you access to tours, availability, bookings, and customer data from TourCMS-powered systems. Common uses are booking engines, travel sites, operator integrations, and self-serve customer signup with create and verify endpoints. Wrap it behind a gateway so domain code does not depend on SDK response objects.
- Why did tourcms/tourcms-php v4.10.0 break my XML response handling?
- v4.10.0's headline change is handling strings instead of XML objects, tracked as TOURCMS-10566. Code that does instanceof SimpleXMLElement, accesses properties, or iterates an assumed XML node graph may fail or throw errors on strings. Treat this minor bump as potentially breaking and add contract tests that assert response shape per endpoint before upgrading.
- Is tourcms/tourcms-php safe for booking-critical production use?
- It sits between your app and availability checks and booking creation, so failures are customer-visible. The vendor-official SDK is maintained by Palisis with a 2025-05-08 release, but the public footprint is small at 9 stars and 0 dependents. Isolate it behind an interface, log request and response pairs, and plan retries and idempotency semantics with the vendor.
- Does tourcms/tourcms-php have tests or contract tests for API responses?
- The available context does not describe the package's own test coverage. For your integration, write contract tests that assert the parsed response shape for each endpoint you use. That is especially important after v4.10.0 because string-versus-XML behavior changed. Do not assume a minor release is safe without checking diffs.
- Are the customer create and verify endpoints enabled on my TourCMS account?
- Those endpoints are additive in the SDK, but they may return 403 if not enabled on your TourCMS account or marketplace credentials. Confirm entitlements with your TourCMS account manager before building the signup flow. Also clarify rate limits and idempotency semantics, especially whether retrying on timeout is safe.
- What are alternatives to tourcms/tourcms-php for Laravel?
- There is no first-party Laravel TourCMS provider in the available context, so the main alternative is hand-rolling API calls with Guzzle and your own DTOs. That may be reasonable if you need only a few endpoints, but you lose the vendor-maintained API surface. For broader TourCMS integration, the official SDK is the safer starting point when wrapped behind your own gateway.