如何设置全局安全 class php
How to setup global secured class php
我正在尝试从另一个 class 中的函数访问 class 中的 public 方法
我有:
主要功能文件
class kernel(){
private $conn;
private function mysqlconnection(){
$conn = new Mysqlconnection(); //Setup connection
}
private function makequery($query){
$this->conn->do_query($query); //do mysql query
}
public function query($query){
//check rank
...
return $this->makequery($query); //if true do it
}
}
App功能模板文件
Class app{
function __construct($appname){
//Check that this app can get connection (try make query)
$kernel->query($appname);
}
}
$kernel = new kernel ();
$app = new app($appname); //HOW to access another class from class?
我通过调用 class 到 globals
$GLOBALS['kernel'] = new kernel();
在应用程序中 class
...
Class app{
function __construct($appname){
//Check that this app can get connection (try make query)
$GLOBALS['kernel']->query($appname);
}
}
但是我可以这样做更安全吗?
通过构造函数注入 kernal
的实例
Class app{
protected $kernal;
function __construct($appname, $kernal)
{
$this->kernal = $kernal //if needed in other methods, save to a property
$this->kernal->query($appname);
}
}
$kernel = new kernel ();
$app = new app($appname, $kernal);
我是参考函数做的。
前
function ClassName(){
if(!isset($GLOBALS["ClassName"]))
$GLOBALS["ClassName"] = new $GLOBALS["ClassName"];
return $GLOBALS["ClassName"];
}
你可以通过
调用它
ClassName()->query("...");
来自任何地方! :D
我正在尝试从另一个 class 中的函数访问 class 中的 public 方法 我有:
主要功能文件
class kernel(){
private $conn;
private function mysqlconnection(){
$conn = new Mysqlconnection(); //Setup connection
}
private function makequery($query){
$this->conn->do_query($query); //do mysql query
}
public function query($query){
//check rank
...
return $this->makequery($query); //if true do it
}
}
App功能模板文件
Class app{
function __construct($appname){
//Check that this app can get connection (try make query)
$kernel->query($appname);
}
}
$kernel = new kernel ();
$app = new app($appname); //HOW to access another class from class?
我通过调用 class 到 globals
$GLOBALS['kernel'] = new kernel();
在应用程序中 class ...
Class app{
function __construct($appname){
//Check that this app can get connection (try make query)
$GLOBALS['kernel']->query($appname);
}
}
但是我可以这样做更安全吗?
通过构造函数注入 kernal
的实例
Class app{
protected $kernal;
function __construct($appname, $kernal)
{
$this->kernal = $kernal //if needed in other methods, save to a property
$this->kernal->query($appname);
}
}
$kernel = new kernel ();
$app = new app($appname, $kernal);
我是参考函数做的。 前
function ClassName(){
if(!isset($GLOBALS["ClassName"]))
$GLOBALS["ClassName"] = new $GLOBALS["ClassName"];
return $GLOBALS["ClassName"];
}
你可以通过
调用它ClassName()->query("...");
来自任何地方! :D