alexz707 / invoiceninja-module
Laminas module that provides InvoiceNinja api functionality
0.1.6
2023-08-03 10:07 UTC
Requires
- php: ^8.1
- laminas/laminas-filter: ^2.13
- laminas/laminas-hydrator: ^4.3
- laminas/laminas-modulemanager: ^2.11
- laminas/laminas-mvc: ^3.3
- laminas/laminas-servicemanager: ^3.10
Requires (Dev)
- phpunit/phpunit: ^9.5
- scrutinizer/ocular: dev-master
- slevomat/coding-standard: ^8.4
- squizlabs/php_codesniffer: ^3.7
README
Laminas Module to consume the InvoiceNinja V5 API (https://www.invoiceninja.com).
Description
Latest release can handle the following api services:
- Clients
- Invoices
- Products
- Tax rates
Can use basic
or digest
server authorization.
Known issues
- Invoice Ninja API V5 is (mostly) returning strings instead of the real data type but wants the real data types in the requests. If you find out about a field which behaves like this please open an issue!
- Not all endpoints are implemented -> if you need one please send a PR or open an issue.
- Humbug is deprecated and should be changed to Infection
Installation
The suggested installation method is via composer:
php composer.phar require alexz707/invoiceninja-module
Configure module
- Copy
/vendor/alexz707/invoiceninja-module/config/invoiceninja.global.php.dist
into your global autoload folder, remove the dist extension so that Laminas picks it up - If you use your own instance of invoice ninja change the
host url
- Replace the
token
with your generated invoice ninja token - If you use
basic
ordigest
authorization uncomment the used method and fill in your credentials
Module::INVOICE_NINJA_CONFIG => [ Module::API_TIMEOUT => 100, Module::TOKEN => 'YOURTOKEN', Module::HOST_URL => 'https://ninja.dev/api/v1', /* * If the api is protected by htaccess uncomment * ONE of the following code blocks and use your credentials. */ Module::AUTHORIZATION => [ /* * BASIC authorization * \Zend\Http\Client::AUTH_BASIC => [ * Module::AUTH_USER => 'YOURUSER', * Module::AUTH_PASS => 'YOURPASSWORD' * ] */ /* * DIGEST authorization * \Zend\Http\ClientClient::AUTH_DIGEST => [ * Module::AUTH_USER => 'YOURUSER', * Module::AUTH_PASS => 'YOURPASSWORD' * ] */ ] ]
Enable module
Register as Laminas module inside your config/application.config.php
file:
'modules' => [ 'Laminas\Router', 'InvoiceNinjaModule', 'YourApplicationModule', ],
Use the service managers
/** @var ClientManager $clientManager */ $clientManager = $sm->get(ClientManager::class); $client = $clientManager->getClientById('1');