All notable changes to this project will be documented in this file, in reverse chronological order by release.
#224 adds support for zend-hydrator v3 releases, while keeping support for versions 1 and 2.
#211 adds support for the HTML5 minlength
attribute in all form elements
that support it.
#217 adds Zend\Form\View\HelperTrait
, which can be used to provide IDE
autocompletion for view helpers provided by zend-form. See
https://docs.zendframework.com/zend-form/view-helpers/#ide-auto-completion-in-templates
for more information.
#218 ensures object values of select elements can be rendered without error.
#216 fixes an issue when performing data binding and a fieldset has no mapped
input elements, casting null
values to empty arrays to ensure they can be
passed to an input filter.
#207 fixes the return value annotation for the Fieldset::get()
method to
indicate it can also return a FieldsetInterface
instance.
$helper->addValidAttribute('attribute-name');
$helper->addValidAttributePrefix('prefix-');
FormElementErrors
view helper, setTranslateMessages(bool $flag)
.
By default, the helper continues to translate error messages (if a translator
is present), as introduced in 2.11.0. However, using this method, you can
disable translation, which may be necessary to prevent double translation
and/or to reduce logs from missed translation lookups. Because the method
implements a fluent interface, you may do so in one line:
echo $this->formElementErrors()->setTranslateMessages(false);
Note: you will need to reset the value afterwards if you want translations to occur in later invocations.
#104 adds the ability
for the FormElementErrors
view helper to translate validation error messages
using the composed translator and text domain instances.
#162 fixes an issue
with hydration when a form has called setWrapElements(true)
, ensuring that
binding values in a fieldset will correctly identify the elements in the
provided data.
#172 fixes the
DateTime
element such that it no longer attempts to use its
DATETIME_FORMAT
constant, but, rather, the value of the $format
property,
when representing the element; this change allows developers to override the
format, which was the original intention.
#178 loosens the checks
in Zend\Form\Element\DateTime::getValue()
to check against PHP's DateTimeInterface
(vs
DateTime
) when retrieving the value; this fixes edge cases where it was
instead returning the format for DateTimeImmutable
values.
ElementFactory
, fixing an error whereby checks for
Traversable
creation options would lead to a service creation exception;
these now correctly identify traversable options and convert them to an array.FormElementManagerFactory
factory initializes the plugin manager instance,
ensuring it is injecting the relevant configuration from the config
service
and thus seeding it with configured form/form element services. This means
that the form_elements
configuration will now be honored in non-zend-mvc
contexts.min
and max
attributes of the various DateTime
elements, ensuring
that the elements raise an exception during instantiation if the values
provided are in a format that DateTime
does not recognize for the element
type in question.FormElementManager
handles invokable classes when the autoAddInvokableClass
flag is enabled. Previously, it used the built-in utilities from
zend-servicemanager, but now correctly uses its own setInvokableClass()
method, which forces usage of the ElementFactory
for such classes, and thus
ensures the name and options are passed to the element constructor.ArrayInput
, but no
values are submitted. Previously, no messages were returned; now they are.InputProvider
s are merged into parent CollectionInputFilter
s;
previously, forms did not check if the element was in the target input filter
composed in a CollectionInputFilter
, leading to duplicate elements with
varying behavior; now the inputs are correctly merged.FormElementManager
,
ensuring that the initializer injecting a factory into a FormFactoryAware
instance is triggered before the initializer that calls init()
, and also
that the initializer calling init()
is always triggered last.FormSearch
and FormTel
, which map to the FormSearch
and FormTel
view
helpers.FormTextarea
view helper that is referenced in the
documentation.Zend\Form\View\HelperConfig
to improve performance when running under
zend-servicemanager v3.FormElementManager
polyfill for zend-servicemanager v2 to ensure they are
canonicalized correctly.Zend\Form\FormElementManager
to FormElementManager
in the ConfigProvider
.FormElementManager
to vary its definitions based on the major version of
zend-servicemanager in use. FormElementManagerFactory
was updated to return
the specific polyfill version, and an autoload rule was added to alias the
class to the correct polyfill version. The polyfills were necessary to ensure
that invokable classes are mapped to the new ElementFactory
introduced in
the 2.7 series, thus ensuring instantiation is performed correctly.Zend\Form\FormElementManager
to ensure that the default initializers,
injectFactory()
and callElementInit()
are registered as the first and last
initializers, respectively, during construction, restoring the pre-2.7
behavior.Factory::create()
to the pre-2.7.1 behavior of not passing creation
options when retrieving an instance from the FormElementManager
. This
ensures that options are not passed to Element/Fieldset/Form instances
until after they are fully initialized, ensuring that all dependencies are
present.Module::init()
method to properly receive a ModuleManager
instance, and
not expect a ModuleEvent
.Zend\Form\FormElementManagerFactory
, for creating and returning instances of
Zend\Form\FormElementManager
. This factory was ported from zend-mvc, and
will replace it for version 3 of that component.Zend\Form\Annotation\AnnotationBuilderFactory
, for creating and returning
instances of Zend\Form\Annotation\AnnotationBuilder
. This factory was ported
from zend-mvc, and will replace it for version 3 of that component.ConfigProvider
, which maps the FormElementsManager
and
FormAnnotationBuilder
servies previously provided by zend-mvc; the form
abstract factory as previously registered by zend-mvc; and all view helper
configuration.Module
, which maps services and view helpers per the ConfigProvider
, and
provides configuration to the zend-modulemanager ServiceLocator
in order
for modules to provide form and form element configuration.Zend\Form\View\HelperConfig
; the functionality is made obsolete by
ConfigProvider
. It now consumes the latter in order to provide view helper
configuration.Zend\Form\Form::getInputFilter()
when lazy-creates an InputFilter
instance, it is populated with the InputFilterFactory
present in its own
FormFactory
. This ensures that any custom inputs, input filters, validators,
or filters are available to the new instance.Zend\Form\Factory::create()
when pulling elements from the form element
manager; it now will pass specifications provided for the given element when
calling the manager's get()
method.>=2.5.0,<2.7.0
to ensure hydrators
will work as expected following extraction of hydrators to the zend-hydrator
repository.AllowEmpty
and ContinueIfEmpty
annotations, to mirror changes made in
zend-inputfilter#26.