All notable changes to this project will be documented in this file, in reverse chronological order by release.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #96 adds
compatibility with symfony/console
^5.0
.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #93 fixes
issue with DI containers where configuration is an ArrayObject not an array.
handler:create
command works now properly withAura.Di
andSymfony DI
containers.
-
#85 adds support for PHP 7.3.
-
#86 adds the ability to provide the
--modules-path
option to the variousmodule:*
commands via configuration. In each case, if the option is omitted, the command will search for aZend\Expressive\Tooling\Module\CommandCommonOptions.--modules-path
configuration entry, and use it if present. When present, calling any of these commands can now omit the--modules-path
option when a custom path is required.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #83 fixes behavior when generating template names. The intention was for both
namespace separators and TitleCase words to be dash-separated, but the latter
previously were not; the patch in this release corrects the behavior. As such,
names such as
DbExample
will now correctly map to a template with the namedb-example
.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
-
#80 removes unnecessary
{@inheritDoc}
annotations from generated code. -
#79 adds
public
visibility to all declared constants. While this was assumed before, now it is explicit. -
#81 modifies the
action:create
andhandler:create
commands to emit a more sensible error in situations when the createdRequestHandlerInterface
is not namespaced.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #75
modifies the generated
config/autoload/zend-expressive-tooling-factories.global.php
file to include astrict_types
declaration, for consistency with other generated files.
- Nothing.
- Nothing.
- #77 fixes
an issue with where generated template files were placed in the filesystem
when working with a module; they are now correctly placed in the module's
templates
directory.
-
#39 and #44 add support for PSR-15. The
expressive middleware:create
command will now generate PSR-15 middleware. -
#39 and #44 add a new tool:
expressive migrate:interop-middleware
. This tool will migrate existing http-interop middleware, delegators, and/or request handlers of any version to PSR-15 middleware and request handlers. -
#48 adds a new command,
expressive handler:create
, which will create a PSR-15 request handler using the class name provided. -
#52 adds the command
factory:create
. The command expects a fully-qualified, resolvable, class name; it then generates a factory class for it as a sibling class file, using reflection. By default, it also registers the class and factory with the container, in the fileconfig/autoload/zend-expressive-tooling-factories.global.php
. Pass the option--no-register
to disable this auto-registration. -
#55 adds an
action:create
command. This command is mapped to the existinghandler:create
command, which now varies its help messages and argument names based on the command name provided. -
#58 adds the command
migrate:middleware-to-request-handler
. This command accepts an optional--src
option (default to./src
), under which it will scan for class files where middleware is defined. If a given class file represents middleware, and the middleware does not call upon the handler argument, it rewrites the middleware as a request handler. -
#63 adds template generation capabilities to the
handler:create
/action:create
commands. If aTemplateRendererInterface
service is detected in the container, it will generate a template based on the root namespace of the generated class and the class name (minus anyHandler
,Action
, orMiddleware
suffixes), and update the class to render the template into a zend-diactorosHtmlResponse
. It also then exposes the following options:-
--without-template
disables template generation and template awareness in the generated class. -
--with-template-namespace
allows specifying an alternative template namespace. -
--with-template-name
allows specifying an alternative template name (separately from the namespace). -
--with-template-extension
allows specifying an alternative template file extension. By default, it will use thetemplates.extension
configuration value, or a default based on known template renderers.
-
-
Adds support for zend-component-installer
^2.0
.
-
#52 modifies the
middleware:create
command to invokefactory:create
once it has successfully created the new middleware. You may disable this feature by passing the option--no-factory
; if you want to generate the factory, but not auto-register the middleware service, pass the option--no-register
. -
#52 modifies the
handler:create
command to invokefactory:create
once it has successfully created the new request handler. You may disable this feature by passing the option--no-factory
; if you want to generate the factory, but not auto-register the request handler service, pass the option--no-register
. -
#56 modifies all generated classes to add a
declare(strict_types=1)
directive.
- Nothing.
-
#39 removes support for http-interop/http-middleware.
-
#39 removes support for PHP versions prior to PHP 7.1.
-
Removes support for zend-component-installer
^1.1
. -
#72 removes the
migrate:expressive-v2.2
command; the 1.0.0 release explicitly requires zend-expressive 3, making that command useless. -
#47 removes a number of legacy commands built to help migration from Expressive version 1 to version 2, as they are no longer compatible with dependencies against with this version works. These commands include:
expressive migrate:pipeline-from-config
expressive migrate:original-messages
expressive migrate:error-middleware-scanner
-
#47 removes all scripts other than
expressive
from the package definition.
-
#73 reverts the change introduced by #69 as multi-segment namespaces are not yet supported by zf-component-installer, causing creation of the autoloader entry to result in an error during module creation.
-
#48 fixes the description of the
expressive middleware:create
command to reference PSR-15 instead of http-interop. -
#49 fixes how the
module:create
command generates template configuration. It no longer produces "layout" and "error" configuration, and renames the "app" template namespace to a normalized version of the module name generated. -
#69 fixes an issue with
module:create
when presented with a multi-segment namespace. It now correctly creates a directory structure using all namespace segments.
-
#71 adds the new command
migrate:expressive-v2.2
. This command does the following:- Adds
Zend\Expressive\Router\ConfigProvider
toconfig/config.php
. - Adds
Zend\Expressive\ConfigProvider
toconfig/config.php
. - Replaces
pipeRoutingMiddleware()
calls withpipe(\Zend\Expressive\Router\Middleware\RouteMiddleware::class)
. - Replaces
pipeDispatchMiddleware()
calls withpipe(\Zend\Expressive\Router\Middleware\DispatchMiddleware::class)
. - Replaces
pipe()
calls that pipeImplicit*Middleware
to reference zend-expressive-router variants.
- Adds
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #46 adds
compatibility with symfony/console
^4.0
.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #32 adds a
new argument to
CreateMiddleware::process()
,$classSkeleton
; if provided, the value will be used as the skeleton for a new middleware class to generate, instead of the default provided with the tooling.
- Nothing.
- Nothing.
- Nothing.
- #31 provides fixes to the various generators such that they will now throw exceptions if the middleware they are attempting to create already exist on the filesystem.
- Nothing.
- Nothing.
- Nothing.
- #28 adds
to the bootstrap of the the
expressive
command another path to check for the autoloader; this new path is necessary to enable autoloading to work correctly on MacOS.
- Nothing.
- Nothing.
- Nothing.
-
#24 fixes incorrect use statement in
CreateMiddleware::CLASS_SKELETON
. -
#25 fixes symfony/console required version to be less restrictive.
- Nothing.
- Nothing.
- Nothing.
- #26
updates the constraints for:
- zend-expressive to
^2.0
only, since that has now been released. - zend-component-installer to
^1.0 || ^0.7.1
, fixing an issue when installing Expressive with modular support due to constraint violations.
- zend-expressive to
- Nothing.
- Nothing.
- Nothing.
- Updates zend-component-installer minimum version to 0.7.1, which provides a
fix for detection of config providers; prior to this fix,
module:degister
could not remove globally qualified config providers for a module.
-
#22 and #23 add the script
expressive
, which allows executing any of the other commands provided in the package, including a new command for middleware creation. The exposed commands are:- middleware:create: Create an http-interop middleware class file.
- migrate:error-middleware-scanner: Scan for legacy error middleware or error middleware invocation.
- migrate:original-messages: Migrate getOriginal*() calls to request attributes.
- migrate:pipeline: Generate a programmatic pipeline and routes from configuration.
- module:create: Create and register a middleware module with the application
- module:deregister: Deregister a middleware module from the application
- module:register: Register a middleware module with the application
All previous scripts (e.g.,
expressive-pipeline-from-config
) are still present and continue to work, but are deprecated in favor of theexpressive
script.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #17
changes the reference to the
DefaultDelegate
in the generatedconfig/autoload/programmatic-pipeline.global.php
to be a string instead of using::class
notation. Using a string name makes it clear the service is not a concrete class or interface name.
- Nothing.
- Nothing.
- #16 fixes
generation of routes where no HTTP method is specified to use a
null
instead of theZend\Expressive\Router\Route::HTTP_METHOD_ANY
constant.
- #15 adds
documentation for the
expressive-module
command to the README file.
- Nothing.
- Nothing.
- #14 fixes
the
public/index.php
template to remove theerror_reporting()
declaration, as it is no longer necessary with Stratigily 2 and the upcoming Expressive 2 release.
- #12 adds
the new tool
expressive-module
, with the commandscreate
,register
, andderegister
, for creating new "modules".create
will create a tree under thesrc/
tree named for the provided module containingsrc/
andtemplates/
subdirectories, as well as aConfigProvider
class; it then adds an entry for theConfigProvider
to the application configuration, and an autoloading entry tocomposer.json
.register
will register an existing module with the application configuration, and, if necessary, enable autoloading for it withcomposer.json
.deregister
does the opposite ofregister
, without removing any files from the source tree. Use the command'shelp
,--help
, or-h
options for full usage details.
-
#10 updates the
expressive-pipeline-from-config
tooling to no longer generatepipeErrorHandler()
statements. It will now notify users via STDOUT if legacy error handlers are encountered, indicating which were encountered. -
#10 updates the
expressive-pipeline-from-config
tooling to now register theDefaultDelegate
andNotFoundDelegate
services, with the former aliased to the latter.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
-
#7 updates the
Zend\Expressive\Tooling\GenerateProgrammaticPipelineFromConfig\Generator
class such that it now:- Adds dependency configuration for
Zend\Expressive\Middleware\ImplicitHeadMiddleware
- Adds dependency configuration for
Zend\Expressive\Middleware\ImplicitOptionsMiddleware
- Registers each of the above middleware immediately following the routing middleware in the pipeline.
- Adds dependency configuration for
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #6 provides
some internal refactoring of
Zend\Expressive\Tooling\GenerateProgrammaticPipelineFromConfig\Generator
to optimize performance and maintainability when generating the routing statements.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #1 updates
the various
Help
classes to translate a command name to be relative to thevendor/bin/
directory under every operating system when run local to a project. - #3 fixes
the top-level key used in generated configuration files to properly be
zf-expressive
instead ofzf-expressive-tooling
. - #5 fixes
the help message for the
expressive-pipeline-from-config
command to detail what it actually does (vs what the original incarnation did).
- Nothing.
- Nothing.
- Nothing.
- Fixed the namespace declarations of all vendor binaries to ensure each points to the correct tooling namespace for the command being invoked.
- Initial release.
- Nothing.
- Nothing.
- Nothing.
- Nothing.