Initial setup

mkdir -p
  app/config/database/fixtures
  app/config/database/migrations
  app/config/database/sql
  app/config/database/yaml
  app/layout/templates
  app/modules
  app/scripts
  app/shared/models
  app/shared/templates
  app/var/cache
  app/var/log
  app/var/run
  app/www/css/admin
  app/www/css/site
  app/www/javascript/admin
  app/www/javascript/site

SVN properties
    svn:externals
        .
            ^/core.framework/trunk/lib                     lib
            ^/core.framework/trunk/tests                   tests
        app/www/css
            ^/core.framework/trunk/static/css/lib          lib
        app/www/javascript/admin
            ^/core.framework/trunk/static/javascript       lib
        app/www/javascript/site
            ^/core.framework/trunk/static/javascript       lib
        app/shared/templates
            ^/core.framework/trunk/static/templates        lib
    svn:ignore
        app/var/cache
            *
        app/var/log
            *
        app/var/run
            *
    svn:executable
        app/scripts/bin/*
            *

.htaccess (vhost)
  redirect non-www requests to www (without the domain name hardcoded)
  mod_php5.c vs. mod_php.c, howto detect? (is this even needed?)
    - magic_quotes off
    - ?

permissions:
  - touch app/var/log/error_log && chmod 666 app/var/log/error_log
  - chmod 777 app/var/cache

On deploy to $STAGE:
  - clear entire cache
  - generate the app/var/cache/$STAGE.php which is included in bootstrap
    - calling it $STAGE.php
    - always have a $STAGE.php to include, avoids stat() calls like file_exists()
      - app/var/cache/development.php is empty
  - if "classmap" present in application.ini
    - remove it (not from the file itself!) so not to be acted on
    - build the whole classmap from include paths and APPEND to predefined (memory usage vs. performance)
    - store to app/var/cache/classmap.php as return array();
    - add Core_Loader::setClassMap(require 'app/var/cache/classmap.php'); to $STAGE.php
  - pre-generate DIC object
    - generating it from components.ini (look at app/scripts/bin/dicbuilder)
    - store to app/var/cache/components.php as __Container
    - add require 'app/var/cache/components.php'; $application->setContainer(new __Container); to $STAGE.php
  - pre-generate config file cache
    - new Core_Config('application.ini', $STAGE);
    - new Core_Config('router.ini',      $STAGE);
  - test if serialize/unserialize the entire prebuild object is faster (it shouldn't be)