mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-11 16:16:14 +01:00
52a29be70d
Summary: Ref T8424. This adds a standard KeyValueCache to serve as a request cache. In particular, I need to cache Spaces (they are frequently accessed, sometimes by multiple viewers) but not have them survive longer than the scope of one request. This request cache is explicitly destroyed by each web request and each daemon request. In the very long term, building this kind of construct supports reusing PHP interpreters to run web requests (see some discussion in T2312). Test Plan: - Added and executed unit tests. - Ran every daemon. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T8424 Differential Revision: https://secure.phabricator.com/D13153
38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
|
|
$phabricator_root = dirname(dirname(__FILE__));
|
|
require_once $phabricator_root.'/support/PhabricatorStartup.php';
|
|
|
|
// If the preamble script exists, load it.
|
|
$preamble_path = $phabricator_root.'/support/preamble.php';
|
|
if (file_exists($preamble_path)) {
|
|
require_once $preamble_path;
|
|
}
|
|
|
|
PhabricatorStartup::didStartup();
|
|
|
|
try {
|
|
PhabricatorStartup::loadCoreLibraries();
|
|
PhabricatorCaches::destroyRequestCache();
|
|
|
|
$sink = new AphrontPHPHTTPSink();
|
|
|
|
try {
|
|
AphrontApplicationConfiguration::runHTTPRequest($sink);
|
|
} catch (Exception $ex) {
|
|
try {
|
|
$response = new AphrontUnhandledExceptionResponse();
|
|
$response->setException($ex);
|
|
|
|
PhabricatorStartup::endOutputCapture();
|
|
$sink->writeResponse($response);
|
|
} catch (Exception $response_exception) {
|
|
// If we hit a rendering exception, ignore it and throw the original
|
|
// exception. It is generally more interesting and more likely to be
|
|
// the root cause.
|
|
throw $ex;
|
|
}
|
|
}
|
|
} catch (Exception $ex) {
|
|
PhabricatorStartup::didEncounterFatalException('Core Exception', $ex, false);
|
|
}
|