Allow arbitrary names and locations for "Web" directory
Currently the public directory must be called "Web" and reside on directory below FLOW3's root directory.
More specifically the bash script requires the directory to be called "Web" because it calls ./Web/index.php. Other parts of FLOW3 seem not to rely on the name because it is not hardcoded.
What's fixed though is the fact that the bootstrap must be accessible via ../Packages/Framework/FLOW3/Scripts/FLOW3.php. Even if the require statement in the index.php script would be adjusted to another structure, the bootstrap would still rely on this relative path.
Unfortunately this doesn't match the reality at most hosters. The following structure (and others) must equally be possible:
/var/www/foo/bar/ myApp/ Configuration/ Data/ Packages/ Framework/ FLOW3/ ... log/ tmp/ htdocs/ Resources/ Packages/ ... .htaccess index.php
So: Make sure that FLOW3 works with arbitrary names for the Web directory and arbitrary relative paths between Web and the FLOW3.php script.
[+FEATURE] FLOW3 (Cache): The FileBackend now uses a shorter hash for the directory names which relaxes the situation for Windows users with a limited path length. The hash is now rendered from the Web path, SAPI type, process user name and application context. Please manually delete everything the Data/Temporary/ directory to get rid of old caches files.
[+FEATURE] FLOW3 (Configuration): The configuration manager now sets the FLOW3 setting "core.context" to the current application context. Resolves #4084
[+BUGFIX] FLOW3 (Core): Reimplemented the detection of various paths which are later available as FLOW3_PATH_ constants. Now supports any setup with symlinks which makes sense. It's important though that the flow3 script is a real file in the installation and no symlink. FLOW3's root path is now determined by an environment variable. This is optional in web mode but mandatory in CLI mode. The environment variable is set automatically by the flow3 script. Resolves #4082 and relates to #3990.
[+BUGFIX] FLOW3 (Package): Files in the directory Packages/ are now ignored by the package manager and the package directory scan was optimized for better performance. Resolves #4085
[~TASK] FLOW3 (Utility): The Arrays::trimExplode() function now removes empty values from the result by default.
[+FEATURE] FLOW3 (Core): FLOW3 now supports a custom name and location for the "Web" directory. The path is detected automatically in Web mode and must be specified in the flow3 shell script (environment variable FLOW3_WEBPATH) to work in command line mode. Resolves #3990.