Packages » Package freeform » File freeform.txt

Package freeform, documentation file freeform.txt

Freeform Framework is a web application framework aimed at creating scalable web apllications. It is not just another MVC framework, it adresses a wider range of common problems a programmer faces while developing an application for the net. It is a commitment to building an industry-standard framework that must have understandable architecture, strict standards and extensible features. We have the clear vision of the framework as a whole and the dramatic benefits it offers for web developers. It was created from ground up, it is not a clone of any MVC framework for other platforms, it is easy to learn and easy to extend. Once you get the grasp of all the tools the framework has to offer, you will be amazed how quickly and easily it is to create versatile and multifuctional web application.

Features Overview:
  • Model-View-Controller Architecture
    The MVC architecture implemented as the core feature of the Freeform Framework allows to define possible actions on the model and render the results of that action using different document types suitable for the user agent. Each client request implies access to one of many Action classes your application consists of. These are responsible for the controller part of the architecture. Based on their semantics and the parameters supplied by client in the request, the Actions return response documents. The Document interface represents the view part of the MVC ideology. Document implementations can produce responces for diverse types of clients, but such diversity does not affect the controller part. Actions can also serve as part of the model, possibly coupled with a database or different storage system.


  • Standartized Forms Processing
    The framework also offers an elegant form processing automation solution. All you have to do now is to create an instance of the Form class and add fields to it, possibly specifying value validators. Upon submission, the form will validate itself, and, if it fails, you can redisplay the page where wrong input will be re-prompted while saving the correct input. File uploads are also fully automated; you can validate upload correctedness with no coding at all. There are just a few methods that do the job for you!


  • Class and Resource Packaging, Automatic Class Discovery and Loading, Service Provider Interface
    Packages in Freeform Framework are an effort of compensating the drop of namespaces from PHP5. However, it has turned out that packages have even more to offer rather than just convenience of organizing classes. You use packages to distribute package-related resources like multimedia files and document templates. Package API offers simple methods for retrieval of these resources as well as reading the package configuration. Packages can be configured for each and every environment they are used in.
    Thanks to packages and the strict standart of class source files it was possible to create class discovery and loading system that saves you the trouble of including every required file. With Freeform, you will not ever write the 'require_once(...)' stuff. All classes are automatically loaded as they are needed.
    Service Provider Interface is a concept of informing the framework of what classes in the package are implementing or extending some APIs. By so doing the framework can locate, for example, classes that provide the RequestAdaptor functionality. Compared to forced loading of all classes, this approach is much more efficient.


  • Sessions and Security
    Each framework installation guarantees there is a session handler available so that your appilcations and packages may rely on it. Sessions have a very simple interface and allow you to choose from many underlying implementations. Thus, the packages are unaware from all session and user handling tricks. The framework also generalizes the concept of an user. Users are implementations of the User interface. The basic property of an user it his role. Role is a string describing what the user can do. The User interface declares several methods that allow creation of or integration with diverse user management systems. Sessions are required to serialize and deserialize the current user between requests. However, you can choose to define your more versatile security policies with the help of AccessController objects. On every request the Action is queried to return its AccessController. It is further checked to determine whether the Action can be executed in the current environment. You can reuse and extend AccessControllers with other actions and in other packages.


  • i18n and UTF-8: Ready for Multilingual Applications
    The Freeform framework is the only PHP5 framework that is UTF-8-enabled to ease the creation of multilingual and localized web applications. From now, you do not have to worry about the encoding conversion - everything is done in UTF-8.