alexz707 / invoiceninja-module
Laminas module that provides InvoiceNinja api functionality
Installs: 88
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 1
Forks: 3
Open Issues: 0
pkg:composer/alexz707/invoiceninja-module
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.distinto 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 
tokenwith your generated invoice ninja token - If you use 
basicordigestauthorization 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');