tl;dr - 我已经做了 composer sump-autoload
问题:
我正在使用干预图像库。
我正在更新具有代表图像模型的 Image 类的现有应用程序。
我希望使用 Intervention Image Image 类的完整命名空间名称。
See example here:
我将我希望解决的故障范围缩小到一个带有单一路径的空测试项目:
Route::get('/{sugar}.jpg', function($sugar)
{
$path = 'C:/some-path/';
$img = Intervention\Image\Image::make($path . $sugar . '.jpg');
return $img->response('jpg');
});
这是有问题的行:
$img = Intervention\Image\Image::make($path . $sugar . '.jpg');
结果是:
Call to undefined method Intervention\Image\Image::make()
但是,命名空间似乎是正确的:
https://github.com/Intervention/image/blob/master/src/Intervention/Image/Image.php
如果我删除命名空间并执行以下操作:
$img = Image::make($path . $sugar . '.jpg');
它完美地工作!只是这会与实际应用程序中现有的 Image 类发生冲突。
感谢您阅读到这里。关于如何调试这个命名空间问题的任何建议?
最佳答案
看来类名不正确!
似乎有一个名为 image 的类,但它不是我需要的。
正确的类名是 ImageManagerStatic
.
您可以这样做来处理名称冲突:
use Intervention\Image\ImageManagerStatic as someUniqueName;
您也可以简单地更改
config/app
中的行由此 'Image' => 'Intervention\Image\Facades\Image',
对此
'someUniqueName' => 'Intervention\Image\Facades\Image',
关于php - Laravel 与干预和命名空间的集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25740736/