Create support for "Component Manager aware" components
Dependency injection (specifically constructor injection) can be used in most cases when the instance of a component is required whose scope is "singleton". However, if a prototype is needed at arbitrary places in the method control flow, the component must refer to the component manager to get one. Because of this, many components already come with a constructor which exists solely for injecting a reference to the component manager so it can be used elsewhere in the component.
This should be solved by creating a marker interface "T3P_Framework_Component_ManagerAwareInterface": All components implementing this void interface automatically get some magic functions through AOP introductions which allow them to conveniently retrieve prototypes.
#1 Updated by Robert Lemke almost 12 years ago
- Status changed from New to Closed
- Sprint set to fixed
(In r248) Commit of some recent work while I've been offline, mainly focussing on TypoScript and the Model View Controller support.
- Framework: (Component) Added the T3P_Component_ManagerAwareInterface and functionality for conveniently getting prototypes. Fixes #58.
- Framework: (AOP) Added a method "isMethodArgument" to the AOP JoinPoint
- Framework: (AOP) A small bugfix in buildAspectContainerFromClass() which caused a PHP warning if an aspect only contained an introduction and no other advice.
- Framework: (MVC) Renamed the "GlobalDispatcher" to "Dispatcher"
- Framework: (MVC) Added a very rough router implementation to the WebRequestBuilder
- Added an .htaccess file to enable URL rewriting. Try "http://myhost/Testing" for example.
- CMS: Models, Controllers and Views now reside in their own directories instead of a common MVC directory.
- CMS: Enhanced the TypoScript "Page" object a bit and started implementing the "Template" object.
- Testing: Created a preliminary Controller for the testrunner (addresses #59). Still needs a proper implemenation and cleanup!
- TypoScript: Added a fixture and fixed an issue with using content arrays with processors.