Model Driven Development with PHP
A MDSD framework for building
reliable maintainable and extendable
web applications with PHP
Model-Driven Software DevelopmentwCMF features a pragmatic Model-Driven Software Development (MDSD) approach with the following advantages:
- Single Source of Truth All important aspects of the application are defined in one place - the model.
- Consistency The code generator takes care that model changes are applied consistently in all relevant places, e.g. if an entity attribute is changed, added or deleted, all persistence and domain classes are changed appropriately. This results in less errors and better code quality.
- Increased productivity By spending less time on repetitive tasks, developers can focus more on the application domain.
Creating a wCMF-based application basically involves three steps:
ModelStart by modeling your application in wCMF's UML based Domain Specific Language (DSL). It not only supports defining the domain model, controllers and views, but also configuration and application flow. Graphical editors are available from the Eclipse and Olympos projects. Read more
BuildRun the code generator to create persistence mappers, controllers, views and configuration files from the model. After that a web application based on the Dojo Toolkit is ready to be used. It allows to manage entity instances and includes a full text search, localization support and user/role management. Read more
ExtendwCMF's clear object oriented design is based on well known design patterns, that allow to extend the application in every aspect. Custom code is protected from subsequent generator runs, which ensures that future requirements can be implemented while model and code stay in synch. Read more
- Full featured object persistence layer:
- Flexible mapper architecture with adapter to RDBMS
- Optimistic and pessimistic object locking
- Searching using template based object query and criteria API
- Query caching and eager relation loading
- Transactions with dry run support
- Role based permission management (for actions, types, instances, instance properties)
- Event system
- Dependency injection support
- Declarative routing
- Smarty Template Engine integration
- Lucene Search Engine integration
- I18n/L10n support
- Flexible logging (Monolog, log4php)
- SOAP and REST interfaces supporting CRUD operations on all objects
- Eclipse MDT/UML2 compatible code generator
- Modern Dojo based default application for content management
wCMF is available under an open source license (MIT License).