我有一个在CakePHP 3中运行的应用程序,并通过Composer安装了我的软件包。使用Composer时,引用PHP包的子类的正确方法是什么?
最近我添加了phpspec/php-diff
(https://packagist.org/packages/phpspec/php-diff)并跑composer update
。它已经把文件,如预期,在vendor/phpspec/php-diff/
我可以实例化类这样我的CakePHP控制器之一:
// src/Controller/UrlsController.php
// ...
use Diff;
public function test()
{
$diff = new Diff(foo, bar);
// This works
}
然而,此包的文档给这个作为https://github.com/chrisboulton/php-diff/blob/master/example/example.php#L43为例后面实例化Diff
(如上面test()
所做的那样)。
require_once dirname(__FILE__).'/../lib/Diff/Renderer/Html/Inline.php';
$renderer = new Diff_Renderer_Html_Inline;
echo $diff->render($renderer);
显然require_once
语句不工作,因为这不是在那里Inline.php
生活作曲家层次。我们如何实例化new Diff_Renderer_Html_Inline
?如果我只是用它这个样子的错误说法
级“应用程序\控制器\ Diff_Renderer_Html_Inline”未找到
我想可能是改变require_once
路径另一个解决办法,使其指向它在vendor/
位置。但肯定有更好的解决方案?
这是PSR-0式的自动加载(这作曲家支持),所以'新\ DIFF \渲染器\ HTML \ Inline'大概会工作(也许?) – apokryfos
谢谢,我已经尝试过,但它给出了一个类似的错误,'Class'Diff \ Renderer \ Html \ Inline'找不到' – Andy
如果不是那么'new \ Diff_Renderer_Html_Inline'(根NS相对)也许会工作 – apokryfos