[root]/Classes/Utility
Unicode
(0 files, 0 lines)

| Author | Changes | Lines of Code | Lines per Change |
|---|---|---|---|
| Totals | 232 (100.0%) | 1875 (100.0%) | 8.0 |
| k-fish | 171 (73.7%) | 1003 (53.5%) | 5.8 |
| robert | 55 (23.7%) | 587 (31.3%) | 10.6 |
| bwaidelich | 5 (2.2%) | 281 (15.0%) | 56.2 |
| andi | 1 (0.4%) | 4 (0.2%) | 4.0 |
Removed everything in trunk after move to git.
0 lines of code changed in 21 files:
[-TASK] FLOW3: Removed @version keyword from files, resolves #8835.
0 lines of code changed in 10 files:
[~TASK] FLOW3: Added hint on is_link() bug we work around...
2 lines of code changed in 1 file:
[+BUGFIX] FLOW3: Added helper function \F3\FLOW3\Utility\Files::is_link() that works on Windows too. This resolves #8432.
21 lines of code changed in 1 file:
[~TASK] DocumentationBrowser: Bumped version number in Package.xml to next release version.
[~TASK] FLOW3: Bumped version number in Package.xml to next release version, resolves #8025.
[~TASK] Fluid: Bumped version number in Package.xml to next release version.
[~TASK] Kickstart: Bumped version number in Package.xml to next release version.
[~TASK] Party: Bumped version number in Package.xml to next release version.
[~TASK] Testing: Bumped version number in Package.xml to next release version.
[~TASK] Welcome: Bumped version number in Package.xml to next release version.
25 lines of code changed in 1 file:
[+FEATURE] FLOW3 (Security): Implemented request to "Create encryption hash if none was defined", resolves #7516, resolves #7517.
27 lines of code changed in 1 file:
[~TASK] FLOW3 (Persistence): When persisting NULL values are now recorded and collection (array, SplObjectStorage) properties are restored as NULL if they contained NULL, resolves #6520.
[~TASK] FLOW3 (Persistence): Equality comparison in a query now works correctly when comparing against NULL, relates to #8299.
[+API] FLOW3 (Persistence): Query::isEmpty() has been added and can check for empty collection properties, relates to #8299.
[~TASK] FLOW3 (Persistence): The like() constraint now can be used case-insensitive (like equals); constraints do stricter checks on property and operand types.
19 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Configuration): getConfiguration() now returns settings for all packages if asked to do so, fixes #6967.
[+BUGFIX] FLOW3 (Object): Interfaces with no known implementation but a factory can be used now, fixes #6968, relates to #6928.
[~TASK] FLOW3 (Utility): In environment we no longer prohibit access to to $_SERVER, this makes use of third party code easier.
0 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (MVC): Fixed the recently introduced setControllerObjectName method in the MVC Request class - it wrongly accepted object names with a leading backslash.
1 lines of code changed in 1 file:
[+FEATURE] FLOW3 (Property): The property mapper now issues a meaningful mapping error if the type hint or doc comment of a target setter is invalid. Resolves #6774
2 lines of code changed in 1 file:
[~API] FLOW3 (Utility): Renamed detectBaseUri() to getBaseUri().
[~TASK] FLOW3 (MVC): Recomitted my previous change in getRequestPath and reworked the path rendering in the Request object (now is called "route path"). Relates to #6596
[~BUGFIX] FLOW3 (Security): The WebRedirect entry point now takes the Base URI into account. That means you'll have to specify a _relative_ URI in your settings for defining a web entry point (i.e. no leading slash!).
32 lines of code changed in 1 file:
[+API] FLOW3 (Utility): Added detectBaseUri() to Environment. Given an URI instance it tries to detect the corresponding base URI.
[+API] FLOW3 (Utility): Added getScriptRequestPath() to Environment, returns the path to the actual script request relative to the document root.
[~API] FLOW3 (Utility): Renamed getScriptRequestPathAndName() to getScriptRequestPathAndFilename() in Environment.
[~TASK] FLOW3 (MVC): Reverted recent change by Robert related to request path handling, relates to #6596
[~TASK] FLOW3 (Utility): Some more changes to getRequestUri() in Environment, relates to #6596, relates to #3029, relates to #3375.
[~TASK] FLOW3 (Resource): Make use of new getScriptRequestPath() method in FileSystemPublishingTarget.
52 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Core): Found out that the getRequestPath() method returned a wrong path in the FCGI case. Probably now finally fixes #6596
4 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Core): FLOW3 now detects environment variables which are prepended with "REDIRECT_". This seems to happen under certain circumstances with FCGI + Apache. Resolves #6596
3 lines of code changed in 1 file:
[+FEATURE] FLOW3 (Object): Implemented a static object container which is automatically built. It's essentially a hardcoded version of the autowired and configured object dependencies - just a lot faster. Many tests are still missing, but the version in this commit should be mostly functional. Addresses #3740 and resolves #2123.
[!!!][~API] FLOW3 (Object): Heavily refactored the Object Manager and its tests. The most important change is the removal of the Object Factory whose create() method is now located in the Object Manager. Furthermore, the getObject() method has been renamed to get() and a few minor important API functions within the Object Manager have been modified. This commit also contains a script which allows for semi automatically migrating existing code to the new API (see ./flow3 migrate objectmanagerusage). Resolves #6562
[~TASK] FLOW3 (Configuration): The Configuration Manager and its YAML source now doesn't depend on the YAML package anymore but refers to a YAML parser class within the FLOW3 package. Resolves #6564.
0 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Utility): The request URI is now detected correctly with PHP as Apache module as well as FastCGI (tested on Cherokee). Fixes #3029, fixes #3375.
4 lines of code changed in 1 file:
[+FEATURE] FLOW3 (Cache): Implemented a PHP Cache Frontend which allows for effective caching of PHP code which is included with require_once() instead of runtime parsing with eval(). This significantly improves speed when used in combination with an opcode cache such as APC. Currently only the FileBackend supports PHP code caching. Resolves #6137
[+FEATURE] FLOW3 (AOP): The AOP Framework now uses the new PHP cache frontend for storing AOP proxy classes. Speeds up the initial startup of FLOW3 enormously. Relates to #6137
[~TASK] FLOW3: Removed all dependencies from the PHP6 package because the unicode support we were using didn't really make sense in the respective situations.
[+BUGFIX] FLOW3 (Utility): Fixed a bug in Files::emptyDirectoryRecursively() which wrongly recognized certain files as directories due to incorrect usage of the directory iterator.
6 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Property): PropertyMapper::transformToObject() now returns the result of an object converter call if it is NULL or an object. If an error object is returned, it returns NULL and adds the error to the mapping results. Fixes #6209.
[~TASK] FLOW3 (Resource): The ResourceObjectConverter now returns NULL if no file was uploaded. In case an upload error occurred or the file extension was rejected an Error object is returned (formerly it would return FALSE or throw an exception respectively). Related to #6209.
[+FEATURE] FLOW3 (Utility): Added getUploadErrorMessage() to Files.
29 lines of code changed in 1 file:
[+FEATURE] FLOW3 (Property): The PropertyMapper now only maps to settable properties and no longer relies on the class schema to determine the type for the target property - it uses the setter parameter's type if available and falls back to the class schema if needed. Resolves #5612.
[+FEATURE] FLOW3 (Reflection): When reflecting classes entities and value objects are checked for being declared prototype, resolves #6141.
[+FEATURE] FLOW3 (Reflection): ClassSchema now enforces consistency when it comes to value objects and identity/identifier properties, resolves #6140, resolves #6142.
[+BUGFIX] FLOW3 (Persistence): Fixed left over JCR constant in AbstractSqlBackend, fixes #6153.
90 lines of code changed in 1 file:
[+FEATURE] FLOW3 (Utility): Files::readDirectoriesRecursively now optionally returns the real path of all files found.
4 lines of code changed in 1 file:
[~TASK] FLOW3 (Resource): Nitpicking on param annotations.
[~TASK] FLOW3 (Utility): Nitpicking on param annotations.
1 lines of code changed in 1 file:
[#BUGFIX] FLOW3 (Resource): The FileSystemPublishingTarget caused a fatal exception when FLOW3 was run in CLI mode - fixed that.
3 lines of code changed in 1 file:
[+FEATURE][+API] Fluid (ViewHelper): The Resource view helper now supports Resource objects: Like before you can provide a path and package key pointing to a static package resource or you pass it a resource object. Relates to #5822
[~TASK][~API] Fluid (ViewHelper): The ActionViewhelper now produces only absolute URIs. The argument "absolute" is now obsolete.
[~TASK] Fluid (ViewHelper): Defined additional reserved keywords "on", "off", "yes" and "no" in the TemplateVariableContainer.
[~TASK] FLOW3 (Resource): Renamed a few classes in FLOW3/Resource/: "Manager" -> "ResourceManager", "Publisher" -> "ResourcePublisher". Relates to #5658
[~TASK] FLOW3 (Cache): Defined a new "magic" tag for the cache frontends: TAG_PACKAGE can now be used wherever cache entries should be flushed if any package is activated or deactivated. Relates to #5774
[~TASK] FLOW3: Replaced occurrences of "[fF]ileName" with "[fF]ilename".
[~TASK] FLOW3 (Package): isPackageAvailable() and isPackageActive() no longer throw exceptions if the given parameter is not a valid string. However they still return FALSE of course in those cases.
[+FEATURE][+API] FLOW3 (Reflection): Added a new method isMethodTaggedWith() to the Reflection Service.
[+FEATURE][+API] FLOW3 (Resource): Completely reworked the resource management module. It now supports persistent resources, file uploads and provides a more flexible publishing mechanism. Resolves #5822
[+FEATURE] FLOW3 (Resource): Implemented an Object Converter for resources which can handle file uploads.
[~TASK] FLOW3 (Utility): Renamed Files::mimeTypeFromFilename() and Files::mediaTypeFromFilename() to Files::getMimeTypeFromFilename() and Files::getMediaTypeFromFilename() respectively.
[~CONFIGURATION][~API] FLOW3 (Resource): Changed the names of settings for the Resource module. Please refer to the updated Settings.yaml for the new options.
[~TASK] FLOW3 (Documentation): Documented the new Resource module.
[~TASK] ExtJS: Updated the view helpers to match the new Resource framework. Relates to #5822
[~TASK] FLOW3: Implemented additional rewrite rules in the .htaccess file to support the new static resources publish mechanism.
2 lines of code changed in 1 file:
[~TASK] FLOW3 (AOP): Removed the "Resource" sub package from the blacklisted sub packages because it now contains a class (Resource) which needs to be persistable.
[-FEATURE][!!!] FLOW3 (MVC): For now removed the request hash feature (HMAC) because it mocks a level of security for incoming data which it doesn't provide. The current mechanism effectively puts control over content security into Fluid templates and it doesn't belong there. Although there might be a need for a request hash, the content security must be implemented by other means. Relates to #4960 and relates to #5659.
[+FEATURE] FLOW3 (MVC): Implemented support for file uploads. Uploading files is cooperation between the Web Request Builder, the Property Mapper and the Resource sub package. The solution included in this commit provides handling of incoming files (including nested arguments) and transparent conversion into Resource objects. Resources (files) are only stored once, no matter how often they are uploaded or what original filename they carried. Still missing: view helper, documentation and automatic purging of unused resource files. Addresses #342.
[~API][!!!] FLOW3 (Property): Renamed the property mapper class to "PropertyMapper" (was just "Mapper" before). Relates to #5658
[+FEATURE] FLOW3 (Property): The Property Mapper now supports a mechanism called Object Converters. These convertes enable the mapper to convert strings, arrays or numbers to certain objects, for example a unix time stamp to a DateTime object. Resolves #5660.
[+FEATURE] FLOW3 (Reflection): Implemented the methods "isPropertySettable" and "isPropertyGettable" for the ObjectAccess class.
[~TASK] FLOW3 (Resource): Renamed the StreamWrapper class to StreamWrapperAdapter
[+FEATURE] FLOW3 (Resource): Implemented a ResourceObjectConverter which is capable of converting arrays or strings to Resource objects.
[+FEATURE] FLOW3 (Utility): Implemented a setValueByPath() method for the Array utilities class.
[+FEATURE] FLOW3 (Utility): Added support for the _FILES super global to the Environment class. The array of information about uploaded files can be obtained in a much cleaner way than PHP provides it by the new getUploadedFiles() method.
139 lines of code changed in 3 files:
[~TASK] FLOW3 (Environment): Renamed getRawGETArguments() and getRawPOSTArguments() to getRawGetArguments() and getRawPostArguments().
2 lines of code changed in 1 file:
[~TASK] FLOW3 (Cache): Implemented a PDO-based cache backend, resolves #5446.
[~TASK] FLOW3 (Cache): Renamed APCBackend to ApcBackend, some other changes and optimizations.
[+TASK] FLOW3 (Utility): Added a small PdoHelper to aid in setting up DB tables.
93 lines of code changed in 1 file:
[~API] FLOW3 (Log): setLogFileURL() was renamed to setLogFileUrl() in FileBackend.
[~API] FLOW3 (MVC): redirectToURI() was renamed to redirectToUri() in AbstractController.
[~API] FLOW3 (MVC): setRequestURI(), getRequestURI(), setBaseURI() and getBaseURI() were renamed to *Uri() in Request.
[~API] FLOW3 (Property): DataType\URI was renamed to DataType\Uri.
[~API] FLOW3 (Utility): getRequestURI() was renamed to getRequestUri() in Environment.
[~TASK] Fluid (Service): Refactored XML generators a little.
[~TASK] DocumentationBrowser: Moved towards more consistent class, function and variable naming: changed uppercase acronyms to studlyCaps or StudlyCaps as needed.
[~TASK] FLOW3: Moved towards more consistent class, function and variable naming: changed uppercase acronyms to studlyCaps or StudlyCaps as needed.
[~TASK] Fluid: Moved towards more consistent class, function and variable naming: changed uppercase acronyms to studlyCaps or StudlyCaps as needed.
[~TASK] Kickstart: Moved towards more consistent class, function and variable naming: changed uppercase acronyms to studlyCaps or StudlyCaps as needed.
[~TASK] Testing: Moved towards more consistent class, function and variable naming: changed uppercase acronyms to studlyCaps or StudlyCaps as needed.
[~TASK] Welcome: Moved towards more consistent class, function and variable naming: changed uppercase acronyms to studlyCaps or StudlyCaps as needed.
6 lines of code changed in 1 file:
[~TASK] FLOW3: Added @api annotations on class level and adjusted CGL to explain class-level @api handling.
2 lines of code changed in 2 files:
[+TASK] FLOW3 (Log): Removed SEVERITY_* constants and switched to PHP's LOG_* constants, resolves #4824.
1 lines of code changed in 1 file:
[+FEATURE] FLOW3 (MVC): If mod_rewrite is not available generated links will include index.php, resolves #87.
[~TASK] FLOW3 (MVC): Fixed filename of UriBuilderTest.
[~TASK] Welcome: made sure the link to MyPackage works if mod_rewrite is disabled.
10 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Utility): *TypeFromFilename() work now when no extension is present, fixes #3278.
10 lines of code changed in 1 file:
[~TASK] FLOW3: Fixed method parameter documentation found by new reflection service checks.
[+FEATURE] FLOW3 (Persistence): added removeAll() to base repository, resolves #3852.
16 lines of code changed in 3 files:
[~API] FLOW3 (Property): The map() method of the Mapper now accepts a class name as $target and tries to do the right thing (fetch, fetch/clone or create the right object).
[+FEATURE] FLOW3 (Property): When mapping to objects, UUIDs and identity arrays are now mapped to objects recursively.
[+BUGFIX] FLOW3 (Property): Mapping to plain arrays is now possible, fixes #4443.
[~TASK] FLOW3 (MVC): Streamlined setValue() in Controller\Argument.
[~TASK] FLOW3 (Validation): UUIDValidator - moved regular expression match pattern for UUID to class constant.
[~TASK] FLOW3 (Property): Fixed inheritance chain for some exceptions.
[~TASK] FLOW3 (Cache): Changed string character access from {} to [].
1 lines of code changed in 1 file:
[+FEATURE] FLOW3 (AOP): Parse errors in AOP proxy code (introduced by a potential bug) will now be treated properly by throwing a meaningful exception.
[-FEATURE] FLOW3 (Configuration): Removed support for PHP-based configuration files. This caused a lot of overhead and in practice we want everyone to use YAML files anyway.
[+FEATURE] FLOW3 (Configuration): Implemented support for cached ("compiled") configuration. When the new FLOW3.yaml option "configuration: comileConfigurationFiles" is turned on, all configuration will be compiled into a PHP file which from then on is read instead of parsing the YAML files everytime. Please see the updated documentation for more information. Resolves #4460
[~TASK] FLOW3 (Configuration): Completely refactored the Configuration Manager and a few related classes. Its methods now each fullfil a clear purpose and work more effective. The method names now also better describe what each method is doing. Resolves #2711
[-TASK] FLOW3 (Configuration): Removed the WritableSourceInterface - this is now a standard feature of a configuration source.
[+TASK] FLOW3 (Core): Refactored and cleaned up the FLOW3 Bootstrap. Constants are now defined by a static method and all configuration related functionality has been moved to the Configuration sub package. Also replaced the evil die() calls by more handsome exit() calls. Relates to #2117
[+TASK] FLOW3 (Object): Moved some object initialization code from the Bootstrap to the Object Manager and further cleaned up the Object Manager's code. Wrote additional tests - now this class has 100% test coverage. Relates to #2117
[+API] FLOW3 (MVC): Added a few @api annotations to properties of the AbstractController and ActionController.
[-API] FLOW3 (Utility): Removed the getSAPIType() method from the Environment class. Just use the constant FLOW3_SAPITYPE instead. Resolves #3567 and relates to #2117.
1 lines of code changed in 1 file:
[~TASK] FLOW3: fixed method declarations to include abstract/static before visibility modifier, tiny documentation fix
[~TASK] Testing: fixed method declarations to include abstract/static before visibility modifier, tiny documentation fix
11 lines of code changed in 3 files:
[+BUGFIX] FLOW3 (Utility): Reverted the patch from #3029 which resulted in routing problems with URLs like http://localhost/foo/bar/Web. Relates to #3029
0 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Utility): Fix for the getRequestURI function which caused problems on some setup using FastCGI. (Patch by Bastian Waidelich) Resolves #3029
2 lines of code changed in 1 file:
[+BUGFIX] FLOW3 (Utility): getUnixStylePaths() no longer breaks paths with DOS drive letters, fixes #4091.
5 lines of code changed in 1 file:
[~TASK] FLOW3 (Utility): getUnixStylePath() now leaves a protocol as is (e.g. file://, vfs://); made two tests use vfs instead of real filesystem.
1 lines of code changed in 1 file:
[+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.
20 lines of code changed in 2 files:
(64 more)