Für diejenigen, die nicht in der Lage sind Imagine
zu integrieren richtig wie ich ..
Ich fand eine andere Lösung WebinoImageThumb here, die völlig in Ordnung mit mir arbeitete.Hier ist wenig Erklärung, wenn Sie nicht die vollständige Dokumentation lesen wollen:
Run: php composer.phar require webino/webino-image-thumb:dev-develop
und fügen WebinoImageThumb
als aktives Modul in config/application.config.php
die weiter sieht aus wie:
<?php
return array(
// This should be an array of module namespaces used in the application.
'modules' => array(
'Application',
'WebinoImageThumb'
),
.. unten bleibt gleich
Jetzt in Ihrer Controller-Aktion verwendet diesen durch Service Locator wie unten:
// at top on your controller
use Zend\Validator\File\Size;
use Zend\Validator\File\ImageSize;
use Zend\Validator\File\IsImage;
use Zend\Http\Request
// in action
$file = $request->getFiles();
$fileAdapter = new \Zend\File\Transfer\Adapter\Http();
$imageValidator = new IsImage();
if ($imageValidator->isValid($file['file_url']['tmp_name'])) {
$fileParts = explode('.', $file['file_url']['name']);
$filter = new \Zend\Filter\File\Rename(array(
"target" => "file/path/to/image." . $fileParts[1],
"randomize" => true,
));
try {
$filePath = $filter->filter($file['file_url'])['tmp_name'];
$thumbnailer = $this->getServiceLocator()
->get('WebinoImageThumb');
$thumb = $thumbnailer->create($filePath, $options = [], $plugins = []);
$thumb->adaptiveResize(540, 340)->save($filePath);
} catch (\Exception $e) {
return new ViewModel(array('form' => $form,
'file_errors' => array($e->getMessage())));
}
} else {
return new ViewModel(array('form' => $form,
'file_errors' => $imageValidator->getMessages()));
}
Viel Glück .. !!
Wäre es nicht besser, den Image-Service (einfacher injizieren von Mock zum Testen usw.) in den Controller zu injizieren, anstatt den Service Locator darin zu verwenden? –
In der Tat. Dies war sicherlich die schnelle und schmutzige Version davon. Ich bin ein starker Erhalter des starken IOC (siehe http://ocramius.github.com/blog/zf2-and-symfony-service-proxies-with-doctrine-proxies/) – Ocramius
@Ocramius Sehr nützliche Antwort. Danke, überprüfe die Implementierung. – Prashant