All notable changes to this project will be documented in this file, in reverse chronological order by release.
#170 ensures that variables referenced in compact()
operations are properly
initialized, fixing an error that occures in PHP 7.3.
#169 adds zendframework/zend-json as a required dependency, as it is referenced in multiple locations within the package.
#156 adds missing @method
annotations to the HeadMeta
helper.
#135 adds support for PHP 7.2.
#138 adds support for
the HTML5 "as" attribute to the HeadLink
helper. This can be used to help
prioritize resource loading.
#139 adds two new
methods to the Zend\View\Helper\Gravatar
class: setAttributes()
and
getAttributes()
.
placeholder()
helper to no longer render a prefix or postfix if
no items are available in the container.Zend\View\Helper\Gravatar
methods setAttribs()
and getAttribs()
in favor
of the new methods setAttributes()
and getAttributes()
, respectively.Navigation
helper class to document the various proxy methods it allows via
method overloading via @method
annotations.#123 updates the
HelperPluginManager
such that it no longer injects a translator in a helper
if one is already present.
#125 provides an update
to the PhpRenderer:render()
method such that it will now catch not only
Exception
instances, but also PHP 7 Throwable
instances, and properly
cleanup the output buffers when it does.
#121 provides a fix to
ensure that content generated on a previous execution of PhpRenderer::render()
is never re-used.
#89 updates the
HeadScript
and InlineScript
view helpers to whitelist the id
attribute
as an optional attribute.
#96 updates the
HeadScript
, HeadLink
, and InlineScript
view helpers to whitelist the
crossorigin
and integrity
attributes as optional attributes.
#64 adds a new Asset
view helper. This helper uses the following configuration to map a named asset
to the actual file to serve:
'view_helper_config' => [
'asset' => [
'resource_map' => [
'css/style.css' => 'css/style-3a97ff4ee3.css',
'js/vendor.js' => 'js/vendor-a507086eba.js',
],
],
],
This can also be automated via tools such as gulp-rev and grunt-rev by using
the rev-manifest.json
each creates directly within your configuration:
'view_helper_config' => [
'asset' => [
'resource_map' => json_decode(file_get_contents('path/to/rev-manifest.json'), true),
],
],
The benefit of this approach is that it allows your view scripts to reference a static asset name, while integrating with your JS and CSS build tools.
default
or
navigation
containers (documentation specified default
, but usage only
allowed navigation
previously). When default
is specified, the
Zend\Navigation\Navigation
service will be used for the container; if
navigation
is used, that service will be pulled instead (which is usually an
alias for the Zend\Navigation\Navigation
service anyways).$partial
argument, as that key
is no longer used.HeadMeta
helper renders the <meta charset>
tag, ensuring it is the first
rendered. As long as the HeadMeta
helper is called early in your markup, this
should ensure it is within the first 1024 characters, ensuring your document
validates.@method
annotation for the Placeholder
view helper to use the correct case,
fixing issues with method completion in IDEs.PhpRendererStrategy
whereby absence of a response instance in the
ViewEvent
would lead to a fatal error.templatemap_generator.php
, which is available in
vendor/bin/templatemap_generator.php
once installed. This script replaces
the original present in the zendframework/zendframework package, and
simplifies it for the most common use case. Usage is: $ cd module/ModuleName/config
$ ../../../vendor/bin/templatemap_generator.php ../view > template_map.config.php
You can also provide a list of files via globbing or usage of find
after the
initial directory argument; if provided that list of files will be used to
generate the map. (The directory argument is then used to strip the path
information when generating the template name.)
loop()
method to the partialLoop()
helper, allowing the ability to chain setters
with rendering:
$this->partialLoop()->setObjectKey('foo')->loop('partial', $data)
HelperPluginManager
.async
attribute within the headScript
helper.headScript
helper to allow empty attribute types to render as keys only when
using an HTML5 doctype.url()
helper so that it can work with either the zend-mvc v2 router subcomponent or
zend-router.Zend\View\Helper\TranslatorAwareTrait
, which provides implementation for
Zend\I18n\Translator\TranslatorAwareInterface
, and allowed removal of
duplicated implementations in several helpers.Zend\I18n\Translator\TranslatorAwareInterface
by allowing
helpers to duck type the interface to receive a translator during
instantiation; this allows such helpers to work even when zend-i18n is not
installed. The following helpers were updated to duck type the interface
instead of implement it explicitly:
FlashMessenger
HeadTitle
Navigation
helpersHelperPluginManager
now implements an EventManagerAware
initializer.Zend\View\Helper\Navigation\AbstractHelper
now contains logic to ensure
that when an EventManager
instance is lazy-loaded, it composes a
SharedEventManager
.FlashMessenger
factory now correctly pulls the config
service, not
the Config
service (former is both backwards- and forwards compatible).Navigation\PluginManager::__construct()
to ensure it properly pulls and
injects the application container into navigation helpers, under both
zend-servicemanager v2 and v3. Additionally, when lazy-instantiating the
Navigation\PluginManager
, the Navigation
helper now passes the composed
service manager instance to its constructor.Navigation\PluginManager
to ensure it is backwards compatible
with zend-servicemanager v2, including:
HelperPluginManager::injectTranslator()
to return
early if no container is provided (fixing an issue with navigation
helpers introduced in 2.6.0).HelperPluginManager
to ensure it is backwards compatible
with zend-servicemanager v2.Breadcrumbs
and Menu
navigation helpers,
renderPartialWithParams(array $params = [], $container = null, $partial = null)
.
This method allows passing parameters to the navigation partial to render,
just as you would when using the partial()
view helper.itemprop
attribute in the headLink()
view helper.PhpRenderer::render()
to no longer lazy-instantiate a FilterChain
;
content filtering is now only done if a FitlerChain
is already
injected in the renderer.ServerUrl
detects and emits the port when port-forwarding is in
effect.ServerUrl
detects and emits the port when port-forwarding is in
effect.