About Sitellite       Screenshots       Downloads       Forge      Documentation       Community       Support

You are here: Home / Documentation / The Anatomy of an App

The Anatomy of an App

Sitellite is not just a great CMS, but also a very powerful application server platform built on top of PHP.  Sitellite, as an application server, consists of several components, all of which come together to provide a platform upon which to deploy Sitellite-based applications, or apps, which are highly compatible with one another, and integrate seemlessly not only with the Sitellite CMS, but also with your Sitellite-powered web sites.  This seemlessness is what gives Sitellite-based apps and Sitellite itself a leg up on the competition, in terms of professionalism.

Briefly, these components are:

Sitellite Application Framework (SAF)


SAF is the core of Sitellite, which is a collection of hundreds of high quality PHP classes.  These classes can provide a significant savings in development time by implementing routine programming tasks for you, so you can focus on what is unique to your application.  For example, instead of writing yet-another-database-abstraction-layer or yet-another-template-engine (as if PHP doesn't have enough of them already), you can simply use SAF's built-in database and template classes.

Sitellite Content Server (SCS)


The Content Server is where the "magic" happens in the Sitellite platform.  In Model-View-Controller (MVC) terms, it is the Controller.  It initializes the necessary objects and configuration settings, and determines which document, app, box, or form to load for each visitor request.

SCS also provides several important convenience features, including:
  • Automatic page-level caching
  • Automatic user authentication and access control
  • Automatic language negotiation with visitors' browsers
  • And quite a lot more
Sitellite Document Object

The Document Object, which is the saf.Misc.Document class within SAF, handles the retrieval of web pages, and the compilation of them into the final output based on Sitellite's template choosing mechanism (see my article "Sitellite as a Content Publishing Engine" for more info on that).

Sitellite App Loader

The App Loader, saf.Loader in SAF, loads and processes app requests (boxes and forms) made by visitor requests, including administrators.  As an example of just how powerful the App Loader app model is, the Sitellite CMS user interface itself is nothing more than a collection of apps (appdoc, cms, help, imagechooser, myadm, scheduler, usradm, xed, etc.).

Sitellite Task Scheduler

The task scheduler is a command line interface into Sitellite, providing access to a customizable set of tasks which can be run individually or all together, usually on a crontab schedule (the Unix system scheduling utility), or manually by the web site owner on a Unix shell.

The task scheduler's main tasks are to publish and archive queued and expired documents, and to send and receive messages between Sitellite's internal messaging system and the email, jabber, and other gateways.  Individual apps may also define scheduler tasks as well, for example the SiteSearch indexing task, which indexes a Sitellite web site on a schedule for new documents and files, and document updates.

XT Template Engine

XT is an XML-based template language and is a key part of SAF.  XT is one of the most flexible template engines available in PHP, and one of the only ones that not only encourages, but requires at least a basic level of standards compliance of your templates (XML validity, so XHTML 1.0 Transitional is the minimum required standard to comply with).

Next: The App Directory Structure

Page 1: Sitellite is not just a great CM...
Page 2: The App Directory Structure

All Tutorials

Members

Note: You can use your SitelliteForge.com account here and vice versa.

Username

Password

Forgot your password?

Not a member? Click here to register

Sitellite 5 Beta


Copyright © 2009, SIMIAN systems Inc.
All rights reserved. Privacy policy
Some of the icons on this site were created by the Gnome Project.