Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!
Wyszukiwarka

Wyszukiwarka

Aby odnaleźć interesujące Cię informacje wpisz poniżej szukane frazy:
Logowanie

Logowanie

Zaloguj się aby zobaczyć swój profil:

Co nowego w php 5.3 - część 2

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.

Variable Static Calls

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.

Natywna obsługa MySQL.

Natywny sterownik wydany zostanie na tej samej licencji co PHP.

Dodatkowe funkcje OpenSSL

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.

Poprawiona obsługa parametrów dla linii poleceń

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.

Profile XSLT

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:

Nowe poziomy błędów (Error Levels)

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.

Inne poprawki

  • Obsługa Sqlite3 poprzez rozszerzenie ext/sqlite,
  • Wbudowany w SPL iterator katalogów, który implementuje ArrayAccess,
  • Nowe funkcje: array_replace oraz array_replace_recursive dla obsługi tablic.
Informacje na podobny temat:
Wasze opinie
Wszystkie opinie uzytkowników: (1)
Brak mi czegoś
Sobota 03 Maj 2008 12:17:27 am - likemandrake

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

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System