File indexing completed on 2024-12-22 05:36:17

0001 <?php
0002 /**
0003  *  ocs-webserver
0004  *
0005  *  Copyright 2016 by pling GmbH.
0006  *
0007  *    This file is part of ocs-webserver.
0008  *
0009  *    This program is free software: you can redistribute it and/or modify
0010  *    it under the terms of the GNU Affero General Public License as
0011  *    published by the Free Software Foundation, either version 3 of the
0012  *    License, or (at your option) any later version.
0013  *
0014  *    This program is distributed in the hope that it will be useful,
0015  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0016  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0017  *    GNU Affero General Public License for more details.
0018  *
0019  *    You should have received a copy of the GNU Affero General Public License
0020  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0021  **/
0022 
0023 // Define if APC extension is loaded
0024 define('APC_EXTENSION_LOADED',
0025     extension_loaded('apc') && ini_get('apc.enabled') && (PHP_SAPI !== 'cli' || ini_get('apc.enable_cli')));
0026 
0027 // Define if APC extension is loaded
0028 define('MEMCACHED_EXTENSION_LOADED', extension_loaded('memcached'));
0029 
0030 // Define if APC extension is loaded
0031 define('MEMCACHE_EXTENSION_LOADED', extension_loaded('memcache'));
0032 
0033 // Define path to application directory
0034 defined('APPLICATION_PATH')
0035 || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
0036 
0037 defined('APPLICATION_DATA')
0038 || define('APPLICATION_DATA', realpath(dirname(__FILE__) . '/../data'));
0039 
0040 // Define path to application cache
0041 defined('APPLICATION_CACHE')
0042 || define('APPLICATION_CACHE', realpath(dirname(__FILE__) . '/../data/cache'));
0043 
0044 // Define path to application library
0045 defined('APPLICATION_LIB')
0046 || define('APPLICATION_LIB', realpath(dirname(__FILE__) . '/../library'));
0047 
0048 defined('APPLICATION_ENV')
0049 || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
0050 
0051 require APPLICATION_LIB . '/Local/CrawlerDetect.php';
0052 if (crawlerDetect($_SERVER['HTTP_USER_AGENT'])) {
0053     define('SEARCHBOT_DETECTED', true);
0054 } else {
0055     define('SEARCHBOT_DETECTED', false);
0056 }
0057 
0058 // Ensure library/ is on include_path
0059 set_include_path(implode(PATH_SEPARATOR, array(
0060     APPLICATION_LIB,
0061     get_include_path(),
0062 )));
0063 
0064 // Initialising Autoloader
0065 require APPLICATION_LIB . '/Zend/Loader/SplAutoloader.php';
0066 require APPLICATION_LIB . '/Zend/Loader/StandardAutoloader.php';
0067 require APPLICATION_LIB . '/Zend/Loader/AutoloaderFactory.php';
0068 Zend_Loader_AutoloaderFactory::factory(array(
0069     'Zend_Loader_StandardAutoloader' => array(
0070         'autoregister_zf' => true,
0071         'namespaces'      => array(
0072             'Application' => APPLICATION_PATH,
0073         )
0074     )
0075 ));
0076 
0077 // Including plugin cache file
0078 if (file_exists(APPLICATION_CACHE . DIRECTORY_SEPARATOR . 'pluginLoaderCache.php')) {
0079     include_once APPLICATION_CACHE . DIRECTORY_SEPARATOR . 'pluginLoaderCache.php';
0080 }
0081 Zend_Loader_PluginLoader::setIncludeFileCache(APPLICATION_CACHE . DIRECTORY_SEPARATOR . 'pluginLoaderCache.php');
0082 
0083 // Set configuration
0084 $configuration = APPLICATION_PATH . '/configs/application.ini';
0085 // Merge an existing local configuration file (application.local.ini) with global config
0086 if (file_exists(APPLICATION_PATH . '/configs/application.local.ini')) {
0087     $configuration = array(
0088         'config' => array(
0089             APPLICATION_PATH . '/configs/application.ini',
0090             APPLICATION_PATH . '/configs/application.local.ini'
0091         )
0092     );
0093 }
0094 
0095 // Init and start Zend_Application
0096 require_once APPLICATION_LIB . '/Local/Application.php';
0097 // Create application, bootstrap, and run
0098 $application = new Local_Application(APPLICATION_ENV, $configuration);
0099 $application->bootstrap()->run();