
| Author | Changes | Lines of Code | Lines per Change |
|---|---|---|---|
| Totals | 22 (100.0%) | 98 (100.0%) | 4.4 |
| k-fish | 12 (54.5%) | 40 (40.8%) | 3.3 |
| robert | 8 (36.4%) | 34 (34.7%) | 4.2 |
| andi | 2 (9.1%) | 24 (24.5%) | 12.0 |
Removed everything in trunk after move to git.
0 lines of code changed in 1 file:
[+FEATURE] FLOW3 (Core): The flow3 hell script now uses the PHP binary specified in the PHP environment variable, resolves #6681.
[~TASK] FLOW3: Some SVN property maintenance.
0 lines of code changed in 1 file:
[~TASK] FLOW3 (AOP): Fixed exception when building empty objects caused by recent AOP changes (r3823); removed object factory from AOP proxy class template.
0 lines of code changed in 1 file:
* [+FEATURE] FLOW3 (AOP): If an advice is executed can now depend on runtime evaluations, which can be configured in the pointcut expression. Relates to #5659.
* [~BUGFIX] FLOW3 (AOP): Properties of the AOP proxy class are now prefixed by FLOW3_AOP_Proxy_. This fixes #6188.
* [~TASK] FLOW3 (AOP): Removed an unused function from the Framework class.
16 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.
1 lines of code changed in 1 file:
[~TASK] FLOW3 (Documentation): Updated the Coding Guidelines: removed inconsistent exceptions from the general class naming rules. Also added the rule that names of aspect classes must end with "Aspect". Relates to #5658
[~TASK] Global: Renamed many classes and interfaces in order to be consistent with FLOW3's naming rules. A migration script to update third-party applications will follow soon. Resolves #5658
2 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.
2 lines of code changed in 1 file:
[TASK] FLOW3: fixed some @internal vs @api remnants, relates to #3883
0 lines of code changed in 1 file:
[FIX] FLOW3 (AOP): Fixed changes introduced with r2640, fixes #3650
[FIX] FLOW3 (Object): Fixed changes introduced with r2640, fixes #3650
[TASK] TYPO3CR (Tests): Adjusted tests and fixtures to comply with new solution for #3650
5 lines of code changed in 1 file:
* [+FEAT]: FLOW3 (AOP): AOP proxies now support classes implementing an interface declaring a __construct() signature. Resolves #3650
* [+FEAT]: FLOW3 (Object): The object manager handles the new AOP proxies.
* [TASK]: FLOW3 (Persistence): Changed some fixtures to comply to the now AOPProxyInterface.
8 lines of code changed in 1 file:
FLOW3 (AOP): removed spurious invisible whitespace character from proxy class template, refs #3487
1 lines of code changed in 1 file:
?[TASK] FLOW3 (AOP): added FLOW3_AOP_Proxy_hasProperty() to AOP proxies, resolves #3487
[FIX] TYPO3CR (FLOW3 Persistence): getUUIDByObject() in persistence backend now returns NULL if no UUID is found, fixes #3486
13 lines of code changed in 1 file:
* FLOW3: Marked all methods as @internal except those which are considered part of the official API. Resolves #1280
* TYPO3CR: Fixed two tests of the Storage\PDO\Search testcase.
6 lines of code changed in 1 file:
* FLOW3: Renamed a few classes / moved them in the namespaces hierarchy to make naming more consistent. Resolves #2515
* FLOW3: (MVC) Removed the AbstractWidget
3 lines of code changed in 1 file:
* FLOW3: (AOP) Renamed the remaining occurrences of AOPProxy* to FLOW3_AOP_Proxy_*
6 lines of code changed in 1 file:
FLOW3:
* __wakeup() is no longer handled in a special way in AOP to support persistence, fixes #1724
* changed the persistence aspect to no longer attach to __wakeup(), refs #1724
* replaced reconstituteObject() by three seperate methods to allow two-step reconstitution, refs #1849
TYPO3CR:
* split initialize() into seperate methods in FLOW3 persistence backend
* the FLOW3 persistence DataMapper now uses two-step reconstitution allowing to load bidirectional object relations
* the FLOW3 persistence DataMapper asks the object Builder to inject setter dependencies during reconstitution, fixes #1849
1 lines of code changed in 1 file:
This is a big commit (sorry - not exactly Continuous Integration ...)
While all seems to be fine and stable, many features introduced in this commit are not complete. Especially AOP Proxy Caching, Logging (API), the System Logger and the Signal Slots mechanism need some further work.
* TYPO3 Distribution: Added a Log directory
* TYPO3 Distribution: Disabled security (for now) because some thing need to be refactored and tested again after this commit
* FLOW3: Further cleanup of the bootstrap. Addresses #2117
* FLOW3: Removed manual registration of objects from all classes and created an Objects.yaml configuration instead which declares the objects and configures their dependencies. This manual registration is necessary for objects such as the AOP Framework because at the time it is created, the Object Manager is not yet fully initialized.
* FLOW3: (AOP) Refactored and cleaned up the AOP initialization process. Resolves #441.
* FLOW3: (AOP) Completely rewrote all unit tests and added many new ones. Now no AOP test relies on the TestPackage anymore. Addresses #1868
* FLOW3: (AOP) Improved the automatic documentation rendering of the Proxy Class Builder. Resolves #35.
* FLOW3: (AOP) Externalized the creation of the AOP proxy and instead use the Caches.yaml configuration.
* FLOW3: (AOP) Removed all use of PHP's Reflection classes and replaced them with calls to the Reflection Service
* FLOW3: (AOP) Converted all classes involved in the proxy building process from static into dynamic calls
* FLOW3: (Cache) Introduced an (semi) automatic cache registration feature which assures that all necessary caches are registered when file changes are detected. In order to register a cache, just define it in the new "Caches.yaml" configuration file. See the FLOW3 package for examples. Resolves #1787
* FLOW3: (Cache) Wrote more tests for the File Backend. Resolves #1843
* FLOW3: (Configuration) Improved the performance of the special configuration management
* FLOW3: (Configuration) Added support for Caches.* configuration
* FLOW3: (Error) The exception handlers now log uncaught exceptions to the System Logger
* FLOW3: (Monitor) Introduced a new sub package "Monitor" which provides a mechanism for automatic detection of changes on monitored files. If monitored files or directories (the latter not yet implemented) change, a signal is emitted which can be catched by a slot taking further action. Currently all cache entries tagged with a class tag are flushed automatically if a class file changes.
* FLOW3: (Log) Introduced a special System Logger which is created automatically and can be injected if needed. Although it works quite well already, the general concept of injecting the logger and the LoggerInterface itself is not final! Watch for log files in the Data/Log/ directory when running TYPO3 / FLOW3 in development context.
* FLOW3: (Log) Introduced a Logger Factory for use in Objects configuration. Warning: the API might still change
* FLOW3: (Log) Made the SEVERITY constants conform to RFC3164 and PHP's LOG_* constants
* FLOW3: (Object) Refactored and detached more unit tests from the TestPackage. Addresses #2123
* FLOW3: (Object) Implemented an early configuration parse step which allows for configuring objects in the Objects.yaml file of the FLOW3 package even before the Package Manager is initialized.
* FLOW3: (Object) Introduced a lifecycle shutdown method (default is "shutdownObject") which can be used as a clean alternative to __destruct().
* FLOW3: (Reflection) Added new API methods: isClassReflected, getInterfaceNamesImplementedByClass, isMethodFinal, isMethodStatic, isMethodPublic, isMethodProtected, isMethodPrivate
* FLOW3: (Reflection) getMethods() now returns information about the method visibility
* FLOW3: (Security) Refactored the ACL Policy Service - might still need some final work
* FLOW3: (SignalSlot) Fixed some small issues in the Dispatcher and implemented support for System Logger
* FLOW3: (Utility) Fixed a bug in Arrays::getValueByPath
* Testing: Implemented a method buildAccessibleProxy() in the BaseTestCase which allows for conveniently calling protected methods of a class. See FLOW3 unit tests for examples.
* TestPackage: Removed many classes which became obsolete due to the AOP tests refactoring. refs #1868
0 lines of code changed in 1 file:
!!! 5.3.0alpha3 namespaces refactoring:
* changed namespace delimiter from :: to \
* all class references in namespaced code prepended by \
PHPUnit:
* adapted mock object handling to the new namespaces syntax
FLOW3:
* PropertyReflection now uses setAccessible() instead of array cast to access protected properties
PHPCR:
* added a missing interface already used for type hints
9 lines of code changed in 1 file:
* FLOW3: (Component) Renamed "component" to "object" - everywhere. That means we now have an Object Manager instead of a Component Manager, an Object Factory etc. Resolves #2119
Globally adjusted all code for the above change.
4 lines of code changed in 1 file:
* FLOW3: (Component) Renamed the method Component::Factory->getComponent() to Component::Factory->create(). Resolves #1846
* FLOW3: (Component) Component::Factory->create() will now throw an exception on trying to create a component of scope != prototype
* FLOW3: (Component) The Component::Manager->getComponent() method can still be used as a last resort to retrieve components of any scope. However dependency injection for singletons and the component factory for prototype should always be the first choice!
Refactored all packages of the TYPO3 distribution to match the above changes.
Note: The test "F3::TYPO3CR::NodeTest::setPropertySetsValue" currently fails on my machine with the following message:
Error in setPropertySetsValue with data set #34 Detail
TYPO3CR/Classes/F3_TYPO3CR_Node.php:577
Unable to convert value of type string to Name: Namespace prefix is invalid
12 lines of code changed in 1 file:
!!! Major change, will break existing code.
Part 3 - Packages
FLOW3, most other packages:
* added namespaces to the code of FLOW3 and all packages in the current TYPO3v5 distribution.
PHPUnit:
* some changes to make PHPUnit (more) namespace-compatible.
Some notes:
* Documentation updates will follow
* you might need to change your class names when adapting namespaces to avoid using "Class", "Empty", "Default", ...
* expect FLOW3CGL and/or PHPCodeSniffer to be broken (I'll have a look)
* some parts might still be broken, especially in edge-cases where the global namespace needs to explicitly used
9 lines of code changed in 2 files: