xavicabot / laravel-holded
Cliente PHP para la API de Holded, listo para Laravel
Installs: 41
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/xavicabot/laravel-holded
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^10.4
- pestphp/pest: ^3.8
- phpunit/phpunit: ^11.5
README
Cliente PHP para la API de Holded, diseñado para integrarse fácilmente con Laravel.
🚀 Instalación
composer require xavicabot/laravel-holded
⚙️ Configuración
Publica el archivo de configuración:
php artisan vendor:publish --tag=config --provider="XaviCabot\\Laravel\\Holded\\HoldedServiceProvider"
Agrega en tu .env:
HOLDED_API=your_api_key HOLDED_API_URL=https://api.holded.com/api/invoicing/v1/
✅ Uso
use XaviCabot\Laravel\Holded\Facades\Holded; // Uso básico con las credenciales por defecto del config/holded.php $contacts = Holded::contact()->list(); $contact = Holded::contact()->get('contactId'); $newContact = Holded::contact()->create(['name' => 'Cliente nuevo']); // Documentos $invoices = Holded::document()->list();
Multi‑cuenta
Puedes definir varias cuentas en el config o establecer las credenciales en tiempo de ejecución.
- Definir cuentas en config/holded.php:
return [ 'api_key' => env('HOLDED_API', ''), 'base_url' => env('HOLDED_API_URL', 'https://api.holded.com/api/invoicing/v1/'), 'accounts' => [ 'principal' => [ 'api_key' => env('HOLDED_API_PRINCIPAL'), 'base_url' => env('HOLDED_API_URL_PRINCIPAL', env('HOLDED_API_URL')), ], 'secundaria' => [ 'api_key' => env('HOLDED_API_SECUNDARIA'), 'base_url' => env('HOLDED_API_URL_SECUNDARIA', env('HOLDED_API_URL')), ], ], ];
- Usar una cuenta concreta por nombre:
use XaviCabot\Laravel\Holded\Facades\Holded; $contacts = Holded::account('principal')->contact()->list(); $invoices = Holded::account('secundaria')->document()->list();
- Establecer credenciales en tiempo de ejecución (sin tocar el config):
use XaviCabot\Laravel\Holded\Facades\Holded; $dynamic = Holded::withCredentials('API_KEY_XYZ', 'https://api.holded.com/api/invoicing/v1/'); $contacts = $dynamic->contact()->list();
🧪 Tests
Instala dependencias de desarrollo:
composer install
Lanza los tests:
composer test
📂 Estructura del paquete
src/→ Código fuente principalconfig/→ Archivo de configuración Laraveltests/→ Pruebas con Pestcomposer.json→ Autoload, dependencias, provider
✍️ Créditos
Creado por Xavi Cabot
📄 Licencia
MIT ©