diff --git a/composer.json b/composer.json index 803bd4c..40aa066 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "laminas/laminas-form": "^3.19.2", "laminas/laminas-navigation": "^2.18", "laminas/laminas-view": "^2.27", - "webinertia/webinertia-filter": "^0.0.3 || ^0.0.4 || ^0.0.5", + "webinertia/webinertia-filter": "^0.0.5", "webinertia/webinertia-validator": "^0.0.3 || ^0.0.4" }, "require-dev": { @@ -48,10 +48,8 @@ "laminas/laminas-view": "^2.25", "phpunit/phpunit": "10.4.2", "psalm/plugin-phpunit": "^0.18.4", - "phpstan/phpstan": "1.10.40", "laminas/laminas-test": "^4.8", - "phpstan/extension-installer": "^1.2", - "slam/phpstan-laminas-framework": "^1.4" + "vimeo/psalm": "^5.18" }, "extra": { "laminas": { @@ -79,8 +77,7 @@ "cs-fix": "phpcbf", "static-analysis": "psalm --shepherd --stats", "test": "phpunit --colors=always", - "test-coverage": "phpunit --colors=always --coverage-clover clover.xml", - "phpstan": "php vendor/bin/phpstan analyse --xdebug" + "test-coverage": "phpunit --colors=always --coverage-clover clover.xml" }, "config": { "allow-plugins": { diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..7022da6 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1 @@ +!vendor \ No newline at end of file diff --git a/src/ConfigProvider.php b/src/ConfigProvider.php index e9555a3..3d0e2f4 100644 --- a/src/ConfigProvider.php +++ b/src/ConfigProvider.php @@ -4,24 +4,21 @@ namespace Limatus; -use Laminas\Form\Element\Checkbox; -use Laminas\Form\Element\Text; -use Laminas\Form\ElementFactory; -use Laminas\Form\View\Helper\Factory\FormElementErrorsFactory; use Laminas\Form\View\Helper\Form; -use Laminas\Form\View\Helper\FormCheckbox as FormCheckboxHelper; use Laminas\Form\View\Helper\FormCollection; use Laminas\Form\View\Helper\FormElement; use Laminas\Form\View\Helper\FormElementErrors; use Laminas\Form\View\Helper\FormInput; use Laminas\Form\View\Helper\FormRow; -use Laminas\Form\View\Helper\FormText; -use Laminas\ServiceManager\Factory; -use Laminas\ServiceManager\Factory\InvokableFactory; use Laminas\View\Helper\Navigation\Menu; +use Limatus\Form\RenderListenerInterface; use Limatus\Form\Element; use Limatus\Form\View; -use Limatus\View\Helper; +use Limatus\Form\View\Helper; +use Limatus\Form\View\Helper\FormCollectionDelegator; +use Limatus\Vendor\Bootstrap\LayoutMode; +use Limatus\View\Helper\HtmlTag; +use Limatus\View\Helper\Service\HtmlTagFactory; class ConfigProvider { @@ -37,57 +34,44 @@ public function __invoke(): array public function getDependencyConfig(): array { - return []; + return [ + 'aliases' => [ + VendorInterface::class => Vendor\Bootstrap\Bootstrap::class, + RenderListenerInterface::class + => Vendor\Bootstrap\Listener\RenderListener::class, + ], + 'factories' => [ + Element\Listener\ElementListener::class + => Element\Listener\ElementListenerFactory::class, + Vendor\Bootstrap\Bootstrap::class => Vendor\Bootstrap\BootstrapFactory::class, + Vendor\Bootstrap\Listener\RenderListener::class + => Vendor\Bootstrap\Listener\RenderListenerFactory::class, + ], + ]; } /** only new components get aliases */ public function getViewHelperConfig(): array { return [ - 'aliases' => [ - 'formBootstrapElement' => View\Helper\FormBootstrapElement::class, - 'formGridCollection' => View\Helper\FormGridCollection::class, - 'formHelp' => View\Helper\FormHelp::class, - 'formHorizontalElement' => View\Helper\FormHorizontalElement::class, - 'formCheckBox' => View\Helper\FormCheckbox::class, - 'modal' => Helper\Modal::class, - ], 'factories' => [ - FormElementErrors::class => FormElementErrorsFactory::class, - View\Helper\Form::class => Factory\InvokableFactory::class, - View\Helper\FormCheckbox::class => Factory\InvokableFactory::class, - View\Helper\FormCollection::class => Factory\InvokableFactory::class, - View\Helper\FormElement::class => Factory\InvokableFactory::class, - View\Helper\FormInput::class => Factory\InvokableFactory::class, - View\Helper\FormRow::class => Factory\InvokableFactory::class, - View\Helper\FormText::class => Factory\InvokableFactory::class, - View\Helper\FormBootstrapElement::class => Factory\InvokableFactory::class, - View\Helper\FormGridCollection::class => Factory\InvokableFactory::class, - View\Helper\FormHelp::class => Factory\InvokableFactory::class, - View\Helper\FormHorizontalElement::class => Factory\InvokableFactory::class, - Helper\Modal::class => Factory\InvokableFactory::class, + HtmlTag::class => HtmlTagFactory::class, ], 'delegators' => [ Form::class => [ - View\Delegator\Factory\FormFactory::class, - ], - FormCheckboxHelper::class => [ - View\Delegator\Factory\FormCheckboxFactory::class, + Helper\FormDelegatorFactory::class, ], FormCollection::class => [ - View\Delegator\Factory\FormCollectionFactory::class, - ], - FormElement::class => [ - View\Delegator\Factory\FormElementFactory::class, - ], - FormInput::class => [ - View\Delegator\Factory\FormInputFactory::class, + Helper\FormCollectionDelegatorFactory::class, ], + // FormInput::class => [ + // Helper\FormInputDelegatorFactory::class, + // ], + // FormElement::class => [ + // Helper\FormElementDelegatorFactory::class, + // ], FormRow::class => [ - View\Delegator\Factory\FormRowFactory::class, - ], - FormText::class => [ - View\Delegator\Factory\FormTextFactory::class, + Helper\FormRowDelegatorFactory::class, ], ], ]; @@ -96,6 +80,14 @@ public function getViewHelperConfig(): array public function getHelperConfig(): array { return [ + static::class => [ + 'form_layout_mode' => LayoutMode::Grid, // Override the default form layout + // set defaults. Values passed via $formHelper mutators will override these values. + 'g' => '', + 'row' => '', + 'mb' => '', + 'col' => '', + ], 'form_element_errors' => [ 'message_open_format' => '