Joostina CMS / CMF v2.* API
  • Docs
  • Package
  • Class
  • Tree
  • Todo
Overview

Packages

  • Components
    • Acls
      • Models
        • Admin
        • Site
    • BlogCategory
      • Models
        • Admin
        • Site
    • Blogs
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Coder
      • Controllers
        • Admin
      • Models
        • Admin
    • Comments
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • CommentsCounter
      • Models
        • Admin
        • Site
    • Mainpage
      • Controllers
        • Site
    • News
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Pages
      • Controllers
        • Admin
        • Site
      • Models
        • Site
    • Search
      • Controllers
        • Site
    • Site
      • Controllers
        • Admin
        • Site
    • Sitemap
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
    • Test
      • Controllers
        • Site
    • Torrents
      • Controllers
        • Site
    • Users
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
  • Compression
  • Core
    • Libraries
      • Arhive
      • Array
      • Attached
      • Autoadmin
      • Autoloader
      • Benchmark
      • Breadcrumbs
      • Cache
      • Config
      • Cookie
      • Csrf
      • Database
        • Drivers
          • Interfaces
      • Datetime
      • Debug
      • Editor
      • Events
      • File
      • Filter
      • Flashmessage
      • Folder
      • Hit
      • Html
      • Image
      • Inflector
      • Inputfilter
      • Libraries
      • Mail
      • Module
      • Nestedset
      • Pager
      • Pages
      • Params
      • Randomizer
      • Request
      • RobotLoader
      • Route
      • Security
      • Session
      • Static
      • String
      • Text
      • Trash
      • Validate
  • Email
  • Extra
    • Libraries
      • Basket
  • Joostina
    • Controller
    • Core
    • Document
  • JSMin
  • Libraries
    • Extra
      • Basket
        • Models
          • Site
  • None
  • Plugins
    • Autoadmin
    • Editor
    • Sitemap
  • SimpleMail
  • Vendors
    • Libraries
      • Email

Classes

  • helperAcl
  • joosAdminToolbarButtons
  • joosAdminView
  • joosAdminViewToolbarEdit
  • joosAdminViewToolbarListing
  • joosAutoadminHTML
  • joosTemplater
  • joosValidateHelper
  • modelAdminCoder_Faker
  • moduleActions
  • moduleActionsLogin
  • moduleActionsMenu
  • moduleActionsNews
  • moduleActionsTest
  • Route
  • rulesValidation
  • TreeBuilder

Interfaces

  • joosAutoadminPluginsEdit
  • joosAutoadminPluginsTable

Exceptions

  • joosAutoadminClassPlugionNotFoundException
  • joosAutoadminFilePluginNotFoundException
  • joosAutoloaderClassNotFoundException
  • joosAutoloaderFileNotFoundException
  • joosAutoloaderOnStartFileNotFoundException
  • joosCacheException
  • joosCoreException
  • joosDatabaseException
  • joosException
  • joosFileLibrariesException
  • joosFolderLibrariesException
  • joosImageLibrariesException
  • joosModulesException
  • joosSimpleMailException
  • joosUploadLibrariesException
  • joosUserException
  • JSMinException

Functions

  • navigation_ul_li_recurse
  • quoted_printable_encode
  1: <?php defined('_JOOS_CORE') or exit();
  2: 
  3: /**
  4:  * Автозагрузчик классов
  5:  *
  6:  * @version    1.0
  7:  * @package    Core\Libraries
  8:  * @subpackage Autoloader
  9:  * @category   Libraries
 10:  * @author     Joostina Team <info@joostina.ru>
 11:  * @copyright  (C) 2007-2012 Joostina Team
 12:  * @license    MIT License http://www.opensource.org/licenses/mit-license.php
 13:  * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
 14:  *
 15:  * */
 16: class joosAutoloader
 17: {
 18:     /**
 19:      * Массив предустановленных системных библиотек
 20:      *
 21:      * @var array
 22:      */
 23:     private static $static_files = array( // проверенные библиотеки
 24: 
 25:     );
 26: 
 27:     public static function init()
 28:     {
 29:         $app_autoload_files = require_once JPATH_APP_CONFIG . '/autoload.php';
 30: 
 31:         self::$static_files = array_merge($app_autoload_files, self::$static_files);
 32: 
 33:         spl_autoload_register(array(new self, 'autoload'));
 34:     }
 35: 
 36:     private function __clone()
 37:     {
 38:     }
 39: 
 40:     public static function autoload($class)
 41:     {
 42:         // первый шаг - ищем класс в жестко прописанных параметрах
 43:         if (isset(self::$static_files[$class])) {
 44:             $file = JPATH_BASE . DS . self::$static_files[$class];
 45:         } else {
 46:             $file = JPATH_BASE . DS . self::get_class_dinamic_path($class);
 47:         }
 48: 
 49:         // joosFile::exists тут не подходит, потому как он еще не загрузился, spl_autoload_functions==1 - значит только один автозагрузчик - текущий и можно падать
 50:         if (!is_file($file) &&  count(spl_autoload_functions())==1 ) {
 51: 
 52:             throw new joosAutoloaderFileNotFoundException(sprintf('Автозагрузчик классов не смог обнаружить предпологаемый файл %s файл для класса %s', $file, $class));
 53:         }
 54: 
 55:         require_once $file;
 56: 
 57:         if (!class_exists($class, false)) {
 58: 
 59:             throw new joosAutoloaderClassNotFoundException(sprintf('Автозагрузчик классов не смог найти требуемый класс %s в предпологаемом файле %s', $class, $file));
 60:         }
 61: 
 62:         //!JDEBUG ? : joosDebug::add(sprintf(__('Автозагрузка класса %s из файла %s'), $class, $file));
 63: 
 64:         unset($file);
 65:     }
 66: 
 67:     private static function get_class_dinamic_path($class)
 68:     {
 69:         //$file = '';
 70:         // контроллеры панели управления
 71:         if (strpos($class, 'actionsAdmin', 0) === 0) {
 72:             $name = str_replace('actionsAdmin', '', $class);
 73:             $name = joosInflector::underscore($name);
 74:             $file = 'app' . DS . 'components' . DS . $name . DS . 'controller.admin.' . $name . '.php';
 75: 
 76:             // аякс-контроллеры панели управления
 77:         } elseif (strpos($class, 'actionsAjaxAdmin', 0) === 0) {
 78:             $name = str_replace('actionsAjaxAdmin', '', $class);
 79:             $name = strtolower($name);
 80:             $file = 'app' . DS . 'components' . DS . $name . DS . 'controller.admin.' . $name . '.ajax.php';
 81: 
 82:             // аякс-контроллеры фронта
 83:         } elseif (strpos($class, 'actionsAjax', 0) === 0) {
 84:             $name = str_replace('actionsAjax', '', $class);
 85:             $name = strtolower($name);
 86:             $file = 'app' . DS . 'components' . DS . $name . DS . 'controller.' . $name . '.ajax.php';
 87: 
 88:             // контроллеры фронта
 89:         } elseif (strpos($class, 'actions', 0) === 0) {
 90:             $name = str_replace('actions', '', $class);
 91:             $name = strtolower($name);
 92:             $file = 'app' . DS . 'components' . DS . $name . DS . 'controller.' . $name . '.php';
 93: 
 94:             // системные библиотеки
 95:         } elseif (strpos($class, 'joos', 0) === 0) {
 96:             $name = str_replace('joos', '', $class);
 97:             $name = strtolower($name);
 98:             $file = 'core' . DS . 'libraries' . DS . $name . '.php';
 99: 
100:             // модели панели управления
101:         } elseif (strpos($class, 'modelAdmin', 0) === 0) {
102:             $name = str_replace('modelAdmin', '', $class);
103:             $name = strtolower($name);
104:             $file = 'app' . DS . 'components' . DS . $name . DS . 'models' . DS . 'model.admin.' . $name . '.php';
105: 
106:             // модели сайта
107:         } elseif (strpos($class, 'model', 0) === 0) {
108:             $name = str_replace('model', '', $class);
109:             $name = strtolower($name);
110:             $file = 'app' . DS . 'components' . DS . $name . DS . 'models' . DS . 'model.' . $name . '.php';
111: 
112:             // хелперы модулей
113:         } elseif (strpos($class, 'modulesHelper', 0) === 0) {
114:             $name = str_replace('modulesHelper', '', $class);
115:             $name = strtolower($name);
116:             $file = 'app' . DS . 'modules' . DS . $name . DS . 'helper.' . $name . '.php';
117: 
118:             // модели фронта
119:         } else {
120:             throw new joosAutoloaderFileNotFoundException('Правило загрузки для класса :class_name не обнаружено', array(':class_name' => $class));
121:         }
122: 
123:         return $file;
124:     }
125: 
126:     /**
127:      *  Предстартовая загрузка необходимого списка
128:      *
129:      * @tutorial joosAutoloader( array('text','array','acl') )
130:      *
131:      * @static
132:      * @param  array                                      $names
133:      * @throws joosAutoloaderOnStartFileNotFoundException
134:      */
135:     public static function libraries_load_on_start(array $names = array())
136:     {
137:         foreach ($names as $name) {
138: 
139:             $file = JPATH_BASE . DS . 'core' . DS . 'libraries' . DS . $name . '.php';
140: 
141:             if (!joosFile::exists($file)) {
142:                 throw new joosAutoloaderOnStartFileNotFoundException(sprintf('Автозагрузчки не смог найти файл %s для автозагружаемой библиотеки %', $file, $name));
143:             }
144: 
145:             require_once ($file);
146:         }
147:     }
148: 
149: }
150: 
151: /**
152:  * Обработка исключений отсутствующих классов при работе автозагрузчика
153:  */
154: class joosAutoloaderFileNotFoundException extends joosException
155: {
156:     public function __construct($message = '', array $params = array())
157:     {
158:         /*
159:           $backtrace_error = debug_backtrace();
160: 
161:           if (isset($backtrace_error[1])) {
162:               $params[':error_file'] = $backtrace_error[3]['file'];
163:               $params[':error_line'] = $backtrace_error[3]['line'];
164:           }
165:   */
166: 
167:         parent::__construct($message, $params);
168:     }
169: 
170: }
171: 
172: /**
173:  * Обработка исключений отсутсвия нужных классов в найденных файлах автозагрузчика
174:  */
175: class joosAutoloaderClassNotFoundException extends joosException
176: {
177: }
178: 
179: /**
180:  * Обработка исключений отсутствующих классов при работе автозагрузчика
181:  */
182: class joosAutoloaderOnStartFileNotFoundException extends joosException
183: {
184: }
185: 
Joostina CMS / CMF v2.* API API documentation generated by ApiGen 2.6.1 – Template adapted by @olvlv and Joostina Team