Change log
0.1
2008-02-01
A cleaned-up snapshot of the current status, good enough to get an impression of how FLOW3 is implemented.
- Bug #4: Default autoloader should handle sub-direcories of Classes directory
- Bug #9: AOP Framework doesn't work at all - invalid type "...BasicClass_AOPProxy"
- Bug #12: Add support for autowiring
- Bug #13: Implement support for lifecycle methods
- Bug #17: Optimize reflection usage by introducing a cache
- Bug #20: Implement support for introductions / intertype-declarations
- Bug #21: Implement support for pointcut definitions
- Bug #22: Enhance pointcut expression parser: within()
- Bug #29: Class files in sub directories are not loaded
- Bug #41: Custom autoloaders are registered too late
- Bug #44: Fix injection of straight values with Setter Injection
- Bug #45: Core ComponentObjectBuilder: Create test for different types of constructor arguments
- Bug #51: Two tests for AOP introductions fail
- Bug #52: T3P_Framework_AOP_Pointcut: too many recursions
- Bug #58: Create support for "Component Manager aware" components
- Bug #60: Problems with constructor arguments and DI in non-adviced constructor interceptors
- Bug #61: Errors in Framework_Utility_Environment::getScriptRequestPathAndName with mod_fcgid
- Bug #73: Fix MVC CLI Request Handler / -Builder
- Bug #77: typo in MINUMUM_PHP_VERSION
- Feature #1: Use SPL when searching/listing files.
- Feature #2: authorName in PackageInfo.xml should be changed
- Feature #8: T3P_Core_PAckageConfFileComponentsConfigurationSourceTest->test_getComponentConfigurations_matchesFixutreOfTestPackage always fails
- Feature #10: Register component types automatically from interfaces
- Feature #27: Add support for visibility modifier in pointcut expressions
- Feature #28: Add support for argument modifiers in pointcut expressions
- Feature #30: Add feature to detect circular pointcut references
- Feature #35: Refactor T3P_Core_AOPFramework: Extract build methods
- Feature #37: AOP: Test introducing multiple interfaces
- Feature #40: Check all classes for Array type hinting
- Feature #72: Fix @package and @subpackage annotation in all Framework classes
- Feature #84: ComponentManager should not manage abstract classes
1.0.0 alpha 1
2009-06-02
- Bug #513: Resource manager does not handle links in public files correct
- Bug #880: F3_FLOW3_MVC_Controller_ArgumentsValidator is untested
- Bug #1315: Routing: URLs with/without trailing slash change meaning of relative links
- Bug #1349: Remove MVC\View\Template (was: Method MVC\View\Template->substitutePart is not used and empty)
- Bug #1635: Routing: Routes should ignore query parameters if not configured
- Bug #1948: Fatal error when tokens are retrieved from session
- Bug #2373: PHP session issues fatal error if session_save_path is not writable
- Bug #2557: Links rendered by the Router ignore application context
- Bug #2558: Property Injection doesn't work with subclasses
- Bug #2601: canProcessRequest doesn't accept mocked requests
- Bug #2856: Fatal error: Class 'F3\FLOW3\MVC\Controller\LogicException' not found
- Bug #3027: Rev 2122 results in an Exeption when loading FLOW3 a second time after clearing the chache
- Bug #3034: The Resolve Handler Resolver doesn't check if potential resolve handlers are registered objects
- Bug #3130: ValidatorResolver does not work for float/numeric/mixed typed method arguments
- Bug #3152: The Reflection does not recognize changes in class files
- Bug #3274: Persistance session is not of scope prototype
- Bug #3404: Refactor ControllerContext to be built only before passing it to the View
- Bug #3433: Routes in packages are overruled by global configuration
- Bug #3451: LazyLoadingProxy must mark property as clean after activation
- Bug #3477: Objects added to a (persistence) repository don't have have a uuid
- Bug #3488: Parameters of actions which have a name containing uppercase characters are not automatically registered
- Bug #3513: Created logfiles are read-only for either command line user or web user
- Bug #3519: typo: Misspelling of "successful" (was: sucessful)
- Bug #3529: Detection of new objects in argument handling fails
- Bug #3532: Package Manager creates new packages at wrong location
- Bug #3535: Temoprary files no longer end up in Data/Temporary
- Feature #46: Implement After Advice
- Feature #116: Package Manager provides CLI access
- Feature #441: Extract component configuration modifications from AOP Framework initialize method
- Feature #1199: Add a method findByTag() to F3_FLOW3_Cache_AbstractCache
- Feature #1226: Package manager should take additional package paths into account
- Feature #1501: MVC: initializeView
- Feature #1528: Add new pointcut designator for checks against configuration
- Feature #1787: Improved cache registration
- Feature #1789: Routing: Implement automatic UUID to object conversion
- Feature #1790: Routing: optional RouteParts
- Feature #1791: Routing: Implement Caching
- Feature #1847: ComponentFactory->create() throws an exception on trying to create a component of singleton scope
- Feature #1848: ComponentManager->getComponent() throws an exception on trying to retrieve a component of prototype scope
- Feature #1849: Inject dependencies after object reconstitution
- Feature #1852: Add YAML configuration source
- Feature #1882: Objects can be deleted
- Feature #1991: AbstractView should have access to request in initialaizeView()
- Feature #2109: Support constructor / factory arguments in Objects injection configuration
- Feature #2110: Add support for custom factories
- Feature #2284: Make Reflection caching more intelligent
- Feature #2297: automagic settings injection
- Feature #2305: Automatic flushing of AOP Proxy Cache
- Feature #2318: Implement point cut designator methodTaggedWith()
- Feature #2365: Support simple comparisons in Setting Pointcutfilter expression
- Feature #2384: Support for injection of setting values
- Feature #2408: Automatic flushing of object configuration cache
- Feature #2506: Automagic action argument registration
- Feature #2509: Mapping properties to complex object -> Part-Mappings
- Feature #2602: Automatically render the view if action returns nothing (NULL)
- Feature #2603: Implement magic findBy*() and findOneBy*() methods in the base repository
- Feature #2621: Support SPLObjectStorage as container for references to other persisted objects
- Feature #2816: Implement redirect to action
- Feature #2819: View Helper "Flash Message"
- Feature #2825: Routing: Route Part options
- Feature #2832: Implement a "(String)Length Validator"
- Feature #2852: Improve viewObjectName determination
- Feature #2853: Routing: @action, @format... should be settable via request arguments
- Feature #2957: Errors and exceptions should be logged to system log
- Feature #2979: Implement replace() method for the base Repository
- Feature #2982: Allow "-" as character for identifier in caching framework
- Feature #3091: Support new method "initializeXYAction" in controllers
- Feature #3092: Support annotation-based validation rules in controller actions
- Feature #3093: Implement annotation based validation rules for models
- Feature #3276: Support Conjunction and Disjunction Composite validators
- Feature #3302: Implement a "Controller Context"
- Feature #3370: Add lifetime parameter to set method of cache frontend
- Feature #3376: Implement a more attractive and informative default view
- Feature #3382: Make Fluid the default templating engine in FLOW3
1.0.0 alpha 2
2009-07-01
Focus: AOP, Validation, File Monitor
- Bug #3240: AOP cache is not emptied if class file is deleted
- Bug #3275: ValidatorResolver can't parse validator arguments containing round brackets
- Bug #3537: Subroute placeholders appear in URL if no replaced
- Bug #3544: CLI logs end up in the Web folder due to bug in Utility\Environment
- Bug #3568: PHP version check comes too late on non-namespaced PHP versions
- Bug #3569: setfilepermissions.sh: with non-writable Temporary folder caches end up elsewhere (CLI mode)
- Bug #3726: Links with arguments don't work without routes
- Bug #3730: Signal Slot Dispatcher does not check if slot class is a registered object
- Bug #3733: Site should be unlocked by Exception Handler
- Bug #3735: randomizeArrayOrder() does not randomize...
- Bug #3795: Arguments in AbstractController are not cleared after forward
- Bug #3801: ValidatorResolver doesn't accept custom validator classes as validator name
- Bug #3806: Persistence fails when objects and/or lazy loading are involved...
- Feature #3487: Add FLOW3_AOP_Proxy_hasProperty to AOP proxies
- Feature #3581: Site lock / code cache flushing mechanism
- Feature #3639: Active packages should be saved in a configuration file
- Feature #3649: Caches should be flushed on package version number changes
- Feature #3650: AOP proxies support classes implementing an interface declaring a __construct() signature
- Feature #3736: Implement support for Directory status monitoring
- Feature #3790: Generic error action and validation errors for current request
1.0.0 alpha 3
2009-08-01
Focus: Documentation
- Bug #3534: File permission issues
- Bug #3617: AOP exception + fatal error using libssh2
- Bug #3699: Misleading error message when calling inactive package
- Bug #3823: FileMonitor does not fix "windows" paths
- Bug #3837: Objects added to a repository are not found if repository doesn't follow naming conventions
- Bug #4082: FLOW3 uses wrong Packages path via CLI if directories are symlinked
- Bug #4085: Package Manager does not ignore files in directory Packages/
- Bug #4091: F3\FLOW3\Utility\Files::getUnixStylePath() creates invalid paths on windows
- Bug #4168: Rules added with @validate will replace existing validation rules
- Bug #4409: @inject comment property isn't working
- Feature #1947: Implement session scope for object manager
- Feature #3560: Display meaningful error message if temporary path would be too long for OS
- Feature #3616: Implement Accounts/UserManagement
- Feature #3933: Support typed parameters for class schemata, persistence, validation
- Feature #3955: Implement limit and ordering for persistence queries
- Feature #3990: Allow arbitrary names and locations for "Web" directory
- Feature #4084: Make the application context accessible by a read-only setting
- Feature #4166: Allow disabling validation for action arguments
- Feature #4167: Implement an update() method for the base repository
- Feature #4221: Implement CLI controller for Cache Manager
1.0.0 alpha 4
2009-09-01
Focus: Speed and stability
- Bug #4381: Resource should be considered as denied if no ACL entry is configured
- Bug #4441: Route does not correctly replace domain objects in resolve()
- Bug #4443: Mapping to plain arrays results in empty arrays
- Bug #4454: FileMonitor does not detect new files
- Feature #3622: Implement an access view helper
- Feature #4279: setfilepermissions.sh should give a hint on from where to call it
- Feature #4406: Implement caching mechanism for configuration files
- Feature #4457: Improve UriBuilder
1.0.0 alpha 5
2009-10-01
Focus: Zap 'em gremlins!
- Bug #2751: Routing: generated links must keep index.php if needed
- Bug #3278: Resource manager doesn't publish files without extension
- Bug #3415: Sorting of $classNamesToReflect in the reflection Service might cause PHP error
- Bug #3742: getObjectConfigurations() returns original objects
- Bug #4013: Argument handling in RESTController doesn't work correctly
- Bug #4160: MVC Controller Argument $dataType should NOT be set to "Text" by default
- Bug #4487: New Documentation for Xampp
- Bug #4596: DEVELOPMENT or Development
- Bug #4602: memcache doesn't work
- Bug #4606: Spelling error in FLOW3's Package.xml
- Bug #4666: Reflection service broken
- Bug #4740: Default session save path should be per environment
- Bug #4755: findAll() does not return the just before added item.
- Bug #4799: MAC, XAMPP and FLOW3
- Feature #87: Add fallback for servers without mod_rewrite / .htaccess support
- Feature #1663: Make session save path configurable for PHP session backend
- Feature #3030: Testing framework can send bug report to mailinglist
- Feature #3041: Caching Framework - ask for validity
- Feature #3467: Implement meaningful / helpful default view for Production context
- Feature #3852: Implement removeAll() for Repository
- Feature #3864: Implement filtering for log messages
- Feature #3950: Package Manager should warn about duplicate packages
- Feature #3956: Implement a Count Validator
- Feature #3989: Generate PackageStates.yaml if it doesn't exist
- Feature #4328: Throw exception when Repository->update() is called with a non-clone
- Feature #4333: Implement log rotation
- Feature #4405: EmptyView is misleading
- Feature #4668: Validation improvement
1.0.0 alpha 6
2009-11-02
Focus: Resource Manager, ExtJS and more...
- Bug #4850: errorAction() of the MVC ActionController doesn't work correct
- Bug #4856: Use of uninitialized $exception variable in APCBackend->set()
- Bug #4857: ValidatorResolver tries to use data type as validator type
- Bug #4859: findOneBy*() in persistence repository does not limit result set size
- Bug #4870: Tests with RSAWalletServicePHP fail on Windows
- Bug #4952: Reflection cache of subclasses are not flushed if parent classes change
- Bug #5047: Validationresovler regex fails for more than one validator with options
- Bug #5180: Documentation: Security Framework, 2 examples have a mistake.
- Bug #5182: Routing: @action should not be case sensitive
- Bug #5185: ValidatorResolver fails to parse @validate annotations with complex options
- Feature #2237: URLs can only be lowercase
- Feature #5152: Make package settings available in view
1.0.0 alpha 7
2010-01-18
Focus: Whatever needs to be done on the way to Phoenix
- Bug #5171: Property Mapper: different action required when identity query returned more than 1 object
- Bug #5484: AOP proxy builder does not add some annotations to built proxy classes
- Bug #5576: Cache Manager receives bloated configuration array
- Bug #5589: InitalizeActions typo in FLOW3 Manual
- Bug #5599: Various typos in documentation
- Bug #5889: Kickstart twice defined as svn:external
- Bug #6028: DataMapper cannot handle wrongly typed input.
- Bug #6029: PdoBackend cannot handle uninitialized DateTime properties
- Bug #6030: Router needlessly lowercases names of package, controller, action
- Bug #6047: ./flow3 - wrong flush cache controller
- Bug #6059: ./flow3 - wrong package controller
- Bug #6069: PdoBackend cannot handle uninitialized SplObjectStorage properties
- Bug #6073: ObjectAccess::getProperty() causes warning with array and non-existing property
- Bug #6092: Resources imported with importResource() are not published
- Feature #342: Support for file uploads
- Feature #4445: setfilepermissions.sh should check if parent directories are accessible
- Feature #5149: Support counting objects in persistence queries
- Feature #5446: Implement PDO based Cache Backend
- Feature #5480: JoinPoint should provide a method hasException()
- Feature #5481: Implement meaningful logging for security / authentication
- Feature #5577: Implement postprocessing and validation into the configuration manager
- Feature #5660: Implement support for Object Converters
- Feature #5822: Implement proper resource management
- Feature #5995: Implicitly call __toString method if action result is an object
- Feature #5998: More flexible subpackage directory structure
- Feature #6006: Base FLOW3 persistence directly on database, not on TYPO3CR
1.0.0 alpha 8
2010-04-01
Focus: Content security (DAOP) and Object Container
- Bug #3029: Routing is not working correctly on all platforms
- Bug #3375: PATH_INFO is empty using fastcgi / Windows
- Bug #6005: ObjectAccess::getProperty() behaves not as documented when property does not exist
- Bug #6089: EmailAddressValidator does not recognize multiple @
- Bug #6118: Integer arguments are not validated automatically
- Bug #6153: JCR_OPERATOR_LIKE in F3\FLOW3\Persistence\Backend\AbstractSqlBackend
- Bug #6162: ReflectionService throws a Runtime Notice
- Bug #6163: Namespace-Check throws an Error with PHP 5.3.0.
- Bug #6188: The properties of the AOP proxy should have a more "internal" name
- Bug #6204: Runtime Notice in PropertyMapper Line 249
- Bug #6209: Not uploading a file for a resource leads to an error
- Bug #6266: Config of security/cryptography/hashService/encryptionKey
- Bug #6290: Dirty checking fails due to order of object reconstitution
- Bug #6315: Input fields with a name attribute with more than 64 characters are ignored
- Bug #6323: Classes in the Reflection subpackage should be instantiated via the object framework
- Bug #6411: Undefined index classname in DataMapper method mapSingleObject
- Bug #6501: RuntimeException thrown in file Backend.php
- Bug #6529: Fully support regular expressions for method names in pointcut expressions
- Bug #6581: Updated objects considered new, causing exception
- Bug #6596: Environment variables (context, rewrite urls, ...) are not recognized with FCGI + Apache
- Bug #6620: ./flow3 cache flush throws Exception in "..../Cache/Backend/FileBackend.php line 197"
- Bug #6647: ObjectAccess doesn't know that is*() is also a possible getter method name
- Bug #6680: Make FLOW3 open_basedir aware
- Bug #6693: Request Bash if you use bash in the flow3 shell script
- Bug #6694: flow3 shell script uses non POSIX commands
- Bug #6718: UnexpectedValueException thrown in file Session.php
- Bug #6761: Security context in session grows with each load
- Bug #6773: Debug Exception Handler does not escape characters in exception message
- Bug #6780: ResourceViewHelper wrong path to persisted resources
- Bug #6786: Persistence Query Orderings integers ordered like strings
- Bug #6787: New accounts cannot be persisted and existing accounts cannot be found
- Bug #6806: EmailAddressValidator missing IP addresses
- Bug #6807: Uncaught Exception in FLOW3 #1264589155: Object "F3\FLOW3\Object\SessionRegistry" is not registered
- Bug #6846: The static object container is not rebuilt automatically if the FLOW3 revision changed
- Bug #6847: Straight value property injection fails with strings in static object container
- Bug #6894: F3\FLOW3\Security\Exception\MissingConfigurationException thrown in file HashService.php
- Bug #6902: $objectName is not meaningful enough in serializeObjectAsPropertyArray()
- Bug #6909: Files for persisted resources no longer deleted upon resource object removal.
- Bug #6911: SQL error when using setOrderings() without matching()
- Feature #1884: Add more query options
- Feature #3586: Assure that value objects are immutable
- Feature #3740: Implement a Static Object Container
- Feature #5612: Property Mapper should be able to map to target if only a setter exists
- Feature #5846: Implement Account Factory
- Feature #6008: Automatically purge files of removed resources
- Feature #6120: Re-implement lazy loading in persistence...
- Feature #6137: Implement a PHP Code Cache Frontend
- Feature #6140: ClassSchema must reset identity property and identifier property when being made value object
- Feature #6141: Check prototype on entity/valueobject
- Feature #6142: Class schema must check for entity when setting identity and identifier property
- Feature #6177: Implement CRUD hooks in persistence
- Feature #6646: Response should send correct content type header if format is rss / atom
- Feature #6681: Make the php cli executable configurable for the flow3 command
- Feature #6685: Implement countAll() and countByFoo('bar') in the Persistence Repository
- Feature #6774: Improve error message in Property Mapper if type hint of method parameter is invalid
- Feature #6868: Classes tagged as value object must have a constructor and no setters
- Feature #6869: Enable the property mapper to create value objects
1.0
1.0.0 alpha 9
Focus: Content security and last minute features before the first beta