Jeszcze jeden blog o programowaniu

Radosne twórczości leniwego programisty

Archive for the ‘PEAR’ Category

Błąd Strict standards: Non-static method System::mktemp() should not be called statically, assuming $this from incompatible context in C:\wamp\bin\php\php5.3.4\PEAR\Image\GraphViz.php on line 1005

4 Komentarze

Trafiłem ostatnio na artykuł opisujący wykorzystanie paczki Image_Graphviz z repozytorium PEAR do obsługi i generowania grafów w języku PHP. Instalacja przebiegła bez najmniejszych problemów:

pear install --alldeps Image_GraphViz

jednak już próba uruchomienia przykładu http://pear.php.net/manual/en/package.images.image-graphviz.example.php sprzyjała pojawianiu się błędu:

Strict standards: Non-static method System::mktemp() should not be called statically,
assuming $this from incompatible context in C:\wamp\bin\php\php5.3.4\PEAR\Image\GraphViz.php on line 1005

Niestety, mimo zgłoszenia błędu, autorzy uznali, że błędu nie poprawią, a sam błąd wynika z PHP w wersji 4.x, pod kątem której paczka Image_Graphviz była pisana. Rozwiązaniem idealnym byłoby przystosowanie kodu Image_Graphviz do pracy z PHP 5.X – mniej idealnym zastosowanie niewielkiego obejścia:
wyłączenia wyświetlania błędów w kodzie na samym początku kodu generującego obrazek z grafem – przykład więc powinien wyglądać jak poniżej:

<?php
error_reporting(E_ALL & ~E_STRICT); // EDIT: zmiany zalecone przez D3Xa 🙂
ini_set('display_errors', 0);
require_once 'Image/GraphViz.php';
$gv = new Image_GraphViz();
$gv->addEdge(array('wake up' => 'visit bathroom'));
$gv->addEdge(array('visit bathroom' => 'make coffee'));
$gv->image();
// EDIT: poniżej zmiany zalecane przez D3Xa
error_reporting(-1);
ini_set('display_errors', 1);

czego efektem będzie pożądany obrazek:


Warto także przyjrzeć się dokumentacji Image_Graphviz oraz sam projekt GraphViz.

Reklamy

Written by filipgorczynski

2012.02.29 at 21:25:40

%d blogerów lubi to: