From CMC for PHP
(Redirected from Main Page)
Jump to: navigation, search

In a quick view

What CMC for PHP is

CMC for PHP is a simple, easy framework for websites or web applications.
The main original design of this project is that it is using standard HTML documents for views. Almost total freedom is given on how the views are designed and organized. This is probably the most special concept with CMC for PHP: the framework doesn't force any organization in the project at all.

The HTML sources (we call it 'materials') are handled as DOM objects on both server and client side (and there are no text parse/replacement like most standard solutions). Basically the server is combining DOM materials into a view that is altered by the application program, though a frame/widget scheme.

Main features includes REST, Ajax (currently JSON), database/entity model, and extensible widget model. Application design follows classic MVC pattern. Most application code is in the controller.

What CMC for PHP is not

  • A framework that tells how to organize your application or views
  • specialized to the REST or the Ajax approach
  • A framework with 'magical' binding between view and controller: every 'bound' is made in the PHP code
  • A new view or presentation language and logics to learn
  • A framework with a long learning curve

Typical usage

Most typical usage

CMC for PHP is designed for building websites or web applications, especially in the following situations:

  • When a static material exist, and needs to be maintained as is (even the directory layout can remain)
  • When dynamic source code is not available or not usable
  • Working with HTML/CSS designers team separate from developer teams
  • When performance and optimization is needed, even with wrong design at first

PHP main benefits

CMC for PHP designed is based one main principle: the HTML material is the base work. The server process must be as discrete as possible, and must avoid duplicate work. The framework must follow a design easily understood, but powerful.

So the main benefits are:

  • Light: High performance with low CPU consumption
  • An integrated and transparent two level cache (static and dynamic)
  • Standard HTML views, without specific constrains or additions
  • Multilingual design, with maximum liberty, and decoupled translation systems
  • Natural design: frames with widgets which are loaded by the views
  • No code or views organization constraints: easy integration of existing web materials
  • Extensible, at widget level mostly
  • Transparent Ajax, with first request optimization (initial page loads in one request)
  • Possible and easy to implement differed processing, using Ajax technique (useful for long delay server process)
  • Independent from the client technology (however, currently only jQuery is supported)
  • Object design, with Java and/or C++ portability in mind
  • Freedom to modify the source code, following the GPL v3 rules

Main resources

Wiki main topics


sample projects explained:

External resources

Product life