Bitrix-D7  20.0.0
Класс Application

Base class for any application. Подробнее...

Граф наследования:Application:
HttpApplication Application

Открытые члены

 initializeBasicKernel ()
 Does minimally possible kernel initialization. Подробнее...
 
 initializeExtendedKernel (array $params)
 Does full kernel initialization. Подробнее...
 
 getDispatcher ()
 
 start ()
 Starts request execution. Подробнее...
 
 run ()
 Runs controller and its action and sends response to the output. Подробнее...
 
 end ($status=0, Response $response=null)
 Ends work of application. Подробнее...
 
 terminate ($status=0)
 Terminates application by invoking exit(). Подробнее...
 
 createExceptionHandlerLog ()
 
 createExceptionHandlerOutput ()
 
 getExceptionHandler ()
 
 getConnectionPool ()
 Returns database connections pool object. Подробнее...
 
 getContext ()
 Returns context of the current request. Подробнее...
 
 setContext (Context $context)
 Modifies context of the current request. Подробнее...
 
 getCache ()
 Returns new instance of the Cache object. Подробнее...
 
 getManagedCache ()
 Returns manager of the managed cache. Подробнее...
 
 getTaggedCache ()
 Returns manager of the managed cache. Подробнее...
 

Открытые статические члены

static getInstance ()
 Returns current instance of the Application. Подробнее...
 
static getConnection ($name="")
 Static method returns database connection for the specified name. Подробнее...
 
static getUserTypeManager ()
 Returns UF manager. Подробнее...
 
static isUtfMode ()
 Returns true id server is in utf-8 mode. Подробнее...
 
static getDocumentRoot ()
 Returns server document root. Подробнее...
 
static getPersonalRoot ()
 Returns personal root directory (relative to document root) Подробнее...
 
static resetAccelerator ()
 Resets accelerator if any. Подробнее...
 

Защищенные члены

 __construct ()
 Creates new application instance. Подробнее...
 
 initializeContext (array $params)
 Initializes context of the current request. Подробнее...
 
 initializeExceptionHandler ()
 Exception handler can be initialized through the Config\Configuration (.settings.php file). Подробнее...
 
 createDatabaseConnection ()
 Creates database connection pool. Подробнее...
 
 initializeCache ()
 

Защищенные данные

 $isBasicKernelInitialized = false
 
 $isExtendedKernelInitialized = false
 
 $context
 
 $connectionPool
 
 $managedCache
 
 $taggedCache
 
 $lruCache
 
 $exceptionHandler = null
 

Статические защищенные данные

static $instance = null
 

Подробное описание

Base class for any application.

См. определение в файле main/lib/application.php строка 17

Конструктор(ы)

◆ __construct()

__construct ( )
protected

Creates new application instance.

Переопределяется в HttpApplication.

См. определение в файле main/lib/application.php строка 75

76  {
77 
78  }

Методы

◆ createDatabaseConnection()

createDatabaseConnection ( )
protected

Creates database connection pool.

См. определение в файле main/lib/application.php строка 299

300  {
301  $this->connectionPool = new Data\ConnectionPool();
302  }

◆ createExceptionHandlerLog()

createExceptionHandlerLog ( )

См. определение в файле main/lib/application.php строка 251

252  {
253  $exceptionHandling = Config\Configuration::getValue("exception_handling");
254  if ($exceptionHandling === null || !is_array($exceptionHandling) || !isset($exceptionHandling["log"]) || !is_array($exceptionHandling["log"]))
255  return null;
256 
257  $options = $exceptionHandling["log"];
258 
259  $log = null;
260 
261  if (isset($options["class_name"]) && !empty($options["class_name"]))
262  {
263  if (isset($options["extension"]) && !empty($options["extension"]) && !extension_loaded($options["extension"]))
264  return null;
265 
266  if (isset($options["required_file"]) && !empty($options["required_file"]) && ($requiredFile = Loader::getLocal($options["required_file"])) !== false)
267  require_once($requiredFile);
268 
269  $className = $options["class_name"];
270  if (!class_exists($className))
271  return null;
272 
273  $log = new $className();
274  }
275  elseif (isset($options["settings"]) && is_array($options["settings"]))
276  {
277  $log = new Diag\FileExceptionHandlerLog();
278  }
279  else
280  {
281  return null;
282  }
283 
284  $log->initialize(
285  isset($options["settings"]) && is_array($options["settings"]) ? $options["settings"] : array()
286  );
287 
288  return $log;
289  }

◆ createExceptionHandlerOutput()

createExceptionHandlerOutput ( )

Переопределяется в HttpApplication.

См. определение в файле main/lib/application.php строка 291

292  {
293  return new Diag\ExceptionHandlerOutput();
294  }

◆ end()

end (   $status = 0,
Response  $response = null 
)

Ends work of application.

Sends response and then terminates execution. If there is no $response the method will use Context::$response.

Аргументы
int$status
Response | null$response
Возвращает
void
Исключения
SystemException

См. определение в файле main/lib/application.php строка 169

170  {
171  $response = $response?: $this->context->getResponse();
172  $response->send();
173 
174  $this->terminate($status);
175  }

◆ getCache()

getCache ( )

Returns new instance of the Cache object.

Возвращает
Data\Cache

См. определение в файле main/lib/application.php строка 392

393  {
395  }

◆ getConnection()

static getConnection (   $name = "")
static

Static method returns database connection for the specified name.

If name is empty - default connection is returned.

@static

Аргументы
string$nameName of database connection. If empty - default connection.
Возвращает
DB\Connection

См. определение в файле main/lib/application.php строка 381

382  {
383  $pool = Application::getInstance()->getConnectionPool();
384  return $pool->getConnection($name);
385  }

◆ getConnectionPool()

getConnectionPool ( )

Returns database connections pool object.

Возвращает
Data\ConnectionPool

См. определение в файле main/lib/application.php строка 348

349  {
350  return $this->connectionPool;
351  }

◆ getContext()

getContext ( )

Returns context of the current request.

Возвращает
Context

См. определение в файле main/lib/application.php строка 358

359  {
360  return $this->context;
361  }

◆ getDispatcher()

getDispatcher ( )
final

См. определение в файле main/lib/application.php строка 127

128  {
129  if (is_null($this->dispatcher))
130  throw new NotSupportedException();
131  if (!($this->dispatcher instanceof Dispatcher))
132  throw new NotSupportedException();
133 
134  return clone $this->dispatcher;
135  }

◆ getDocumentRoot()

static getDocumentRoot ( )
static

Returns server document root.

Возвращает
null|string

См. определение в файле main/lib/application.php строка 460

461  {
462  static $documentRoot = null;
463  if ($documentRoot != null)
464  return $documentRoot;
465 
466  $context = Application::getInstance()->getContext();
467  if ($context != null)
468  {
469  $server = $context->getServer();
470  if ($server != null)
471  return $documentRoot = $server->getDocumentRoot();
472  }
473 
474  return Loader::getDocumentRoot();
475  }

◆ getExceptionHandler()

getExceptionHandler ( )
Возвращает
\Bitrix\Main\Diag\ExceptionHandler

См. определение в файле main/lib/application.php строка 338

339  {
341  }

◆ getInstance()

static getInstance ( )
static

Returns current instance of the Application.

Возвращает
Application
Исключения
SystemException

См. определение в файле main/lib/application.php строка 86

87  {
88  if (!isset(static::$instance))
89  static::$instance = new static();
90 
91  return static::$instance;
92  }

◆ getManagedCache()

getManagedCache ( )

Returns manager of the managed cache.

Возвращает
Data\ManagedCache

См. определение в файле main/lib/application.php строка 402

403  {
404  if ($this->managedCache == null)
405  {
406  $this->managedCache = new Data\ManagedCache();
407  }
408 
409  return $this->managedCache;
410  }

◆ getPersonalRoot()

static getPersonalRoot ( )
static

Returns personal root directory (relative to document root)

Возвращает
null|string

См. определение в файле main/lib/application.php строка 482

483  {
484  static $personalRoot = null;
485  if ($personalRoot != null)
486  return $personalRoot;
487 
488  $context = Application::getInstance()->getContext();
489  if ($context != null)
490  {
491  $server = $context->getServer();
492  if ($server != null)
493  return $personalRoot = $server->getPersonalRoot();
494  }
495 
496  return isset($_SERVER["BX_PERSONAL_ROOT"]) ? $_SERVER["BX_PERSONAL_ROOT"] : "/bitrix";
497  }

◆ getTaggedCache()

getTaggedCache ( )

Returns manager of the managed cache.

Возвращает
Data\TaggedCache

См. определение в файле main/lib/application.php строка 417

418  {
419  if ($this->taggedCache == null)
420  {
421  $this->taggedCache = new Data\TaggedCache();
422  }
423 
424  return $this->taggedCache;
425  }

◆ getUserTypeManager()

static getUserTypeManager ( )
static

Returns UF manager.

Возвращает
\CUserTypeManager

См. определение в файле main/lib/application.php строка 432

433  {
434  global $USER_FIELD_MANAGER;
435  return $USER_FIELD_MANAGER;
436  }

◆ initializeBasicKernel()

initializeBasicKernel ( )

Does minimally possible kernel initialization.

Исключения
SystemException

См. определение в файле main/lib/application.php строка 99

100  {
101  if ($this->isBasicKernelInitialized)
102  return;
103  $this->isBasicKernelInitialized = true;
104 
106  $this->initializeCache();
107  $this->createDatabaseConnection();
108  }

◆ initializeCache()

initializeCache ( )
protected

См. определение в файле main/lib/application.php строка 304

305  {
306  //TODO: Should be transfered to where GET parameter is defined in future
307  //magic parameters: show cache usage statistics
308  $show_cache_stat = "";
309  if (isset($_GET["show_cache_stat"]))
310  {
311  $show_cache_stat = (strtoupper($_GET["show_cache_stat"]) == "Y" ? "Y" : "");
312  @setcookie("show_cache_stat", $show_cache_stat, false, "/");
313  }
314  elseif (isset($_COOKIE["show_cache_stat"]))
315  {
316  $show_cache_stat = $_COOKIE["show_cache_stat"];
317  }
318  Data\Cache::setShowCacheStat($show_cache_stat === "Y");
319 
320  if (isset($_GET["clear_cache_session"]))
321  Data\Cache::setClearCacheSession($_GET["clear_cache_session"] === 'Y');
322  if (isset($_GET["clear_cache"]))
323  Data\Cache::setClearCache($_GET["clear_cache"] === 'Y');
324  }

◆ initializeContext()

initializeContext ( array  $params)
abstractprotected

Initializes context of the current request.

Should be implemented in subclass.

Переопределяется в HttpApplication.

◆ initializeExceptionHandler()

initializeExceptionHandler ( )
protected

Exception handler can be initialized through the Config\Configuration (.settings.php file).

'exception_handling' => array( 'value' => array( 'debug' => true, // output exception on screen 'handled_errors_types' => E_ALL & ~E_STRICT & ~E_NOTICE, // catchable error types, printed to log 'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT, // error types from catchable which throws exceptions 'ignore_silence' => false, // ignore @ 'assertion_throws_exception' => true, // assertion throws exception 'assertion_error_type' => 256, 'log' => array( 'class_name' => 'MyLog', // custom log class, must extends ExceptionHandlerLog; can be omited, in this case default Diag\FileExceptionHandlerLog will be used 'extension' => 'MyLogExt', // php extension, is used only with 'class_name' 'required_file' => 'modules/mylog.module/mylog.php' // included file, is used only with 'class_name' 'settings' => array( // any settings for 'class_name' 'file' => 'bitrix/modules/error.log', 'log_size' => 1000000, ), ), ), 'readonly' => false, ),

См. определение в файле main/lib/application.php строка 216

217  {
218  $exceptionHandler = new Diag\ExceptionHandler();
219 
220  $exceptionHandling = Config\Configuration::getValue("exception_handling");
221  if ($exceptionHandling == null)
222  $exceptionHandling = array();
223 
224  if (!isset($exceptionHandling["debug"]) || !is_bool($exceptionHandling["debug"]))
225  $exceptionHandling["debug"] = false;
226  $exceptionHandler->setDebugMode($exceptionHandling["debug"]);
227 
228  if (isset($exceptionHandling["handled_errors_types"]) && is_int($exceptionHandling["handled_errors_types"]))
229  $exceptionHandler->setHandledErrorsTypes($exceptionHandling["handled_errors_types"]);
230 
231  if (isset($exceptionHandling["exception_errors_types"]) && is_int($exceptionHandling["exception_errors_types"]))
232  $exceptionHandler->setExceptionErrorsTypes($exceptionHandling["exception_errors_types"]);
233 
234  if (isset($exceptionHandling["ignore_silence"]) && is_bool($exceptionHandling["ignore_silence"]))
235  $exceptionHandler->setIgnoreSilence($exceptionHandling["ignore_silence"]);
236 
237  if (isset($exceptionHandling["assertion_throws_exception"]) && is_bool($exceptionHandling["assertion_throws_exception"]))
238  $exceptionHandler->setAssertionThrowsException($exceptionHandling["assertion_throws_exception"]);
239 
240  if (isset($exceptionHandling["assertion_error_type"]) && is_int($exceptionHandling["assertion_error_type"]))
241  $exceptionHandler->setAssertionErrorType($exceptionHandling["assertion_error_type"]);
242 
243  $exceptionHandler->initialize(
244  array($this, "createExceptionHandlerOutput"),
245  array($this, "createExceptionHandlerLog")
246  );
247 
248  $this->exceptionHandler = $exceptionHandler;
249  }

◆ initializeExtendedKernel()

initializeExtendedKernel ( array  $params)

Does full kernel initialization.

Should be called somewhere after initializeBasicKernel()

Аргументы
array$paramsParameters of the current request (depends on application type)
Исключения
SystemException

См. определение в файле main/lib/application.php строка 116

117  {
118  if ($this->isExtendedKernelInitialized)
119  return;
120  $this->isExtendedKernelInitialized = true;
121 
122  $this->initializeContext($params);
123 
124  //$this->initializeDispatcher();
125  }

◆ isUtfMode()

static isUtfMode ( )
static

Returns true id server is in utf-8 mode.

False - otherwise.

Возвращает
bool

См. определение в файле main/lib/application.php строка 443

444  {
445  static $isUtfMode = null;
446  if ($isUtfMode === null)
447  {
448  $isUtfMode = Config\Configuration::getValue("utf_mode");
449  if ($isUtfMode === null)
450  $isUtfMode = false;
451  }
452  return $isUtfMode;
453  }

◆ resetAccelerator()

static resetAccelerator ( )
static

Resets accelerator if any.

См. определение в файле main/lib/application.php строка 502

503  {
504  if (defined("BX_NO_ACCELERATOR_RESET"))
505  return;
506 
507  $fl = Config\Configuration::getValue("no_accelerator_reset");
508  if ($fl)
509  return;
510 
511  if (function_exists("accelerator_reset"))
512  accelerator_reset();
513  elseif (function_exists("wincache_refresh_if_changed"))
514  wincache_refresh_if_changed();
515  }

◆ run()

run ( )

Runs controller and its action and sends response to the output.

It's a stub method and we can't mark it as abstract because there is compatibility.

Возвращает
void

Переопределяется в HttpApplication.

См. определение в файле main/lib/application.php строка 155

156  {}

◆ setContext()

setContext ( Context  $context)

Modifies context of the current request.

Аргументы
Context$context

См. определение в файле main/lib/application.php строка 368

369  {
370  $this->context = $context;
371  }

◆ start()

start ( )
abstract

Starts request execution.

Should be called after initialize. Should be implemented in subclass.

Переопределяется в HttpApplication.

◆ terminate()

terminate (   $status = 0)

Terminates application by invoking exit().

It's the right way to finish application

См. также
\CMain::finalActions().
Аргументы
int$status
Возвращает
void

См. определение в файле main/lib/application.php строка 184

185  {
186  /** @noinspection PhpUndefinedClassInspection */
187  \CMain::runFinalActionsInternal();
188  exit($status);
189  }

Поля

◆ $connectionPool

$connectionPool
protected

См. определение в файле main/lib/application.php строка 39

◆ $context

$context
protected

См. определение в файле main/lib/application.php строка 32

◆ $exceptionHandler

$exceptionHandler = null
protected

См. определение в файле main/lib/application.php строка 65

◆ $instance

$instance = null
staticprotected

См. определение в файле main/lib/application.php строка 22

◆ $isBasicKernelInitialized

$isBasicKernelInitialized = false
protected

См. определение в файле main/lib/application.php строка 24

◆ $isExtendedKernelInitialized

$isExtendedKernelInitialized = false
protected

См. определение в файле main/lib/application.php строка 25

◆ $lruCache

$lruCache
protected

См. определение в файле main/lib/application.php строка 60

◆ $managedCache

$managedCache
protected

См. определение в файле main/lib/application.php строка 46

◆ $taggedCache

$taggedCache
protected

См. определение в файле main/lib/application.php строка 53


Объявления и описания членов класса находятся в файле:
Bitrix\Main\Application\$context
$context
Definition: main/lib/application.php:32
Bitrix\Main\Application\$managedCache
$managedCache
Definition: main/lib/application.php:46
Bitrix\Main\Data\Cache\setClearCache
static setClearCache($clearCache)
A privileged user wants to skip cache on this hit.
Definition: cache.php:178
Bitrix\Main\Application\$connectionPool
$connectionPool
Definition: main/lib/application.php:39
Bitrix\Main\Application\createDatabaseConnection
createDatabaseConnection()
Creates database connection pool.
Definition: main/lib/application.php:299
Bitrix\Main\Data\Cache\setShowCacheStat
static setShowCacheStat($showCacheStat)
Definition: cache.php:164
Bitrix\Main\Application\$exceptionHandler
$exceptionHandler
Definition: main/lib/application.php:65
Bitrix\Main\Application\getInstance
static getInstance()
Returns current instance of the Application.
Definition: main/lib/application.php:86
Bitrix\Main\Data\Cache\setClearCacheSession
static setClearCacheSession($clearCacheSession)
A privileged user wants to skip cache on this session.
Definition: cache.php:187
Bitrix\Main\Application\initializeExceptionHandler
initializeExceptionHandler()
Exception handler can be initialized through the Config\Configuration (.settings.php file).
Definition: main/lib/application.php:216
Bitrix\Main\Application\initializeCache
initializeCache()
Definition: main/lib/application.php:304
Bitrix\Main\Application\terminate
terminate($status=0)
Terminates application by invoking exit().
Definition: main/lib/application.php:184
Bitrix\Main\Application\$taggedCache
$taggedCache
Definition: main/lib/application.php:53
Bitrix\Main\Loader\getDocumentRoot
static getDocumentRoot()
Returns document root.
Definition: main/lib/loader.php:198
Bitrix\Main\Loader\getLocal
static getLocal($path, $root=null)
Checks if file exists in /local or /bitrix directories.
Definition: main/lib/loader.php:439
Bitrix\Main\Data\Cache\createInstance
static createInstance($params=[])
Definition: cache.php:153
Bitrix\Main\Application\initializeContext
initializeContext(array $params)
Initializes context of the current request.