Skip to content
AntonShevchuk edited this page Jun 11, 2012 · 32 revisions

Описание

Наше приложение

Настройка

Начинаем все с document root'a:

# setup environment
# for mixed app.APPLICATION_ENV.php with application.php
SetEnv APPLICATION_ENV production
 
Options +FollowSymlinks
Options -Indexes
 
<IfModule mod_rewrite.c>
 
RewriteBase /public/
RewriteEngine On
 
# loop stopping
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
 
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} ^/(css|scripts|images|uploads) [OR]
RewriteCond %{REQUEST_URI} \.(jpe?g|png|gif|ico)$
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
 
</IfModule>
<?php
// public/index.php
// Environment
define('ENVIRONMENT_PRODUCTION', 'production');
define('ENVIRONMENT_DEVELOPMENT', 'development');
define('ENVIRONMENT_TESTING', 'testing');
define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : ENVIRONMENT_PRODUCTION));

// Debug mode for development environment only
if (APPLICATION_ENV != ENVIRONMENT_PRODUCTION) {
    define('DEBUG', true);
    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', 1);
} else {
    define('DEBUG', false);
    error_reporting(0);
    ini_set('display_errors', 0);
}


// Paths
define('PATH_ROOT', realpath(dirname(__FILE__) . '/../'));
define('PATH_APPLICATION', PATH_ROOT . '/application');
define('PATH_DATA', PATH_ROOT . '/data');
define('PATH_LIBRARY', PATH_ROOT . '/library');
define('PATH_PUBLIC', PATH_ROOT . '/public');
define('PATH_THEME', PATH_ROOT . '/themes');

// Shutdown function for handle critical and other errors
register_shutdown_function('errorHandler');

// iframe header - prevent security issues
header('X-Frame-Options: SAMEORIGIN');

function errorHandler() {
    $error = error_get_last();
    if (!is_array($error)
        || !in_array($error['type'], array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR))) {
        return;
    }
    require_once 'error.php';
}

// Try to run application
try {
    // init loader
    require_once PATH_LIBRARY . '/Bluz/_loader.php';
    require_once PATH_APPLICATION . '/Bootstrap.php';

    $app = \Application\Bootstrap::getInstance();
    $app->init(APPLICATION_ENV)
        ->process()
        ->render();
} catch (Exception $e) {
    require_once 'error.php';
}

Создаем симлинку на public либо изменяем baseUrl в конфигурационном файле и .htaccess. И запускаем скрипт install.sh

Использование

Методы/геттеры инициализации пакетов фреймворка:

  • getAcl
  • getAuth
  • getLayout
  • getLoader
  • getCache
  • getDb
  • getRequest
  • getRouter
  • getSession

Методы для работы с выводом:

  • useLayout($flag) - вкл/выкл лейаут
  • useJson($flag) - вкл/выкл вывод в формате JSON (все данные из view будут закинуты в JSON)

Clone this wiki locally