upsun / upsun-sdk-php
The official Upsun SDK for PHP
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 8
Forks: 0
Open Issues: 1
pkg:composer/upsun/upsun-sdk-php
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/psr7: ^1.8 || ^2.0
- nyholm/psr7: ^1.8
- php-http/async-client-implementation: ^1.0
- php-http/client-common: ^2.4
- php-http/discovery: ^1.14
- php-http/httplug: ^2.2
- psr/http-client-implementation: ^1.0
- psr/http-factory: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-message: ^1.0
- symfony/http-client: ^6.3|^7
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.89
- guzzlehttp/guzzle: ^7.0
- php-http/guzzle7-adapter: ^1.0
- phpunit/phpunit: ^8.0 || ^9.0
- rector/rector: *
- slevomat/coding-standard: ^8.22
- squizlabs/php_codesniffer: ^3.13
README
The official Upsun SDK for PHP. This SDK provides a PHP interface that maps to the Upsun CLI commands.
For more information, read the documentation.
Caution
This project is currently in Beta, meaning features and APIs may evolve over time.
Please report bugs or request new features by creating a GitHub issue.
Installation
Install the SDK via Composer:
composer require upsun/upsun-sdk-php
Then include Composer's autoloader in your PHP application:
require __DIR__ . '/vendor/autoload.php';
Authentication
You will need an Upsun API token to use this SDK. Store it securely, preferably in an environment variable.
use Upsun\UpsunConfig; use Upsun\UpsunClient; $config = new UpsunConfig(apiToken: getenv('UPSUN_API_TOKEN')); $client = new UpsunClient($config);
Usage
Example: List organizations
$organizations = $client->organizations->list();
Example: List projects in an organization
$projects = $client->organizations->listProjects('<organizationId>');
Example: Get a project
$project = $client->projects->get('<projectId>');
Example: Create a project in a specific organization
$project = $client->projects->create( '<organizationId>', 'eu-5.platform.sh', 'Project title', 'main', );
Example: Update a project
$response = $client->projects->update( projectId: '<projectId>', title: 'new Title', description: 'Description' );
Example: Delete a project
$client->projects->delete('<projectId>');
Development
Clone the repository and install dependencies:
git clone git@github.com:upsun/upsun-sdk-php.git composer install
Architecture of this SDK
The SDK is built as follows:
- From the JSON specs of our API
- Using
@openapitools/openapi-generator-cli - Which generates:
- PHP Models (in
src/Model/) - PHP APIs (in
src/Api/)
- PHP Models (in
- Higher-level PHP (Facade) oriented Tasks (in
src/Core/Tasks/)
Regenerating API & Model classes
API and Model classes are generated using openapi-generator-cli from the Upsun OpenAPI spec.
composer run spec:install composer run spec:full
Contributing
Contributions are welcome!
Please open a pull request or an issue
for any improvements, bug fixes, or new features.
Full SDK Docs
To see the full SDK docs, for all API and Model classes, please see the following link
Tests
To run the tests, use:
composer install
composer run test
License
This project is licensed under the MIT License. See the LICENSE file for details.
