通过包含ModX核心文件来访问ModX数据库的方法?

时间:2015-08-04 05:48:08

标签: modx modx-revolution

我有一个PHP文件(我不能制作一个片段)。我需要将它连接到数据库,而不是以正常的方式进行操作,想知道我是否可以只包含已经具有数据库连接的某种头文件。

有没有人知道Modx文件结构中的这样一个文件?

3 个答案:

答案 0 :(得分:2)

容易...

如果您打开主index.php,则可以看到一些提示:

/* define this as true in another entry file, then include this file to simply access the API
 * without executing the MODX request handler */
if (!defined('MODX_API_MODE')) {
    define('MODX_API_MODE', false);
}

// ...

/* execute the request handler */
if (!MODX_API_MODE) {
    $modx->handleRequest();
}

那就是说,如果你有一个原始的PHP文件,那么我们举个例子说:hello.php

<?php

define('MODX_API_MODE', true); // IMPORTANT!!!
require 'index.php'; // or give directory path, according to your need

// let's test it
$startPage = $modx->getObject('modResource', $modx->getOption('site_start', null, 1));

if (!$startPage) {
    die('CRAP!');
}

$startPageArray = $startPage->toArray();
echo '<pre>';
print_r($startPageArray);
echo '</pre>';
die('WOOHOO');

不,你不必再次定义$modx

它在index.php中使用相同的对象。

答案 1 :(得分:0)

如果在外部脚本中加载modx模块,你可以针对你的modx数据库运行任何操作[实际上你可以使用任何modx函数]

https://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/loading-modx-externally

一旦实例化modx对象,它将处理所有数据库连接细节。这将适用于任何页面,而不仅仅是经理页面。

答案 2 :(得分:-1)

允许使用系统数据库配置进行数据库连接的唯一地方是管理器页面,但这需要更多的工作来编写插件来访问其类和函数。

如果您希望能够使用MODX功能建立连接,我建议至少出于安全原因使用它的xPDO来执行查询。

这样的设置将是:

define('MODX_CORE_PATH','/ path / to / revo / core /'); 定义( 'MODX_CONFIG_KEY', '配置'); require_once MODX_CORE_PATH。 '模式/镆铘/ modx.class.php';

$ host ='localhost'; $ username ='your_username'; $ password ='your_password'; $ dbname ='your_database'; $ port = 3306; $ charset ='utf-8';

$ dsn =“mysql:host = $ host; dbname = $ dbname; port = $ port; charset = $ charset”; $ xpdo = new xPDO($ dsn,$ username,$ password);