Essentially Technical

Sometimes you just want to talk straight about all the nitty-gritty details. Here's a list of features which might help you getting a better picture if you're already in the topic.

Component Management

  • Object Lifecycle Management: The framework takes care of instantiation, configuration and disposal of objects.
  • Loose coupling and support for framework agnostic programming. Avoids dependency on the framework
  • Support configuration and replacement of components
  • Components are pure PHP objects, no need to extend base classes
  • Lightweight Inverse-of-Control Container with Dependency Injection support
  • Context support (Production, Development, Testing and User-Defined contexts)
  • Eases testing by providing mock environments and object configuration

Aspect-Oriented Programming

  • The most complete AOP Framework for PHP
  • Weaves in advices on the fly - no compile step required
  • Works with plain PHP objects - no base class needs to be extended
  • It's fast!

Model View Controller

  • Flexible and mature MVC Framework
  • Favors conventions but allows configuration
  • Flexible Front Controller
  • Cascadeable Action Controllers
  • Flexible forwarding and error handling
  • Extensible Request / Response mechanism with built-in support for web and command line
  • Smart URLs and routing with API for extensions
  • AJAX support
  • Built-in security for user input

Validation Framework

  • Generic Validation Framework for all kinds of objects
  • Cascadeable validation chains
  • Built-in filters and validation rules
  • Custom validator support
  • Automatic validator resolution for domain models
  • Meaningful exception and validation error handling

Property Mapping

  • Easy copying and mapping of properties between objects
  • Transformation of property formats (eg. DateTime object to timestamp string) through property editors
  • Validation support during the mapping process
  • Easy solution for Data Binding (eg. between Domain Model and a Form Model)

Package Management

  • Clear separation of features and namespaces
  • Easy exchange of packages through TYPO3's package repository (T3PR)
  • Automatic registration of classes (components) and resources
  • Command line access for effective management of package installation and upgrade
  • Built-in monitoring of security alerts for installed packages
  • Compressed FLOW3 packages are just plain .ZIP files

Resource Management

  • Manages all assets and other package resource files
  • Allows storage of web resources outside the public web directory
  • Different backends for resource storage: File system, Database, Content Repository, ...
  • Automatic separation of public and restricted media (documents, pictures, sound files ...)
  • Lightweight, token-based secure download support
  • Automatic caching and management of resources
  • Hook-ins for indexers and other custom extensions

Error and Exception Handling

  • Consistent exception hierarchy
  • Verbose exception handler with clearly arranged background information and backtraces (including source code snippets)
  • Unique error and exception codes with explanation and user comments in our wiki

Enhanced Reflection API

  • Advanced support for annotations
  • Read support for protected properties

Security Framework

  • Clear separation of security concerns trough Aspect-Oriented Programming
  • Default security by convention (eg. naming of methods)
  • User, group and role support
  • Extensive monitoring support
  • Of course configurable