A
A
Alexander Evgenievich2015-02-09 14:49:50
symfony
Alexander Evgenievich, 2015-02-09 14:49:50

How to properly organize the interaction of file handlers?

Hello.
There is a following task. There is a file. When passing parameters along with the path to the file, these parameters will be processed and, based on them, various handlers will be applied to the file located at the specified path.
For example:
We have an image, in the parameters we pass:

$args = array(
'crop' => array('size' => '230x430', 'scale' => true),
'blur' => array('radius' => '10'),
'archive' => array('format' => 'zip')
);

Т.е. картинка будет масштабирована и обрезана, размыта и заархивирована. В промежутках между применением обработчиков нужно результат сохранять в файл, отличный от оригинала, следственно, сохранять его я думаю в TEMP файл, во временную директорию php. После чего каждому обработчику будет передан путь к temp файлу, с которым они будут работать. В конце обработки файл будет перемещен в необходимую, для публичного доступа, дирректорию.
Так вот, правильно ли я мыслю ? Не будет ли проблем с копированием файлов во временную диррекотрию PHP в плане ресурсоемкости. Так же нет ли каких подводных камней при работе с temp файлами php ?
----------
The important part is to organize the processing of the file between different libraries, for example Imagick, GD, phpPDF and phpExcell - this is just an example, even if phpExcell cannot process the image - it will return an Exception at its level, I just don't see any other way or way other than how to save to a temporary file and pass the next path to the input.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Sergey, 2015-02-09
@banderos120

I understand correctly that you will access the file system for every sneeze? It will be much faster in the worker to do all the operations once in memory.
And yes, what's the point of archiving an image in zip? Unless of course it's BMP.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question