mainpage.doxy
1 /*!
2 \mainpage Model Driven Development with PHP
3 
4 \htmlonly
5 <div class="jumbotron">
6  <h1>wCMF</h1>
7  <h2>A MDSD framework for building<br><kbd>reliable</kbd> <kbd>maintainable</kbd> and <kbd>extendable</kbd><br>web applications with PHP</h2>
8  <a href="gettingstarted.html" class="btn btn-success btn-lg">Getting started</a>
9  <a href="https://github.com/iherwig/wcmf/releases" class="btn btn-info btn-lg"><i class="fas fa-download"></i> Download</a>
10 </div>
11 
12 <h2>Model-Driven Software Development</h2>
13 wCMF features a pragmatic Model-Driven Software Development (<em>MDSD</em>) approach with the following advantages:<br><br>
14 <ul>
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>
19 </ul>
20 
21 <br>Creating a wCMF-based application basically involves three steps:<br><br>
22 
23 <div class="row">
24  <div class="col-md-4"><h3><i class="fas fa-sitemap float-left mt-2 mr-2"></i> Model</h3>
25  Start by modeling your application in wCMF's UML based Domain Specific Language (<em>DSL</em>).
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
28  <a href="http://sourceforge.net/projects/olympos/" target="_blank">Olympos</a> projects.
29  <a href="model.html">Read more</a>
30  </div>
31  <div class="col-md-4"><h3><i class="fas fa-cogs float-left mt-2 mr-2"></i> Build</h3>
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.
35  <a href="model.html#model_generator">Read more</a>
36  </div>
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
40  while model and code stay in synch.
41  <a href="architecture.html">Read more</a>
42  </div>
43 </div>
44 
45 <h2>Features</h2>
46 <div class="row">
47  <div class="col-md-6">
48  <ul>
49  <li>Full featured object <a href="persistence.html">persistence layer</a>:
50  <ul>
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>
54  <li>Query caching and <a href="persistence.html#pers_builddepth">eager relation loading</a></li>
55  <li><a href="persistence.html#pers_tx">Transactions</a> with dry run support</li>
56  </ul>
57  </li>
58  <li><a href="security.html#sec_authorization">Role based permission management</a> (for actions, types, instances, instance properties)</li>
59  <li><a href="presentation.html#pres_events">Event system</a></li>
60  </ul>
61  </div>
62  <div class="col-md-6">
63  <ul>
64  <li><a href="configuration.html#conf_di">Dependency injection</a> support</li>
65  <li>Declarative <a href="presentation.html#pres_routing">routing</a></li>
66  <li><a href="http://www.smarty.net/" target="_blank">Smarty Template Engine</a> integration</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>
68  <li><a href="i18n_l10n.html">I18n/L10n</a> support</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>
73  </ul>
74  </div>
75 </div>
76 
77 <h3>License</h3>
78 <p>wCMF is available under an open source license (<a href="https://github.com/iherwig/wcmf/blob/master/LICENSE">MIT License</a>).</p>
79 <p><!-- fix generated source -->
80 \endhtmlonly
81 */