Jump to main content Jump to doc navigation

modX::getInstance

Создаёт, возвращает или обновляет зарегистрированные экземпляры modX. Это канонический способ получить объект modX: через него работают все точки входа MODX (index.php, manager/index.php, connectors/index.php, установщик и тесты), а полученный объект регистрируется в общем реестре экземпляров.

Синтаксис

static modX getInstance ([string|int|null $id = null], [array|null $config = null], [boolean $forceNew = false])
  • $id (string|int|null) Идентификатор экземпляра. Если не задан — возвращается уже существующий экземпляр (если он есть), иначе генерируется новый идентификатор и создаётся новый экземпляр.
  • $config (array|null) Данные конфигурации для экземпляра. Переданный с уже существующим $id, он объединяется с конфигурацией этого экземпляра; переданный без $id — приводит к созданию нового экземпляра.
  • $forceNew (boolean) Создать новый экземпляр, даже если экземпляр с таким $id уже есть.

Возвращает экземпляр modX; бросает xPDOException, если запись в реестре не является корректным экземпляром.

Регистрация важна: объект, созданный через new \MODX\Revolution\modX(), работает, но в реестр не сохраняется, поэтому следующий вызов getInstance() (в точке входа, в установщике или в тестах) создаст второй экземпляр с собственным соединением к базе данных и собственной конфигурацией. Везде используйте getInstance().

Пример

Загрузка MODX извне через реестр экземпляров:

require_once '/absolute/path/to/modx/config.core.php';
require_once MODX_CORE_PATH . 'vendor/autoload.php';

$modx = \MODX\Revolution\modX::getInstance();
$modx->initialize('web');

Смотрите также

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • JT Skaggs
  • deJaya
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$194 per month—let's make that $500!

Learn more