我有一個在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