《图片报》skalieren
《图片报》skalieren
Das Layout der Konferenzseite beschränkt die Fotos auf eine maximale Größe von 200 x 150像素。在夜晚,在天堂,在天堂ursprünglich hochgeladene Bild größer ist als unsere Vorgabe?
Diese Aufgabe eignet sich perfect, um zum Kommentar-Workflow hinzugefügt zu werden;wahrscheinlich direkt, nachdem der Kommentar validiert wild and bevor er publiziert wild。
女孩永远不会变准备好了
-Zustand und einen优化
-Ubergang hinzufugen:
12 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 - spam -拒绝+ -就绪- published transitions: accept: @@ -29,13 +30,16 @@ framework: to: spam publish: from: potential_spam- to:已发布+到:就绪Reject: from: potential_spam to: rejected publish_ham: from: ham- to:已发布+到:就绪Reject_ham:从:火腿到:被拒绝+优化:+来自:ready+到:已发布
Erzeuge eine Visualisierung der neuen工作流程-配置,um zu überprüfen, ob sie beschreibt,是wir wollen:
1
$ob娱乐下载symfony控制台工作流:dump comment | dot - tng -o workflow.png
想象一下乐观主义者
Die Bildoptimierungen werden mittelsGD(überprüfe, ob Deine lokale PHP-Installation die GD-Erweiterung aktiviert hat)和想象一下durchgefuhrt:
1
$ob娱乐下载交响乐作曲家要求“想象/想象:^ 1.2”
Die Skalierung eines Bildes kann über Die folgende Service-Klasse erfolgen:
与数据有关的图像优化ursprünglichen。原始图片是最重要的。
Einen neuen Schritt zum工作流hinzufügen
Ändere den工作流,um den neuen Zustand abzubilden und anzuwenden:
12 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 private WorkflowInterface $commentStateMachine, private MailerInterface $mailer, #[自动连接('%admin_email%')] private string $adminEmail,+ private ImageOptimizer $ ImageOptimizer+ #[autoire ('%photo_dir%')] private string $photoDir,LoggerInterface $logger = null,) {} @@ -54,6 +57,12 @@ class CommentMessageHandler ->to($this->adminEmail) ->context(['comment' => $comment]);+} elseif ($this->commentStateMachine->can($comment, 'optimize')) {+ if ($comment->getPhotoFilename()) {+ $ this - > imageOptimizer - >调整($ this - > photoDir‘/’。评论- > getPhotoFilename ());+}+ $this->commentStateMachine->apply($comment, 'optimize');+ $ this - > entityManager - >冲洗();} elseif ($this->logger) {$this->logger->debug('删除评论消息',['comment' => $comment->getId(), 'state' => $comment->getState()]);}
Beachte:photoDir美元
wid automatisch injiziert, da wir in einem vorhergehenden Schritt einen Container-参数für diesen Variablennamen festgelegt haben:
Hochgeladene Dateien auf dem生产系统speichern
Wir haben bereits in spezielles Verzeichnis mit Lese- und schreibberectigung für hochgeladene Dateien in der.platform.app.yaml
definiert。我是说,我是说,我是说,我是说。Wenn wir wollen, dass der Web-Container als auch der Message-Consumer-Worker auf das gleiche Verzeichnis zugreifen können, müssen wir einen Datei-Service (文件服务) anlegen:
1 2 3 4 5 6 7 8 9 10
——/ .platform / services.yaml+ + + b / .platform / services.yaml@@ -11,3 +11,7 @@ varnish: vcl: !包含类型:字符串路径:config.vcl++文件:+类型:network-storage:2.0+磁盘:256
Verwende ihn für das Foto-Upload-Verzeichnis:
1 2 3 4 5 6 7 8 9 10 11
——/ .platform.app.yaml+ + + b / .platform.app.yaml@@ -35,7 +35,7 @@ web: mounts: "/var": {source: local, source_path: var}- "/public/uploads": {source: local, source_path: uploads}+ "/public/uploads": {source: service, service: files, source_path: uploads}关系:
die sollte ausreichen, damit das Feature im producktivsystem funktioniert。