Download the PHP package hirokx/bc-sdk without Composer

On this page you can find all versions of the php package hirokx/bc-sdk. 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 bc-sdk

Business Central for PHP

License: MIT
This software is provided as is and without any warrenties of any kind.
If you find a bug or have a feature request, please create an issue

Install using Composer

composer require hirokx/business-central-sdk

Getting Started

Building Models

As Business Central's web services are dynamically created all entities could be pre generated.

This can be generated using a post-autoload-dump composer script using your credentials to get the entities exposed through your web services.

Connecting to Business Central

Business Central for PHP uses a singleton pattern for SDK instances.

Once an instance has been initialized it will fetch the schema from your Business Central. (Standard entities are included).

Fetching Entities Manually

Business Central for PHP uses an internal query builder to navigate and fetch entities.

Accessing the query
Navigating using the query
Fetching results

Fetching Entities

Class Reference

Entity

Class for Entity fetched from Business Central

Entity Properties / Relations

Due to the dynamics of Business Central, the Entities from Business Central doesn't necessary have standardized properties across all implementations. Please refer to your specific implementation.

Alternatively check the entities.md generated when building models.

Fetch Relation

You can fetch relations from a given entity by calling the name of the relation as a property or method:

If the relations isn't pointing at a collection, then only the single related entity will be returned.

Check Entities Overview to see if the relation is a collection type or not.

Entity Methods

EntityCollection

Container class for Entities fetched from Business Central

EntityCollection Properties

None

EntityCollection Methods

Builder

Query builder used to fetch and update entities on Business Central

Note: All EntityCollection method calls can be performed on the Builder instance itself,
due to an internal call to $collection->fetch() before the method call.

Builder Properties

None

Builder Methods

Builder Navigation
Builder Meta
Builder Pagination
Builder Sorting
Builder Expansion

OData Reference: Reference

Basic Usage

Example:

The above will fetch a collection with all customers from a company with their paymentMethod relation in one request.

Multilevel Expansion / Filtered Expansion

Utilizing closures it is possible to nest expansions and apply filters to the expansions at any level.

See Filtering

Note: The nesting can be done indefinitely and as complex as you want, but keep in mind there still is a character limit to URLs.

Builder Filtering

OData reference: Reference

Filtering allows us to more carefully select which entities we fetch from Business Central.
This allows us to improve performance and exclude irrelevant models from our processing from the start.

A number of different filtering methods exists.
For every filter method an "OR" version exists (eg. whereDate(...) -> orWhereDate(...)
The $before argument is the boolean operator prepended to the query before every clause.

Operators:

Logical OData equiv
= eq
!= ne
> gt
>= ge
< lt
<= le
Basic Usage
Builder Advanced

Extending Entity Models

The SDK has a range of pre-generated Models it uses to contain and assist the user while using the SDK.
You can replace the class used as the container if you want to - Only requirement is that the model must extend \BusinessCentral\Entity.

Example:

This overrides the model class used for all entities of type customer in the entire application.

Debugging

The SDK logs all requests to and from your application to Business Central for debugging and monitoring purposes.

You can get all log entries from the SDK at any time from $sdk->request_log, which returns an array of RequestLog objects.

RequestLog Properties

Name Type
method string
code int
uri string
time float
options array
response mixed

Contribution

This SDK is not a finished product.
Input, additions and changes are very much encouraged - Fork the repo, make the changes/additions/fixes, and create a pull request.

What's needed?

Schema Overrides

A lot of entities on Business Central has read-only fields which are disguised as actual properties but are virtual (like currencyCode on customers is the value of the customer's currency's code property and cannot be changed on the customer itself).

These properties needs to be found and flagged.
Take a look in schema_overrides.json and follow the syntax for flagging a property as read-only.


All versions of bc-sdk with dependencies

PHP Build Version
Package Version
Requires php Version ^7.3 || ^8.0
ext-json Version *
guzzlehttp/guzzle Version ^6.5 || ^7.0
illuminate/support Version ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0
rakit/validation Version ^1.2
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 hirokx/bc-sdk contains the following files

Loading the files please wait ....