Download the PHP package bash/s365-content-bundle without Composer
On this page you can find all versions of the php package bash/s365-content-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download bash/s365-content-bundle
More information about bash/s365-content-bundle
Files in bash/s365-content-bundle
Package s365-content-bundle
Short Description Symfony Bundle for S365 Content API
License MIT
Informations about the package s365-content-bundle
S365 Content API Bundle
- PHP 8.2+
- Symfony 7.4
This bundle provides a robust, DDD-oriented integration for the S365 Content API. It supports both direct API interaction and transparent request forwarding (proxying).
Features
- DDD Architecture: Separated Domain and Infrastructure layers.
- Auto-Authentication: Handles OAuth2 Password Grant flow with internal caching.
- Request Proxying: Easily forward requests to the S365 API via a dedicated controller.
- Traceability: Seamless integration with Correlation IDs for end-to-end logging.
- Typed Responses: Returns structured data objects instead of raw arrays.
Installation
1. Add Environment Variables
Define the following variables in your .env or server environment:
2. Manual Configuration
Since this bundle does not use a public Flex recipe, you must create the configuration files manually. You can find templates in the recipe/ directory of this bundle.
A. Create Service Configuration (Required)
Copy the recipe/config/packages/s365_content.yaml file to your project's config/packages/s365_content.yaml.
B. Create Routing Configuration (Optional)
If you want to use the proxy controller, copy the recipe/config/routes/s365_content.yaml file to your project's config/routes/s365_content.yaml and adjust the prefix if needed.
3. Install the Package
Simply run:
Usage
Direct API Calls
The ContentClient is automatically wired and ready to use. It handles authentication and headers internally.
Using Correlation IDs for Traceability
To maintain end-to-end traceability, you can pass your application's Correlation ID to the client. This ID will be sent to S365 via the X-Correlation-ID header.
Transparent Request Forwarding (Proxy)
Once the routes are registered, you can make requests directly to your own API domain. The bundle will authenticate and forward them to S365 automatically:
Example Flow:
- Client calls:
GET https://your-api.com/proxy/s365/articles?limit=10 - Bundle forwards to:
GET https://s365-content-api.com/articles?limit=10(with Bearer token) - Client receives: Raw JSON response from S365.
Note: The proxy controller automatically strips sensitive headers like Authorization and Content-Encoding to ensure security and compatibility.
Error Handling
All exceptions thrown by this bundle implement S365ContentExceptionInterface. This allows you to catch all S365-related errors centrally in your ExceptionListener or Subscriber.
| Exception | Description |
|---|---|
S365AuthenticationContentException |
Failed to retrieve or refresh the OAuth2 token. |
S365CommunicationException |
Network or transport errors (timeouts, DNS issues). |
S365ContentException |
The API returned a malformed response or a non-2xx status code. |
Example of catching errors in your application:
Logging & Monitoring
This bundle logs to the s365_content Monolog channel. To catch these logs in your main application, add the channel to your configuration:
Development & Testing
Quality Control
Run static analysis and code style fixing:
License
MIT
All versions of s365-content-bundle with dependencies
symfony/framework-bundle Version ^7.4
symfony/http-client Version ^7.4
symfony/cache Version ^7.4
symfony/uid Version ^7.4
symfony/yaml Version ^7.4
symfony/config Version ^7.4
symfony/dependency-injection Version ^7.4