Jump to main content Jump to doc navigation

При работе с xPDO внутри MODX класс modX (обычно доступен как $modx или $this->modx) уже является экземпляром xPDO, поэтому отдельный экземпляр создавать не нужно.

Если вы используете xPDO отдельно или хотите создать дополнительные экземпляры, используйте сведения на этой странице.

Сигнатура конструктора:

$xpdo= new xPDO($dsn, $username= '', $password= '', $options= array(), $driverOptions= null)

Параметры

Как видно, у конструктора 5 параметров. Обязателен только первый:

$dsn

Этот параметр задаёт значение DSN в таком формате:

mysql:host=MYHOSTNAME;dbname=MYDBNAME;charset=MYCHARSET

Вам нужно подставить hostname, имя базы и charset. Подробнее на странице PDO в PHP.net.

$username и $password

Имя пользователя и пароль к базе данных. Укажите учётные данные, которые xPDO будет использовать для подключений.

$options

Сюда вы передаёте массив опций, специфичных для xPDO.

Часть параметров xPDO использует пользовательские константы, в том числе (список неполный):

  • xPDO::OPT_BASE_CLASSES : массив классов для загрузки при создании экземпляра.
  • xPDO::OPT_BASE_PACKAGES : строка имён пакетов и путей через запятую (имя и путь разделены двоеточием) для загрузки при создании экземпляра.
  • xPDO::OPT_CACHE_COMPRESS : если задано, экземпляры xPDOCache у провайдеров со сжатием данных по умолчанию используют эту опцию.
  • xPDO::OPT_CACHE_DB : если задано, включается кэширование наборов результатов БД.
  • xPDO::OPT_CACHE_DB_COLLECTIONS : если задано, кэш результатов БД пытается кэшировать целые коллекции.
  • xPDO::OPT_CACHE_DB_OBJECTS_BY_PK : если задано, кэш результатов БД создаёт записи по первичному ключу в дополнение к сигнатуре запроса.
  • xPDO::OPT_CACHE_DB_EXPIRES : если задано, задаёт число секунд жизни записи кэша результатов БД. 0 означает без срока.
  • xPDO::OPT_CACHE_DB_HANDLER : если задано, задаёт производный класс xPDOCache для кэша результатов БД.
  • xPDO::OPT_CACHE_EXPIRES : если задано, задаёт число секунд жизни записи кэша по умолчанию у любого провайдера. 0 означает без срока.
  • xPDO::OPT_CACHE_FORMAT : если задано, задаёт формат файлов кэша при xPDOFileCache. По умолчанию PHP, также доступны JSON и serialized. (только 2.1)
  • xPDO::OPT_CACHE_KEY : если задано, задаёт ключ экземпляра кэша по умолчанию. Значение по умолчанию: default.
  • xPDO::OPT_CACHE_PATH : если задано, задаёт пользовательскую переменную класса cachePath у объекта xPDO для кэширования.
  • xPDO::OPT_CACHE_ATTEMPTS : если задано, задаёт число попыток xPDOFileCache заблокировать существующую запись кэша для записи. По умолчанию 1. (только 2.1)
  • xPDO::OPT_CACHE_ATTEMPT_DELAY : если задано, задаёт задержку в микросекундах между попытками блокировки существующих записей кэша для записи. По умолчанию 10000. (только 2.1)
  • xPDO::OPT_CONNECTIONS : опционально задаёт пул дополнительных подключений, из которых выбирать при создании xPDO. (только 2.2)
  • xPDO::OPT_CONN_INIT : задаёт опции, которые соединение должно иметь, чтобы быть выбранным как начальное. Актуально при нескольких подключениях. (только 2.2)
  • xPDO::OPT_CONN_MUTABLE : задаёт, можно ли изменять данные из соединения, то есть доступна ли запись. (только 2.2)
  • xPDO::OPT_HYDRATE_FIELDS : если true, поля будут гидратированы.
  • xPDO::OPT_HYDRATE_RELATED_OBJECTS : если true, связанные объекты будут гидратированы.
  • xPDO::OPT_HYDRATE_ADHOC_FIELDS : если true, ad-hoc поля будут гидратированы.
  • xPDO::OPT_LOADER_CLASSES : может быть массивом имён классов для загрузки при создании объекта xPDO. (устарело в 2.0.0-pl)
  • xPDO::OPT_ON_SET_STRIPSLASHES : если задано, к значениям при set() у экземпляров xPDOObject применяется stripslashes().
  • xPDO::OPT_TABLE_PREFIX : если задано, ко всем ссылкам на классы БД добавляется этот префикс.
  • xPDO::OPT_VALIDATOR_CLASS : если задано, используется указанный пользовательский класс, производный от xPDOValidator (по умолчанию)
  • xPDO::OPT_VALIDATE_ON_SAVE : если true, перед сохранением xPDOObjects проверяются своими Validators.

$driverOptions

Необязательный массив опций PDO, специфичных для драйвера. Подробнее здесь.

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

Дополнительно об опциях

  1. Гидратация полей

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
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

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

Learn more