Друзья, такой вопрос. Есть класс, позволяющий менять размер изображений (class.upload.php) добавлять фильтры и т.п.
Возникла потребность менять изображений разных размеров похожим образом.
Решение, которое реализовал, нахожу идиотским, потому что код повторяется причем тут же:
$foo = new Upload($forResize);
$boo = new Upload($forResize);
$foo->file_new_name_body = $imagename;
$foo->image_resize = true;
if($_POST['bg'] == 1)
{
$foo->image_ratio = true;
$foo->image_ratio_fill = true;
$foo->image_background_color= '#FFFFFF';
$boo->image_ratio = true;
$boo->image_ratio_fill = true;
$boo->image_background_color= '#FFFFFF';
}
else
{
if($_POST['crop'] == "l" or $_POST['crop'] == "L" or $_POST['crop'] == "л" or $_POST['crop'] == "Л")
{
$foo->image_ratio_crop = 'L';
$boo->image_ratio_crop = 'L';
}
elseif($_POST['crop'] == "r" or $_POST['crop'] == "R" or $_POST['crop'] == "п" or $_POST['crop'] == "П")
{
$foo->image_ratio_crop = 'R';
$boo->image_ratio_crop = 'R';
}
else
{
$foo->image_ratio_crop = true;
$boo->image_ratio_crop = true;
}
}
$foo->image_y = 270;
$foo->image_x = 270;
$foo->Process($uploaddir."middle/");
$foo->processed;
$boo->file_new_name_body = $imagename;
$boo->image_resize = true;
$boo->image_y = 78;
$boo->image_x = 78;
$boo->Process($uploaddir."small/");
$boo->processed;
Думал сделать что-то типа:
$foo = new Upload($forResize);
$foo->file_new_name_body = $imagename;
$foo->image_resize = true;
if($_POST['bg'] == 1)
{
$foo->image_ratio = true;
$foo->image_ratio_fill = true;
$foo->image_background_color= '#FFFFFF';
}
else
{
if($_POST['crop'] == "l" or $_POST['crop'] == "L" or $_POST['crop'] == "л" or $_POST['crop'] == "Л")
{
$foo->image_ratio_crop = 'L';
}
elseif($_POST['crop'] == "r" or $_POST['crop'] == "R" or $_POST['crop'] == "п" or $_POST['crop'] == "П")
{
$foo->image_ratio_crop = 'R';
}
else
{
$foo->image_ratio_crop = true;
}
}
$foo->image_y = 270;
$foo->image_x = 270;
$foo->Process($uploaddir."middle/");
$foo->processed;
$boo = clone $foo;
$boo->image_y = 78;
$boo->image_x = 78;
$boo->Process($uploaddir."small/");
$boo->processed;
Но этот вариант не работает должным образом, переданные свойства объекту выше клонирования - у клона не обнаруживаются.
Как клонировать объект с переданными свойствами в PHP?