kylewlawrence / infinity-laravel
Laravel wrapper for kylewlawrence/infinity-api-client-php package
Requires
- php: >=8.1
- illuminate/support: ^8.0|^9.0
- kylewlawrence/infinity-api-client-php: dev-main
README
This package provides integration with the Infinity API. It supports creating boards, retrieving and updating items, deleting references, etc.
The package simply provides a Infinity
facade that acts as a wrapper to the kylewlawrence/infinity-api-client-php package.
NB: Currently only supports bearer token-based authentication.
Installation
You can install this package via Composer using:
composer require kylewlawrence/infinity-api-client-php
If you want to make use of the facade you must install it as well.
// config/app.php 'aliases' => [ .. 'Infinity' => KyleWLawrence\Infinity\Facades\Infinity::class, ];
Configuration
To publish the config file to app/config/infinity-laravel.php
run:
php artisan vendor:publish --provider="KyleWLawrence\Infinity\Providers\InfinityServiceProvider"
Set your configuration using environment variables, either in your .env
file or on your server's control panel:
INF_TOKEN
The API access token. You can create one at: https://app.startinfinity.com/profile/developer/tokens
This package does not yet support OAuth.
INF_DRIVER
(Optional)
Set this to null
or log
to prevent calling the Infinity API directly from your environment.
Contributing
If you have any questions/problems/request with the SDK (the InfinityService class), please go to the Infinity PHP SDK repository with those requests. Pull Requests for the Laravel wrapper are always welcome here. I'll catch-up and develop the contribution guidelines soon. For the meantime, just open and issue or create a pull request.
Usage
Facade
The Infinity
facade acts as a wrapper for an instance of the Infinity\Api\HttpClient
class. Any methods available on this class (documentation here) are available through the facade. for example:
// Get all Servers Infinity::boards()->getAll(); // Create a new board $newBoard = Infinity::boards()->create([ 'name' => 'Blah Blah', 'description' => 'Bler bleman blope', 'user_ids' => [1234, 1235, 12346], ]); print_r($newBoard); // Delete an item Infinity::boards('PWefUeHA8Pd')->items('8b9fee67-600c-499f-ab19-04bd9092be4e')->delete();
Dependency injection
If you'd prefer not to use the facade, you can skip adding the alias to config/app.php
and instead inject KyleWLawrence\Infinity\Services\InfinityService
into your class. You can then use all of the same methods on this object as you would on the facade.
<?php use KyleWLawrence\Infinity\Services\InfinityService; class MyClass { public function __construct(InfinityService $infinity_service) { $this->infinity_service = $infinity_service; } public function getBoards() { $this->infinity_service->boards()->getAll(); } }
This package is available under the MIT license.