Michał Sosnowski grafik/webmaster
Temat: PHPImageWorkshop
Czy ktoś korzystał z tego skryptu??[url="http://phpimageworkshop.com/"]http://phpimageworkshop.com/[/url]
Próbuje go okiełznać, ale co chwila napotykam problemy.. klasa jest ładowana korzystając z autoload i prosta manipulacja obrazkiem wygląda tak :
use PHPImageWorkshop\ImageWorkshop;
$image = ImageWorkshop :: initFromPath('butterfly.png');
$image -> resizeInPixel(250, null, true);
$image -> save('news/', 'new.png', true, null, 8);
deklaracja metody initFromPath wygląda tak :
public static function initFromPath($path)
a wyjątki są zrzucane w ten sposób :
throw new ImageWorkshopException('Not an image file (jpeg/png/gif) at "'.$path.'"', static::ERROR_NOT_AN_IMAGE_FILE);
No i z tymi błędami mam problem :
Otóż podanie nieistniejącego pliku graficzne skutkuje wywaleniem błędu : Fatal error: Uncaught PHPImageWorkshop\Exception\ImageWorkshopBaseException: [2]: No such file found at "butterflysdf.png" thrown in i przerwaniem ładowania skryptu.. Ja jednakowoż nie chciałbym, aby skrypt się zatrzymywał i chciałbym ten błąd wyświetlić w widoku w przyjaźniejszej formie.. Więc próbuje w try i catch gdzie przy catch robię :
catch(ImageWorkshopException $e) {
$this -> error = 'Błąd : '.$e -> getMessage();
}
ale tu okazuje się, że nie mogę użyć $this bo metoda jest static. Próbuje usunąć static z deklaracji, try i catch działa ale wtedy nie mogę użyć czegoś takiego :
$image = ImageWorkshop :: initFromPath('butterfly.png');
no to robie zwyczajny obiekt :
$image = new ImageWorkshop;
ale to przestaje mi widzieć inne klasy PHPImageWorkshop
W jaki sposób najmniej inwazyjny przechwycić błędy i wyświetlić w widoku bez przerywania skryptu??