mainpage.doxy
7 <h2>A MDSD framework for building<br><kbd>reliable</kbd> <kbd>maintainable</kbd> and <kbd>extendable</kbd><br>web applications with PHP</h2>
9 <a href="https://github.com/iherwig/wcmf/releases" class="btn btn-info btn-lg"><i class="fas fa-download"></i> Download</a>
13 wCMF features a pragmatic Model-Driven Software Development (<em>MDSD</em>) approach with the following advantages:<br><br>
15 <li><strong>Single Source of Truth</strong> All important aspects of the application are defined in one place - the <em>model</em>.</li>
16 <li><strong>Consistency</strong> The code generator takes care that model changes are applied consistently in all relevant places, e.g. if an entity attribute
17 is changed, added or deleted, all persistence and domain classes are changed appropriately. This results in less errors and better code quality.</li>
18 <li><strong>Increased productivity</strong> By spending less time on repetitive tasks, developers can focus more on the application domain.</li>
26 It not only supports defining the domain model, controllers and views, but also configuration and application flow.
27 Graphical editors are available from the <a href="http://www.eclipse.org/papyrus/" target="_blank">Eclipse</a> and
32 Run the code generator to create persistence mappers, controllers, views and configuration files from the model.
33 After that a web application based on the <a href="http://dojotoolkit.org/" target="_blank">Dojo Toolkit</a> is ready to be used.
34 It allows to manage entity instances and includes a full text search, localization support and user/role management.
37 <div class="col-md-4"><h3><i class="fas fa-expand-arrows-alt float-left mt-2 mr-2"></i> Extend</h3>
38 wCMF's clear object oriented design is based on well known design patterns, that allow to extend the application in every aspect.
39 Custom code is protected from subsequent generator runs, which ensures that future requirements can be implemented
51 <li>Flexible <a href="persistence.html#pers_mappers">mapper</a> architecture with adapter to RDBMS</li>
52 <li>Optimistic and pessimistic <a href="persistence.html#pers_concurrency">object locking</a></li>
53 <li><a href="persistence.html#pers_search">Searching</a> using template based object query and criteria API</li>
58 <li><a href="security.html#sec_authorization">Role based permission management</a> (for actions, types, instances, instance properties)</li>
67 <li><a href="http://framework.zend.com/manual/1.12/en/zend.search.lucene.overview.html" target="_blank">Lucene Search Engine</a> integration</li>
69 <li>Flexible logging (<a href="https://github.com/Seldaek/monolog" target="_blank">Monolog</a>, <a href="https://logging.apache.org/log4php/" target="_blank">log4php</a>)</li>
70 <li><a href="presentation.html#pres_apis">SOAP and REST interfaces</a> supporting CRUD operations on all objects</li>
71 <li><a href="http://wiki.eclipse.org/MDT-UML2">Eclipse MDT/UML2</a> compatible <a href="model.html#model_generator">code generator</a></li>
72 <li>Modern <a href="https://dojotoolkit.org/">Dojo</a> based <a href="https://github.com/iherwig/wcmf-default-app">default application</a> for content management</li>