2014-04-29 92 views
0

我在笨项目安装作曲,下载了2包:灵气/ SQL和灵气/ 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文件在那里,但似乎自动加载不加载它。为什么?

+1

你的'composer.json'文件是什么样的? – Phil

+0

您应该阅读您实际使用的分支/版本的文档。试试这个,而不是* master *'README.md' - https://github.com/auraphp/Aura.Sql_Query/blob/rename/README.md – Phil

+0

问题是由于命名空间。它是在另一个发行版之前更改的SqlQuery。所以可能有一些测试版存在这个问题。 –

回答

4

看看磁盘上的文件结构;你可能实际上想要包括Aura\SqlQuery\QueryFactory,而不是Sql_Query命名空间下的东西。这可能很简单。我遇到了一些问题,当我忘记在符合PSR-0的路径中重命名类以使其与文件名相匹配时,因此如果实际上磁盘上的内容位于:

Aura\SqlQuery\QueryFactory但您的使用语句是Aura\Sql_Query\QueryFactory,你会遇到问题。

正如评论下面提到的,看来灵气开发者有两个分支,对Githup项目auraphp/Aura.Sql_Query仍具有目录结构Sql_Query主分支,其中作为默认的包,通过packagist服务,服务于dev-rename分支它用SqlQuery代替Sql_Query

希望有帮助!

+2

似乎Aura开发者决定删除他们'dev-rename'分支中的下划线,这是我打赌OP正在使用的(它是packagist的默认版本) – Phil

+1

@Phil正是我现在所想的。 [Github高手](https://github.com/auraphp/Aura.Sql_Query/blob/develop-2/src/QueryFactory.php)仍然有下划线... – nietonfir

+1

是的,它的工作原理; P是的,我使用DEV-重命名。谢谢你们 – vebbo