我在我的CodeIgniter项目中安装了composer,下载了2个包:Aura / Sql和Aura / SqlQuery
这是我在index.php文件中的代码
require_once ROOTPATH . 'vendor/autoload.php';
use Aura\Sql\ExtendedPdo;
$db = new ExtendedPdo('mysql:host=127.0.0.1;dbname=mydb', 'root', '', array(), array());
var_dump($db->fetchAll('SELECT * FROM sh_users'));
use Aura\Sql_Query\QueryFactory;
$query_factory = new QueryFactory('mysql');
require_once BASEPATH . 'core/CodeIgniter.php';
这两个片段都是从文档中复制的
var_dump给出了完美的结果,但是QueryFactory给了我错误
Fatal error: Class 'Aura\Sql_Query\QueryFactory' not found in F:\XAMPP\htdocs\codeigniter\public\admin\index.php on line 83
我不明白为什么。所有供应商都下载了所有的php文件,但似乎自动加载并没有加载它。为什么呢?
答案 0 :(得分:4)
查看磁盘上的文件结构;您实际上可能希望包含Aura\SqlQuery\QueryFactory
,而不是Sql_Query
命名空间下的内容。它可能就是那么简单。当我忘记在符合PSR-0的路径中重命名该类以使其与文件名匹配时,我遇到了问题,因此如果实际上磁盘上的内容位于:
Aura\SqlQuery\QueryFactory
但您的使用声明为Aura\Sql_Query\QueryFactory
,您将遇到问题。
如下面评论中所述,Aura开发人员似乎有两个分支,Githup项目auraphp/Aura.Sql_Query上的主分支仍然具有作为默认包的目录结构Sql_Query
通过packagist,提供dev-rename
分支,用[{1}}替换Sql_Query
。
希望有所帮助!