Download the PHP package stitch-digital/laravel-simpro-api without Composer

On this page you can find all versions of the php package stitch-digital/laravel-simpro-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-simpro-api

Laravel package for working with the Simpro API

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel Simpro is a robust package designed to seamlessly integrate your Laravel application with the Simpro API.

The full Simpro API documentation can be found here.

Table of Contents

Installation

Laravel Simpro API can be installed using composer:

Then publish the config file:

This will publish the configuration file to config/simpro-api.php where you can configure your settings.

This package is built using Saloon. Check out their documentation here.

Usage

Using a Single Simpro Connection

If you are using a single Simpro connection, you can add the following environment variables to your .env file:

To use the package, you can use the Simpro facade to make requests to the API:

If you prefer to use dependency injection over facades then you can do this too:

Using Multiple Simpro Connections

If you are using multiple Simpro connections, you can pass the base URL and API key to the constructor of the connector:

Available Requests

For a full list of available requests, use the following command:

Useful Methods

Responses

After sending a request to the Simpro API, a Response class is returned. In most of the examples, we show the json method that returns a JSON response body. Below are some of the key methods provided by Saloon's Response class:

MethodDescription
statusReturns the response status code.
headersReturns all response headers
headerReturns a given header
bodyReturns the raw response body as a string
jsonRetrieves a JSON response body and json_decodes it into an array.
arrayAlias of json
collectRetrieves a JSON response body and json_decodes it into a Laravel Collection. Requires illuminate/collections.
objectRetrieves a JSON response body and json_decodes it into an object.
xmlReaderUsed for XML responses - returns a XML Wrangler reader. Requires saloonphp/xml-wrangler.
domUsed for HTML responses - returns a Symfony DOM Crawler instance. Requires symfony/dom-crawler.
streamReturns the response body as an instance of StreamInterface
saveBodyToFileAllows you to save the raw body to a file or open file resource.
dtoConverts the response into a data-transfer object.
dtoOrFailWill work just like dto but will throw an exception if the response is considered "failed".
ok, successful, redirect, failed, clientError, serverErrorMethods used to determine if a request was successful or not based on status code. The failed method can be customised.
throwWill throw an exception if the response is considered "failed".
getPendingRequestReturns the PendingRequest class that was built up for the request.
getPsrRequestReturns the PSR-7 request that was built up by Saloon
getPsrResponseReturn the PSR-7 response that was built up by the HTTP client/sender.

Pagination

This package uses the Saloon Paged Paginator for all GET requests that return multiple results.

There are various ways to use the paginator, all well documented in the Saloon docs - here is an example:

Let's say we want to retrieve all customers from Simpro. We can use the 'GetCustomers' request:

However, Simpro will paginate responses by default to a page size of 30 results. We can see this if we return the headers for the same request:

This will return pagination data in the headers:

The easiest way to use the paginator is to collect all responses like this:

When using the paginator, you can override the Simpro default per page limit of 30 by chaining the setPerPageLimit method to the request:

The maximum per page limit is 250.

[!WARNING]
Take care when increasing the per page limit. If you are dealing with large datasets and performing complex operations, you may want to keep this at the default to avoid memory issues.

Rate Limiting

This package uses the Saloon Rate Limiter Plugin to rate limit requests to the Simpro API.

You can disable rate limited globally in the config file, as well as set the rate limit, threshold and driver:

You can also disable rate limiting on a per-request basis by chaining the useRateLimitPlugin(false) method to the request:

Caching

This package uses the Saloon Caching Plugin to cache GET requests to the Simpro API.

You can disable caching globally in the config file, as well as set the cache driver and expiry time:

Retries

You can control the global retry configuration in the config file:

Query Parameters

You can add query parameters to your requests by chaining the query method to the request:

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Contributions are welcome and will be fully credited! Contributions are accepted via Pull Requests on GitHub.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of laravel-simpro-api with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/contracts Version ^10.0||^11.0||^12.0
saloonphp/cache-plugin Version ^3.0
saloonphp/pagination-plugin Version ^2.0
saloonphp/rate-limit-plugin Version ^2.0
saloonphp/saloon Version ^3.0
spatie/laravel-package-tools Version ^1.16
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package stitch-digital/laravel-simpro-api contains the following files

Loading the files please wait ....