|
| 1 | +======== |
| 2 | +Flow 4.3 |
| 3 | +======== |
| 4 | + |
| 5 | +==================== |
| 6 | +Upgrade Instructions |
| 7 | +==================== |
| 8 | + |
| 9 | +This section contains instructions for upgrading your Flow 4.2 based applications to Flow 4.3. |
| 10 | + |
| 11 | +In general just make sure to run the command:: |
| 12 | + |
| 13 | + ./flow flow:cache:flush --force |
| 14 | + |
| 15 | +If you are upgrading from a lower version than 4.2, be sure to read the upgrade instructions from |
| 16 | +the previous Release Notes first. |
| 17 | + |
| 18 | +What has changed |
| 19 | +---------------- |
| 20 | + |
| 21 | +Flow 4.3 comes with a major change in the routing and numerous fixes. Here's a list of changes that |
| 22 | +might need special attention when upgrading. |
| 23 | + |
| 24 | +`!!! FEATURE: More extensible Routing <https://github.com/neos/flow-development-collection/pull/1126>`_ |
| 25 | +------------------------------------------------------------------------------------------------------- |
| 26 | + |
| 27 | +The Flow-routing is improved and now allows the definition of RoutingParameters |
| 28 | +via HTTP-components that can later on be handled by custom RoutePartHandlers. |
| 29 | +That way the routing can react to influences other than the uri-path like the |
| 30 | +requested host-name or scheme or any other computable value. |
| 31 | + |
| 32 | +Attention: The signature of the internal Router implementation has changed. |
| 33 | +In the unlikely case that you replaced the flow-router with a custom-router |
| 34 | +you have to adjust your code accordingly. |
| 35 | + |
| 36 | +Routing Parameters |
| 37 | +^^^^^^^^^^^^^^^^^^ |
| 38 | + |
| 39 | +Routing `Parameters` can be defined globally (via HTTP component) in order |
| 40 | +to allow custom RoutePart handler to react to influences that are outside of |
| 41 | +the incoming URI path (example: The requested host name or scheme) |
| 42 | + |
| 43 | +For a RoutePart handler to access the parameters they have to implement |
| 44 | +the new `ParameterAwareRoutePartInterface`. |
| 45 | +The `DynamicRoutePart` already implements the interface. For custom implementations |
| 46 | +extending `DynamicRoutePart` the parameters will be accessible via `$this->parameters`. |
| 47 | + |
| 48 | +Extended URI matching |
| 49 | +^^^^^^^^^^^^^^^^^^^^^ |
| 50 | + |
| 51 | +RoutePart handlers can now return an instance of `MatchResult` when mapping |
| 52 | +incoming requests. |
| 53 | +This allows the handler to specify *Tags* to be associated with the route. |
| 54 | + |
| 55 | +* Packages: ``Flow`` |
| 56 | + |
| 57 | +`!!! FEATURE: Allow bypassing Flow class loader for performance <https://github.com/neos/flow-development-collection/pull/925>`_ |
| 58 | +-------------------------------------------------------------------------------------------------------------------------------- |
| 59 | + |
| 60 | +Currently the composer class loader is only used as a fallback to our own, |
| 61 | +but especially if the optimized loader is used the composer one is much |
| 62 | +faster. |
| 63 | + |
| 64 | +On systems in which all packages/classes are registered correctly via |
| 65 | +autoload statements in ``composer.json`` files using our own class loader |
| 66 | +only for proxy classes can bring an substantial boost in performance for |
| 67 | +every request. |
| 68 | + |
| 69 | +In order to enable this feature you need to set an environment variable |
| 70 | +``FLOW_ONLY_COMPOSER_LOADER=1``. Please test carefully if that breaks due |
| 71 | +to your autoload configuration not being fully composer ready. |
| 72 | + |
| 73 | +Additionally it is recommended to use the optimized composer loader by |
| 74 | +calling ``composer dumpautoload -o``. |
| 75 | + |
| 76 | +While not breaking in itself this change deprecates using our class loader |
| 77 | +for anything else than proxy classes. In practice this means you should |
| 78 | +always enable composer auto loader only by using above mentioned environment |
| 79 | +variable. At least make sure that your projects work with this |
| 80 | +enabled. |
| 81 | + |
| 82 | +We will drop the variable and make this the default behavior in the next |
| 83 | +major version of Flow (version 5.0) which means only classes that are |
| 84 | +correctly added to composer (loaded) packages with autoload configuration |
| 85 | +are being loaded correctly. |
| 86 | + |
| 87 | +* Packages: ``Flow`` |
| 88 | + |
| 89 | + |
| 90 | +`TASK: Split Flow Log to separate package <https://github.com/neos/flow-development-collection/pull/216>`_ |
| 91 | +---------------------------------------------------------------------------------------------------------- |
| 92 | + |
| 93 | +The log-package was extracted from Flow to become a separate independent |
| 94 | +composer-package neos/flow-log that can be used outside of Neos or Flow |
| 95 | +projects. This continues our long-time-effort of extracting parts of our |
| 96 | +odebase that can be used separately and making them available to the |
| 97 | +whole php-community. |
| 98 | + |
| 99 | +The `SystemLoggerInterface` and `SecurityLoggerInterface` are kept |
| 100 | +in Flow as they have not much meaning in the Logger package. Additionally |
| 101 | +the `EarlyLogger` was not moved as it depends on those interfaces. |
| 102 | + |
| 103 | +* Packages: ``Flow`` ``Log`` |
| 104 | + |
| 105 | +`FEATURE: Add cookie support on curl request <https://github.com/neos/flow-development-collection/pull/1099>`_ |
| 106 | +-------------------------------------------------------------------------------------------------------------- |
| 107 | + |
| 108 | +`Neos\\Flow\\Http\\Client\\CurlEngine` will now attach cookies to an outgoing request. |
| 109 | + |
| 110 | +* Packages: ``Flow`` |
| 111 | + |
| 112 | + |
| 113 | +`FEATURE: PHP 7.2 compatibility` |
| 114 | +-------------------------------- |
| 115 | + |
| 116 | +Flow framework now supports PHP 7.2 and all tests are executed for PHP versions 7.0, 7.1 and 7.2. |
| 117 | + |
| 118 | + |
0 commit comments