- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于 (Symfony 4) How do I access the Liip Imagine bundle from within PHP code?我找到了一个使用 Liip Imagine Cache 的解决方案,但我无法让它工作。两种解决方案,它们都不适合我。我完全不知道为什么。
当我尝试使用 harmstyler 的解决方案时
$imagineCacheManager = $this->get('liip_imagine.cache.manager');
然后在我的 Controller 中我得到一个 ServiceNotFoundException
Service "liip_imagine.cache.manager" not found: even though it exists in the app's container, the container inside "App\Controller\MemberController" is a smaller service locator that only knows about the "doctrine", "form.factory", "http_kernel", "parameter_bag", "request_stack", "router", "security.authorization_checker", "security.csrf.token_manager", "security.token_storage", "serializer", "session" and "twig" services. Try using dependency injection instead.
所以我尝试了 Alister Bulman 的建议,将其手动注入(inject)到 service.yaml 中的一个类中,但这也不起作用。
在我的 service.yaml 中有
app.imagine_cache_manager:
class: Liip\ImagineBundle\Imagine\Cache\CacheManager
arguments: ["@liip_imagine.cache.manager"]
在我的 Controller 中我有
$imagineCacheManager = $this->get('app.imagine_cache_manager');
这导致我遇到同样的异常
Service "app.imagine_cache_manager" not found: even though it exists in the app's container, the container inside "App\Controller\MemberController" is a smaller service locator that only knows about the "doctrine", "form.factory", "http_kernel", "parameter_bag", "request_stack", "router", "security.authorization_checker", "security.csrf.token_manager", "security.token_storage", "serializer", "session" and "twig" services. Try using dependency injection instead.
[顺便说一句,我实际上想做的是:我有成员,每个成员都有一个图像。创建成员 我有一个图像上传,让 Liip 创建主图像的调整大小的图像。当我删除图片或成员时,当然我也想删除Liip缓存的图片。这就是为什么我尝试让 Liip 缓存管理器能够获取缓存的图像路径以便能够删除它们。另一种方法是使用事件监听器,但这对我也不起作用。我将在另一个问题中总结 Listener 方法。]
最佳答案
这是由于 Controller
类在 Symfony4 中被弃用为 Controller 的基类。现在推荐的 AbstractController
类使用一个较小的容器,其中仅包含通过 ServiceSubscriberInterface
声明的服务(您可以查看 AbstractController::getSubscribedServices()
方法来查看默认情况下可用的服务)。
你可以:
在 Controller 中扩展 getSubscribedServices()
函数并将 CacheManager
作为服务之一包含在内。
直接在 Controller 中注入(inject)服务(推荐):
namespace App\Controller;
use Liip\ImagineBundle\Imagine\Cache\CacheManager;
class MemberController extends AbstractController
{
public function __construct(CacheManager $liipCache)
{
$this->imagineCacheManager = $liipCache;
}
}
您可以阅读有关此更改的信息 in the announcement
关于php - 从 Controller 访问 Liip Imagine bundle - 将服务分配给变量(Symfony 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56528116/
我正在尝试按照集成说明使用 Liip Imagine 与 Sonata Media 生成缩略图: http://sonata-project.org/bundles/media/master/doc/
我有一个项目,我将上传的图像保存在 src/My/Bundle/Resources/uploads/images/full 中,并使用 twig 过滤器 imagine_filter 动态创建缩略图。
我正在处理 Sylius 1.5 项目,在我的本地环境中一切正常,但是在部署到我的开发环境时,我在过滤图像上遇到错误(使用 liip 想象过滤器)。 该环境由一个运行 sylius 的 docker
在 Symfony 5 项目中,电子邮件是使用 Mailer 组件的 TemplatedEmail() 函数创建的。在使用的 Twig 模板($templatedEmail->htmlTemplate
我正在使用 Liip\FunctionalTestBundle 对于单元测试,它工作得很好。 AppCategoryControllerTest.php: class AppCategoryContr
我想在我的功能测试中附加固定装置(基于 symfony 2.8 中的 LiipFunctionalTestBundle。即使它是我正在处理的开发数据库,我仍然需要附加固定装置,因为我将拥有: 区域
我希望能够上传一个文件,并从中创建 3 个缩略图并将所有内容存储在 S3 服务器上。 我的 liip/LiipImagineBundle 设置如下: liip_imagine : # configur
这就是我做的 我先打电话获取 token $client->request('POST', '/api/login_check', [], [], ['CONTENT_TYPE' =>
我希望能够上传一个文件,并从中创建 3 个缩略图并将所有内容存储在 S3 服务器上。 我的 liip/LiipImagineBundle 设置如下: liip_imagine : # configur
关于 (Symfony 4) How do I access the Liip Imagine bundle from within PHP code?我找到了一个使用 Liip Imagine Ca
关于 (Symfony 4) How do I access the Liip Imagine bundle from within PHP code?我找到了一个使用 Liip Imagine Ca
我是一名优秀的程序员,十分优秀!