Vvveb is an Open Source CMS that has a builtin powerful page builder and is written in PHP, it can use MySQL, PostgreSQL or Sqlite as a database.
The code structure is organized as MVCC (Model View Controller Component) with a major difference in the model and view layers where sql language and html templates are used.
Not treating html code as simple strings or hiding the power of the sql language behind limiting abstractions leads to better separation of concerns, better maintainability and faster and easier development.
Structure
The CMS is separated into three applications, app, admin and install.
With common folders for system, public, plugins and config.
Install application starts by default if the database configuration config/db.php
is missing, this is the case for a new installation.
If database is configured then app will start by default.
The app application is the frontend that site visitors will see, it displays site content.
The admin application can be accessed usually from /admin
path (it can be changed for better security) and provides backend content management.
The directory structure.
├── app
├── controller
├── component
├── template
├── sql
└── validate
├── admin
├── controller
├── component
├── template
├── sql
└── validate
├── install
├── controller
├── template
└── sql
└── plugins
│ ├── contact-form
│ └── insert-scripts
├── system
├── config
│ └── db.php
├── storage
│ ├── digital_assets
│ ├── model
│ │ └── app
│ │ └── admin
│ │ └── install
│ ├── backup
│ ├── sqlite
│ ├── compiled-templates
│ └── cache
├── public
│ ├── themes
│ │ └── landing
│ │ └── blog-default
│ ├── admin
│ │ └── default
│ ├── media
│ ├── js
│ └── page-cache
│ └── install
│ └── plugins
│ │ ├── contact-form
│ │ └── insert-scripts
└── locale