php - Laravel 与干预和命名空间的集成?

标签 php class methods laravel namespaces

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/

相关文章:

java 。重新声明类初始值设定项内的类字段和方法嵌套 block (框架大括号)差异中的局部变量

java - 从另一个Java类调用 "non-void"方法

php - Nginx + PHP 文件上传问题

php - 将订单 ID 分配给其产品

c++ - "A is nested class in B"是可传递的关系吗?

python - 在 Python 中添加的方法

php异常额外参数

php - 如何从我选中的复选框传递下一页的值?

c++ - 三元运算符将类扩展宏应用于两个操作数

class - 是否可以将一个类的代码分发到多个文件?