Dziś kolejna porcja nowości, jakie pojawią się już niebawem w PHP 5.3. Artykuł jest kontynuacją "Co nowego w php 5.3 część 1". Zapraszam do lektury.
Kolejne ulepszenia w wersji 5.3 dotyczą funkcjonalności obiektów. W PHP mamy możliwość odwołania do zmiennych i metod za pomocą wartości innych zmiennych. PHP 5.3 rozszerza tą funkcjonalność o możliwość odwołania się do metod statycznych. Jako przykład posłuży nam poniższy kod, który po wykonaniu da nam taki sam rezultat jak ostatni przykład w poprzedniej części artykułu (odwołanie do nieznanej metody, zamiast błędu, spowoduje wywołanie "__callstatic"):
<?php class Factory { static function GetDatabaseHandle() { echo '<p>Returns a database handle</p>'; } static function __callstatic( $methodname, $args ) { echo '<p>Unknown static method <strong>' . $methodname . '</strong>' . ' called with parameters:</p>'; echo '<pre>' . print_r( $args, true ) . '</pre>'; } } $sClassname = 'Factory'; $sMethodname = 'CreateUser'; $sClassname::$sMethodname(); $sMethodname = 'CreateBlogPost'; $sAuthor = 'Author'; $sPosttitle = 'Post Title'; $sPostbody = 'Post Body'; $sClassname::$sMethodname( $sAuthor, $sPosttitle, $sPostbody ); ?>
Dynamiczne przestrzenie nazw tworzy się w sposób następujący:
<?php require_once( 'lib/autoload.php' ); $sClass = 'MyCompany::Blog::User'; $User = new $sClass(); $User->set('fullname', 'Ben Balbo'); $User->save();
Powyższe poprawki, choć z pozoru mało znaczące, poprawią czytelność kodu i pozwolą na pełną elastyczność skryptów w sensie programowania obiektowego.
Natywny sterownik wydany zostanie na tej samej licencji co PHP.
W nowej wersji php rozbudowana zostanie biblioteka OpenSSL. Dzięki temu zadania takie jak szyfrowanie treści czy wykorzystanie protokołu Diffiego-Hellmana zostaną mocno uproszczone.
Linia poleceń PHP jest modułem działającym poza środowiskiem serwera webowego. Okazuje się bardzo przydatny dla wykonywania zautomatyzowanych operacji. Przy pisaniu skryptów problemy stwarzało polecenie "getopts", które nie działało na systemach Windows. W nowej wersji PHP działanie "getopts" jest niezależne od platformy systemowej.
XSLT jest potężnym narzędziem i większość użytkowników tego mechanizmu szablonów jest zaznajomiona z możliwościami profilowania "xsltproc". Już niebawem możliwe będzie profilowanie transformacji z poziomu skryptów PHP. Przykład zastosowania prezentuje poniższy kod:
$Doc = new DOMDocument(); $Xsl = new XSLTProcessor(); $Doc->load('./lib/collection.xsl'); $Xsl->importStyleSheet($doc); $Doc->load('./lib/collection.xml'); $Xsl->setProfiling("/tmp/xslt-profiling.txt"); echo $Xsl->transformToXML($doc); echo '<h2>Profile report</h2>'; echo '<pre>' . file_get_contents( '/tmp/xslt-profiling.txt' ) . '</pre>';
Dane wygenerowane przez profil wyglądać będą następująco:
We wcześniejszych wersjach PHP, opcja E_ALL nie powodowała raportowania wszystkich błędów - np. błędy z poziomu E_STRICT. Nowa wersja PHP uwzględni E_STRICT w grupie E_ALL, a ponadto pojawi się nowy poziom ostrzegający przed użyciem wycofywanych klas, funkcji itd. - E_DEPRECATED.
Witam.
Albo nie zauważyłem, albo brakuje mi w tym artykule tego: http://pl.php.net/manual/en/language.oop5.late-static-bindings.php
To dość ważna rzecz, więc jeśli nie ma, powinna się pojawić.
Pozdrawiam