如何访问Joomla保护的财产


How to access Joomla protected property?

我已经尝试过了,它正在工作:

<?php
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', dirname(__FILE__).DS."../apitest/");
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
$conn = JDatabase::getConnectors();
print_r($conn);
?>

然而,当我尝试这个:

<?php
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', dirname(__FILE__).DS."../apitest/");
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
$conn = JDatabase::$connection;
print_r($conn);
?>

它返回:

Fatal error: Cannot access protected property JDatabase::$connection in C:'xampp'htdocs'apitest1'index.php on line 10

如何访问$connection变量?

试试这个

define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$db = &JFactory::getDBO(); //Your database object is ready
$sql = "SELECT * FROM #__users";
$db->setQuery($sql);
$db->query();
$res = $db->loadAssocList();
print_r($res)

希望这能对你有所帮助。。

这是受保护的,因此您需要使用getter来读取,并使用setter来写入此属性。

搜索Joomla API显示:

http://docs.joomla.org/API16:JDatabase/getConnection

示例用法

$conn = $connectorInstance.getConnection();

您可能还想看看这篇文章