About

Identicon Image
Dennis Iversen
05-Nov-2010 15:39:33
0 Comments

Coscms is a small framework for building websites using the PHP language and the MySQL database. It is modularized and modules are distributed as git repos.

Features

  • Web Modules, shell modules, profiles.
  • All (above) module types can / should be distributed as git repos.
  • As All modules are git repos it is easy to program on one part of the system, e.g. a module like the blog or the content system, and leave the rest.
  • If you don't like a part of the system you can fork e.g. the blog and create another blog system - or just write a new blog system.
  • Thereby it is quite easy to assemble your own profile, where the only module which is changed is your forked version of the blog module.
  • Profiles are like collection of modules and templates.
  • Profile system is very simple.(Just an array with module and template names and versions and repo locations - and all ini files for configuration).
  • Small RAM usage. About 1MB. About 4MB if everything is cached in memory with APC).
  • Use APC and everything is cached in memory - including all ini files - this will boost performance.
  • Source is 1.44 MB at the time of writting including full git history.
  • Source is actually larger, as the system uses some PEAR packages and some Zend packages. E.g. the PEAR Pager class and Mail class.
  • Fairly Fast: Only runs modules if a page needs to load them.
  • Run one system in RAM, and add sub hosts running from the same code
  • Simple template system, with options for adding sub templates.
  • Creates modules that are easy to use in other modules. E.g. comment which can be attached to any other module you make.
  • Nice Jquery stuff. A default markdown editor (a fork of the stackoverflow editor), some generic scripts for sorting multi level main menu, and a generic sorting script for simple lists (pull and slip).

Don't Support

  • No web installer (But you could build one :)
  • Base system only supports MySQL.
  • Not many modules so far: But you are very welcome to build a module you need.

Aims

The aims of this project is to make a simple system where it is easy to build modules and templates (and thereby web applications). The system is quite simple. Simplicity is about cutting off. But at the same time almost any web project needs the following features:

  • Account system: The default account system is email based, but you can also enable facebook and open ID.
  • A blog or:
  • A CMS (the 'content' module) for writing pages, and arranging these in a menu.
  • The blog and the content module supports images, files, tags, comments, rss, and a few other modules.
  • User configuration from web. Easy to attach some settings through the dbconfig module.
  • Base configuration from ini files.
  • Menu system when writing a module - attach these to admin menu, main menu or module menus.
  • Simple separation from code and views: place HTML in views.
  • A build system for different type of sites.
  • Filtering and filters
  • Translation
  • Esay to use other classes. E.g. if you don't like the default db class you can just use e.g. redbeans

KISS

The aim of this project, compared with other projects, is therefore not to do all things. And all things that the system does should be (KISS).


Comments