调整图片大小
调整图片大小
在页面设计会议上,照片是受限的最大大小为200×150像素。如何优化如果上传原始图片和减少他们的大小大于限制呢?
这是一个完美的工作,可以添加到评论工作流,可能只是在评论之前验证和发布。
让我们添加一个新的准备好了
国家和一个优化
转型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29
- - - / config /包/ workflow.yaml+ + + b / config /包/ workflow.yaml@@ -16 6 + 16 7 @@框架:potential_spam -垃圾邮件拒绝+ -准备好了-发布转换:接受:-29年@@ 13 + 30,16 @@框架::垃圾邮件发布:从:potential_spam-:发表+:准备好了拒绝:从:potential_spam:拒绝publish_ham::火腿-:发表+:准备好了reject_ham:从:火腿:拒绝+优化:+:准备好了发表的:+
生成一个新的工作流配置验证的视觉表示,它描述了我们想要的:
1
美元ob娱乐下载symfony控制台工作流:转储|点-Tpng - o workflow.png置评
优化图片与想象
图像优化将由于完成GD(检查您当地的PHP安装启用了GD扩展)想象一下:
1
美元ob娱乐下载symfony作曲家要求“想象/想象:^ 1.2”
调整一个图像可以通过以下服务类:
优化图片后,我们将新文件存储在原来的地方。你可能也会想把周围的原始图像。
添加一个新的工作流
修改工作流处理新状态:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32
推荐- - - - - - MessageHandler / src / / CommentMessageHandler.php+ + + MessageHandler b / src / / CommentMessageHandler.php@@ 2,6 + 2,7 @@名称空间的应用程序\ MessageHandler;+使用App \ ImageOptimizer;使用App \ \ CommentMessage消息;使用App \ Repository \ CommentRepository;使用App \ SpamChecker;@@ -25年6 + 26日8 @@类CommentMessageHandler私有WorkflowInterface commentStateMachine美元,美元私人MailerInterface梅勒,#【自动装配(% admin_email %)]私人字符串adminEmail美元,+私人ImageOptimizer ImageOptimizer美元,+ #【自动装配(% photo_dir %)]私人字符串photoDir美元,私人? LoggerInterface记录器= null,美元){}@@ -54年6 + 57岁12 @@类CommentMessageHandler - > ($ this - > adminEmail) - >上下文([“评论”= >评论美元]));+}elseif ($ this - > commentStateMachine - >(评论美元,“优化”)){+如果($评论- > getPhotoFilename ()) {+ $ this - > imageOptimizer - >调整($ this - > photoDir。‘/’。$评论- > getPhotoFilename ());+}+ $ this - > commentStateMachine - >应用(美元评论,“优化”);+ $ this - > entityManager - >冲洗();}elseif ($ this - >日志记录器){$ this - >日志- >调试(“删除评论消息”,(“评论”= > $评论- > getId(),“国家”= > $评论- > getState ()));}
请注意,photoDir美元
自动注入我们定义了一个容器参数在这个变量名在前一个步骤:
在生产中存储上传数据
我们已经定义了一个特殊的读写的上传的文件目录.platform.app.yaml
。但山是本地的。如果我们希望web容器和消息使用方人员能够访问相同的山,我们需要创建一个文件服务:
1 2 3 4 5 6 7 8 9 10
- - - / .platform / services.yaml+ + + b / .platform / services.yaml@@ -11年7 @@清漆:vcl: 3 + 11日!包括类型:字符串路径:config.vcl++文件:+类型:网络存储:2.0+磁盘:256
用它来照片上传目录:
1 2 3 4 5 6 7 8 9 10 11
- - - a / .platform.app.yaml+ + + b / .platform.app.yaml@@ -35 7 + 35 7 @@网络:坐骑:" / var ":{来源:当地source_path: var}——“公共/上传”:{来源:当地source_path:上传}+ " /公共/上传”:{来源:服务、服务:文件source_path:上传}关系:
这应该足以使特性在生产工作。
这项工作,包括代码示例,许可下Creative Commons BY-NC-SA 4.0许可证。