[英]php accessing variables in constructor from included file
我有一个要使用API的类,并且api密钥位于另一个目录中的单独文件中。
api密钥文件实际上就是这样简单的:
$id = 'xxxxxxx';
$key = 'xxxxxxx';
这不起作用:
include '/path/to/file-with-api-keys.php';
class MyApiClass {
public function __construct($id, $token) {
$this->client = new Client($id, $token);
}
}
我实例化该类的代码在我用来测试的另一个php文件中,它非常简单,只包含该类,然后实例化它:
include '/path/to/MyClass.php';
$result = new MyClass();
$result->myMethod();
echo $result;
我得到的错误基本上是说2个变量为null。
两个问题:
1)如何在构造函数中访问变量的值? 我在其他地方读过,直接在方法中使用包含文件是不好的做法,而且使用全局变量也是不好的做法。
2)有点相关的问题,这些用于存储api密钥的文件与数据库连接详细信息位于同一目录中,但该目录不在根目录之外。 在此目录中,我带有.htaccess文件,其中包含“全部拒绝”。 从安全角度来看,这是否足够?还是应该做其他事情?
好3个问题...
3)我是否应该将api密钥保存在此目录中的单独文件中还是将它们嵌入到我的班级中?
希望有人可以在这里给我最佳实践。 谢谢!
构造函数不会自动从file-with-api-keys.php
读取变量。 在实例化类时,必须这样指定它们: $result = new MyClass($id, $key);
最佳做法是将所有PHP脚本存储在webroot目录之外,但index.php
(又名前端控制器)除外。
是的,您应该麻烦:)所有配置,API密钥等都应存储在类代码之外的单独文件中。 您不应将这两件事混在一起。 如果要使用某些版本控制系统(如Git),则将提交没有任何配置详细信息的类代码。 后者将在您的.gitignore
文件中。 如果您曾经在一组程序员中工作,那么每个人都将拥有自己的独立配置文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.