Bug #58

Create support for "Component Manager aware" components

Added by Robert Lemke about 8 years ago. Updated almost 5 years ago.

Status:Closed Start date:
Priority:Should have Due date:
Assigned To:Robert Lemke % Done:

0%

Category:Object
Target version:TYPO3 Flow Base Distribution - 0.1
PHP Version: Complexity:
Has patch: Affected Flow version:

Description

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.

History

#1 Updated by Robert Lemke about 8 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.

Also available in: Atom PDF