У меня есть класс, где я хочу использовать API, и у меня есть ключи api в отдельном файле в другом каталоге.php доступ к переменным в конструкторе из включенного файла
АНИ файл ключа буквально так просто, как это:
$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 равны нулю.
два вопроса:
1) Как я могу получить доступ к значению переменных в моем конструкторе? Я читал в другом месте, что использование файла include непосредственно в методе - это плохая практика, а также использование глобальной переменной также было бы плохой практикой.
2) Несколько связанных вопросов, эти файлы, в которых я храню ключи api, находятся в том же каталоге с моими данными о соединении с базой данных, но каталог не находится за пределами корня. В этом каталоге у меня есть файл .htaccess с «Deny From All». Достаточно ли этого с точки зрения безопасности, или я должен делать что-то еще?
OK 3 вопросы ...
3) Должен ли я даже потрудился держать ключи АФИ в отдельных файлах в этом каталоге или просто вставлять их в моем классе?
Надеюсь, кто-то может дать мне лучшие практики здесь. Благодаря!
Где код, в котором вы создаете экземпляр класса? И, пожалуйста, укажите и пример того, что находится в файле, содержащем ключи. Переменные среды или конфигурации, специфичные для окружающей среды, в настоящий момент в значительной степени являются нормой. –
Итак, сначала, если нужны '$ id' и' $ key', тогда используйте 'require', а не' include'. Во-вторых, перейдем к предоставленному коду, если классы определены 'new MyApiClass ($ id, $ key)' должны работать нормально и передаваться в 'Client'. –
изменен, чтобы потребовать и получил эту ошибку: Неустранимая ошибка: require(): Не удалось открыть требуемый ключ '/ path/to/file-with-api.PHP '; – hyphen