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

1.1