- Hinzufügen der DependencyInjection-Konfiguration für das Billing-Modul. - Erstellen der Invoice-Entity mit API-Ressourcen und Berechtigungen. - Konfigurieren der Services in services.yaml für das Billing-Modul. - Implementieren von CLI-Commands zur Verwaltung von Modul-Lizenzen und zur Auflistung installierter Module. - Erstellen eines API-Controllers zur Verwaltung von Modulen und Lizenzen. - Hinzufügen eines EventListeners für das Booten von Modulen. - Definieren von Interfaces für Lizenzvalidierung und Modul-Plugins. - Implementieren der ModuleRegistry zur Verwaltung und Booten von Modulen. - Erstellen eines LicenseValidator-Services zur Validierung und Registrierung von Lizenzen.
69 lines
2.5 KiB
PHP
69 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace MyCRM\BillingModule\DependencyInjection;
|
|
|
|
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
|
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
|
|
|
/**
|
|
* Bundle-Konfiguration für Billing-Modul
|
|
*
|
|
* Definiert konfigurierbare Optionen für das Modul
|
|
*/
|
|
class Configuration implements ConfigurationInterface
|
|
{
|
|
public function getConfigTreeBuilder(): TreeBuilder
|
|
{
|
|
$treeBuilder = new TreeBuilder('billing');
|
|
|
|
$treeBuilder->getRootNode()
|
|
->children()
|
|
->scalarNode('pdf_template')
|
|
->defaultValue('default')
|
|
->info('Template für PDF-Rechnungsgenerierung')
|
|
->end()
|
|
->scalarNode('invoice_prefix')
|
|
->defaultValue('RE-')
|
|
->info('Präfix für Rechnungsnummern')
|
|
->end()
|
|
->arrayNode('payment_gateway')
|
|
->addDefaultsIfNotSet()
|
|
->children()
|
|
->scalarNode('provider')
|
|
->defaultValue('stripe')
|
|
->info('Zahlungsanbieter (stripe, paypal, etc.)')
|
|
->end()
|
|
->scalarNode('api_key')
|
|
->defaultValue('%env(PAYMENT_API_KEY)%')
|
|
->info('API-Key für Zahlungsanbieter')
|
|
->end()
|
|
->booleanNode('test_mode')
|
|
->defaultFalse()
|
|
->info('Test-Modus aktivieren')
|
|
->end()
|
|
->end()
|
|
->end()
|
|
->arrayNode('features')
|
|
->addDefaultsIfNotSet()
|
|
->children()
|
|
->booleanNode('recurring_billing')
|
|
->defaultTrue()
|
|
->info('Wiederkehrende Rechnungen aktivieren')
|
|
->end()
|
|
->booleanNode('automatic_reminders')
|
|
->defaultTrue()
|
|
->info('Automatische Zahlungserinnerungen')
|
|
->end()
|
|
->booleanNode('multi_currency')
|
|
->defaultFalse()
|
|
->info('Multi-Währungsunterstützung')
|
|
->end()
|
|
->end()
|
|
->end()
|
|
->end()
|
|
;
|
|
|
|
return $treeBuilder;
|
|
}
|
|
}
|