All notable changes to this project will be documented in this file, in reverse chronological order by release.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #57 adds support for PHP 7.3.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #54 fixes issues when run with symfony/console v4 releases.
-
#52 adds the ability to whitelist packages exposing config providers and/or modules. When whitelisted, the installer will not prompt to inject configuration, but instead do it automatically. This is done at the root package level, using the following configuration:
"extra": { "zf": { "component-whitelist": [ "some/package" ] } }
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #49 modifies the default options for installer prompts. If providers and/or modules are discovered, the installer uses the first discovered as the default option, instead of the "Do not inject" option. Additionally, the "remember this selection" prompt now defaults to "y" instead of "n".
- Nothing.
- #50 removes support for PHP versions 5.6 and 7.0.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #47 fixes
an issue during package removal when a package defines multiple targets (e.g.,
both "component" and "config-provider") and a
ConfigInjectorChain
is thus used by the plugin; previously, an error was raised due to an attempt to call a method theConfigInjectorChain
does not define.
- #42 adds support for PHP 7.2.
- Nothing.
- #42 removes support for HHVM.
- #40 and #44 fix an issue whereby packages that define an array of paths for a PSR-0 or PSR-4 autoloader would cause the installer to error. The installer now properly handles these situations.
First stable release.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #38 fixes
an issue with detection of config providers in
ConfigAggregator
-based configuration files. Previously, entries that were globally qualified (prefixed with\\
) were not properly detected, leading to the installer re-asking to inject.
- #34 adds support for applications using zendframework/zend-config-aggregator.
- #34
updates the internal architecture such that the Composer
IOInterface
no longer needs to be passed during config discovery or injection; instead, try/catch blocks are used within code exercising these classes, which already composesIOInterface
instances. As such, a number of public methods that were receivingIOInterface
instances now remove that argument. If you were extending any of these classes, you will need to update accordingly.
- Nothing.
- Nothing.
- Nothing.
- #31 adds support for zend-config-aggregator-based application configuration.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #29
updates the composer/composer dependency to
^1.2.2
, and, internally, usesComposer\Installer\PackageEvent
instead of the deprecatedComposer\Script\PackageEvent
.
- Nothing.
- Nothing.
- Nothing.
- #24 adds
a new method to the
InjectorInterface
:setModuleDependencies(array $modules)
. This method is used in theComponentInstaller
when module dependencies are discovered, and by the injectors to provide dependency order during configuration injection.
- Nothing.
- Nothing.
- #22 and #25 fix a bug whereby escaped namespace separators caused detection of a module in existing configuration to produce a false negative.
- #24 fixes an issue resulting from the additions from #20 for detecting module dependencies. Since autoloading may not be setup yet, the previous approach could cause failures during installation. The patch provided in this version introduces a static analysis approach to prevent autoloading issues.
- #12 adds
a
DiscoveryChain
, for allowing discovery to use multiple discovery sources to answer the question of whether or not the application can inject configuration for the module or component. The stated use is for injection into development configuration. - #12 adds
a
ConfigInjectorChain
, which allows injecting a module or component into multiple configuration sources. The stated use is for injection into development configuration. - #16 adds support for defining both a module and a component in the same package, ensuring that they are both injected, and at the appropriate positions in the module list.
- #20 adds
support for modules that define
getModuleDependencies()
. When such a module is encountered, the installer will now also inject entries for these modules into the application module list, such that they always appear before the current module. This change ensures that dependencies are loaded in the correct order.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #15 fixes how modules are injected into configuration, ensuring they go (as documented) to the bottom of the module list, and not to the top.
- Nothing.
- Nothing.
- #4 removes support for PHP 5.5.
- #8 fixes
how the
DevelopmentConfig
discovery and injection works. Formerly, these were looking for thedevelopment.config.php
file; however, this was incorrect. zf-development-mode hasdevelopment.config.php.dist
checked into the repository, but specifically excludesdevelopment.config.php
from it in order to allow toggling it from the.dist
file. The code now correctly does this.
-
#5 adds support for arrays of components/modules/config-providers, in the format:
{ "extra": { "zf": { "component": [ "Some\\Component", "Other\\Component" ] } } }
This feature should primarily be used for metapackages, or config-providers where some configuration might not be required, and which could then be split into multiple providers.
- Nothing.
- Nothing.
- Nothing.
First tagged release.
Previously, PHAR releases were created from each push to the master branch. Starting in 0.1.0, the architecture changes to implement a composer plugin. As such, tagged releases now make more sense, as plugins are installed via composer (either per-project or globally).
- #2 adds:
- All classes in the
Zend\ComponentInstaller\ConfigDiscovery
namespace. These are used to determine which configuration files are present and injectable in the project. - All classes in the
Zend\ComponentInstaller\Injector
namespace. These are used to perform the work of injecting and removing values from configuration files. Zend\ComponentInstaller\ConfigOption
, a value object mapping prompt text to its related injector.Zend\ComponentInstaller\ConfigDiscovery
, a class that loops over known configuration discovery types to return a list ofConfigOption
instances
- All classes in the
- Nothing.
- #2 removes
all classes in the
Zend\ComponentInstaller\Command
namespace. - #2 removes
the various
bin/
scripts. - #2 removes the PHAR distribution.
- #2 updates
Zend\ComponentInstaller\ComponentInstaller
:- to act as a Composer plugin.
- to add awareness of additional configuration locations:
modules.config.php
(Apigility)development.config.php
(zf-development-mode)config.php
(Expressive with expressive-config-manager)
- to discover and prompt for known configuration locations when installing a package.
- to allow re-using a configuration selection for remaining packages in the current install session.