我有多个文件需要一起工作,我在config.php中创建了SQL PDO实例,我想在多个文件中使用它。当我尝试在另一个文件中使用$ db_instance时,我遇到的问题是自动完成无效。
这是我的代码示例:
的config.php:
<?php
// below here i already provide hint
/* @var $db_instance PDO */
$db_instance = new PDO('mysql:host=127.0.0.1;dbname=stackoverflow;charset=utf8', 'root', '');
?>
的index.php:
<?php
require_once("config.php");
// so this section, autocomplete is not working
//$db_instance->
?>
那么我该如何克服这个自动完成的问题?
答案 0 :(得分:3)
解决此问题的快速方法是为IDE添加提示:
<?php
require_once "config.php";
/* @var $db_instance PDO */
//$db_instance->
?>
我倾向于将它们包含在星号 - 星号形式的注释中,因为我传统上有更多的运气让NetBeans识别它们。但是,使用最新版本的其他评论表格也可能有效。
现在,一个更好的方法是根本不依赖全局变量 - 不是因为你的IDE不喜欢它们,而是因为它们通常不是好的做法。相反,你可以这样做:
$db_instance = My\Database::getInstance();
课程My\Database
当然只是一个例子 - 您需要编写它。 getInstance
可以是一个单例,以确保只创建一个实例。