PHP 随后需要的文件是否可以访问以前的要求?
PHP does a subsequently required file have access to previous requirements?
如果我 require
一个文件,比如 Composer 自动加载脚本,我随后 require
的文件可以访问该文件的 'contents' 吗?
我以前从来没有遇到过这个问题,但我似乎 运行 碰壁了。
加载脚本:
//load required class files
require "../server/frameworks/vendor/autoload.php";
//alias
use Mailgun\Mailgun;
//get config
require "../server/sitetools/config.php";
config.php
class sitetools{
function __construct(){
//Instantiate Mailgun
$this->mg = new Mailgun("API_KEY");
$this->domain = "domail.tld";
}
}
然后,当我尝试实例化它时,我的 sitetools
class 收到错误消息:Class 'Mailgun\Mailgun' not found
您需要将命名空间添加到 config.php,而不是加载脚本(如果您不在那里使用它...)。
config.php
use Mailgun\Mailgun;
class sitetools {
function __construct(){
//Instantiate Mailgun
$this->mg = new Mailgun("API_KEY");
$this->domain = "domail.tld";
}
}
并且通过为您的脚本和您的 class 使用相同的文件名,您应该也可以为您自己的 class 使用 composer 自动加载器(它可能需要更多配置...).
如果我 require
一个文件,比如 Composer 自动加载脚本,我随后 require
的文件可以访问该文件的 'contents' 吗?
我以前从来没有遇到过这个问题,但我似乎 运行 碰壁了。
加载脚本:
//load required class files
require "../server/frameworks/vendor/autoload.php";
//alias
use Mailgun\Mailgun;
//get config
require "../server/sitetools/config.php";
config.php
class sitetools{
function __construct(){
//Instantiate Mailgun
$this->mg = new Mailgun("API_KEY");
$this->domain = "domail.tld";
}
}
然后,当我尝试实例化它时,我的 sitetools
class 收到错误消息:Class 'Mailgun\Mailgun' not found
您需要将命名空间添加到 config.php,而不是加载脚本(如果您不在那里使用它...)。
config.php
use Mailgun\Mailgun;
class sitetools {
function __construct(){
//Instantiate Mailgun
$this->mg = new Mailgun("API_KEY");
$this->domain = "domail.tld";
}
}
并且通过为您的脚本和您的 class 使用相同的文件名,您应该也可以为您自己的 class 使用 composer 自动加载器(它可能需要更多配置...).