@Normant

Как клонировать объект с переданными свойствами в PHP?

Друзья, такой вопрос. Есть класс, позволяющий менять размер изображений (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?
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы