我卡住了,我想将外部库加载到我的symfony2项目中,但是收到错误声明我的app/autoloader.php
找不到类:
...
$loader->add('Tinify', __DIR__.'/../vendor/tinify/tinify/lib');
...
和我想要使用它的文件看起来像:
<?php
namespace XYZ\NewsBundle\Controller;
...
use Tinify;
class NewsController extends Controller{
...
public function displayAction($slug)
{
$em = $this->getDoctrine()->getManager();
$external = new \Tinify();
}
错误如下The autoloader expected class "Tinify" to be defined in file "xyz/app/../vendor/tinify/tinify/lib\Tinify.php". The file was found but the class was not in it, the class name or namespace probably has a typo.
但vendor\tinify\tinify\lib\Tinify.php
下的文件
namespace Tinify;
const VERSION = "1.3.0";
class Tinify {
...
}
我检查了它是否确实有拼写错误,但没有看到一个
答案 0 :(得分:2)
Tinify
的完整限定类名不是Tinify
,而是\Tinify\Tinify
。它的名称空间+ classname。
在NewsController
课程中你应该这样做:
use \Tinify\Tinify;
还要注意命名空间开头的反斜杠。
然后在代码中你应该只使用类名而不是命名空间,所以也改变这个:
$external = new \Tinify();
到此:
$external = new Tinify();
答案 1 :(得分:1)
为什么不在作曲家中安装Tinyfy?
composer require tinify/tinify
通过这种方式,composer处理库的自动加载,你不需要手动加载,你只需要创建类的实例并运行
$tinify = new Tinify();