Php 5.5

Ferenc Kovács
Ferenc Kovácsdeveloper at ustream.tv
A PHP 5.5 újdonságai



Kovács Ferenc
http://tyrael.hu/
http://twitter.com/Tyr43l
tyrael@php.net
Developer @ http://ustream.tv/


                                 17/1
Roadmap

●   5.3.0 – 2009.06.30
●   5.4.0 – 2012.03.01
●   5.5.0 - ???




                               17/2
Roadmap

●   https://wiki.php.net/rfc/releaseprocess
    –   Évenkénti kiadások (minor vagy major verzió)
    –   3 év támogatás a megjelenéstől számítva
        ●   2 évig hiba és biztonsági javítások
        ●   +1 évig biztonsági javítások
●   https://wiki.php.net/rfc/php53eol
    –    Az 5.5 megjelenését követően az 5.3-höz már csak a
        biztonsági javítások jönnek 1 évig.

                                                              17/3
Roadmap

●   Az eredeti roadmap: https://wiki.php.net/todo/php55
●   Eredetileg január 31 lett volna a beta1 (Feature
    Freeze).
●   Gyakorlatilag március 31 lett belőle.
●   A csúszás egyik legnagyobb oka a Zend Opcache.
●   Várhatóan Q1 helyett Q2 lesz a végleges kiadás
    időpontja a szükséges beta/RC-k számától függően.
●   Ez azt jelentené, hogy az 5.3 EOL lesz 2014 Q2-re.
                                                          17/4
Finally




          17/5
Generators




             17/6
Generators

●   1-1 sor lekérdezése belekerülhetne a ciklusba, de az csúnya,
    nem érdekel minket honnan, vagy hogyan jön az adat, mi fel
    akarjuk dolgozni.
●   getFilesFromFile() visszatérhetne egy hatalmas tömbbel, de
    az pazarlás.
●   getFilesFromFile() visszatérhetne egy iterátorral ami már jó,
    de elég sok boilerplate kell hozzá, plusz szembemegy a PHP
    multiparadigmás elveivel.
●   A yield felfüggeszti a függvény futását, visszatér a megadott
    értékkel, majd a következő hívás a yieldtől fut tovább.

                                                                    17/7
Opcache

●   A Zend az Optimizer+ nevű fizetős opcode cache-ét
    tette nyílt forrásúvá, és (alapból kikapcsoltan) be fog
    kerülni az 5.5-be core ext-ként.
●   Az APC fejlesztése valószínűleg le fog lassulni, meg
    fog állni.
●   Folyamatban van egy kicsontozott APC fejlesztése,
    ami csak változók tárolására használható az APC-vel
    azonos API-n keresztül:
    https://github.com/krakjoe/apcu
                                                              17/8
Opcache
●   A core fejlesztők között van több jelenlegi/ex Zend alkalmazott, aki ismeri a
    kódbázist, a kódnyitás után elég sokan kezdék el nézegetni, talán több aktív
    fejlesztője lesz, mint az APCnek.
●   Mivel a core része, ezért jó esetben nem jöhet ki úgy új release, hogy nincs
    hozzá/törött az opcode cache támogatás.
●   Évek óta használatban lévő eszköz, szóval a józan ész azt diktálná, hogy
    viszonylag kevés triviális hibát tartalmaz.
●   Sajnos a Zend stackben nem használnak Thread Safe SAPI-t, szóval TS
    környezetben akad még vele munka, de elméletileg dolgoznak az ügyön.




                                                                                    17/9
List() támogatása a foreach 
          fejlécben




                               17/10
Egyszerűsített jelszó hash API
●   array password_get_info ( string $hash )
    –   Visszaad egy tömböt: algo, algoName és options elemekkel.
●   string password_hash ( string $password , integer $algo [, array $options ] )
●   boolean password_needs_rehash ( string $hash , string $algo [, string $options ] )
●   boolean password_verify ( string $password , string $hash )
●   $options egyelőre csak a salt-ot és a cost-ot tartalmazhatja.
●   algo egyelőre PASSWORD_BCRYPT vagy PASSWORD_DEFAULT támogatott, azt
    utóbbi minor/major verzióban változhat.




                                                                                         17/11
Újdonságok
●   ext/intl::UConverter, rengeteg további intl/ICU okosítás, cserébe
    ICU követelmény felkúszott >= 4.0-ra.
●   Egy tucat új curl függvény, egy rakás új CURLOPT, köztük a
    CURLOPT_SAFE_UPLOAD, ami biztonságosabb fájl küldést tesz
    lehetővé ('@/path/to/file' helyett new CurlFile('/path/to/file',
    'image/png'); ).
●
    Systemtap támogatás, az 5.3-ban hozzáadott dtrace probe-ok
    mostantól systemtap-en keresztül is elérhetőek.
●   DateTimeImmutable, a DateTime-ból származtatott osztály,
    modify() nem módosítja a példányt, új értékkel tér vissza. Sérti az
    LSP-t, nem biztos, hogy megéri a végleges verziót.

                                                                          17/12
Újdonságok
●   boolval() - no comment
●   set_error_handler/set_exception_handler NULL callbackkel hívva visszaállítja a
    gyári handlert és visszatér az utoljára beállítottal.
●   Abszolút osztálynév feloldás a class konstans használatával:
    echo ClassName::class; // 'ANamespacedClassName'
●   Már kifejezések üressége is vizsgálható az empty()-vel.
●   hash_pbkdf2() hash függvény pbkdf2 alapokon, kötelezően meg kell adni a
    használni kívánt hash algot, egy salt-ot és egy iterációszámot.
●   FILTER_VALIDATE_MAC, FILTER_SANITIZE_MAC
●   ext/sockets kapott két új függvényt: sendmsg és recvmsg néven, kiegészítő
    adatokat lehet vele küldeni, fogadni(IPV6_PKTINFO, IPV6_HOPLIMIT,
    IPV6_TCLASS, SCM_RIGHTS, SCM_CREDENTIALS/SO_PASSCRED).

                                                                                     17/13
Újdonságok
●   Lesz mysqli_begin_transaction(), mysqli_savepoint(),
    mysqli_release_savepoint().
●   Új php.ini beállítás: sys_temp_dir
●   Működni fog a 'foo'[2] és az array('bar'=>'baz)['bar'] is(ez 5.4 óta
    változókkal/kifejezésekkel már működött).
●   array_column(): más nyelvekben még pluck néven is fut,
    többdimenziós tömbből lehet vele visszakérni minden sorból egy
    megadott oszlophoz tartozó értékek listáját.
●   cli_get_process_title/cli_set_process_title: cli processzhez tartozó cím
    (ami ps kimenetben, ablakfejlécben, etc. látszik) lekérdezhető és
    beállítható lesz minden nagyobb platformon.

                                                                               17/14
Régiségek (E_DEPRECATED)

●   /e kapcsoló ellenjavalttá válik a preg_replace()
    hívásban.
●   ext/mysql ellenjavalttá vált.
●   mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and
    mcrypt_ofb() ellenjavalttá
    vált(mcrypt_generic/mdecrypt_generic helyette).
●   Ellenjavalt lesz az objektumból másik osztály statikus
    metódusának a hívásakor a $this „öröklése”. Bár még
    nem lett bemergelve, de meg lett szavazva.
                                                             17/15
Visszafelé nem kompatibilis változások

●   Bugfix: unpack("a5", "str00") 5.5 előtt 3 hosszú
    stringet adott vissza, 5.5től a helyes 5 hosszú NUL
    paddolt stringet, a 'Z' kapcsolóval elérhető a régi
    hibás viselkedés továbbra is.
●   php_logo_guid(), php_egg_logo_guid(),
    php_real_logo_guid(), zend_logo_guid() függvények
    eltávolításra kerültek, helyettük data url-ek
    használata javasolt.


                                                          17/16
Viszlát, és kösz a halakat!




                              17/17
1 of 17

Recommended

A PHP 5.5 újdonságai. by
A PHP 5.5 újdonságai.A PHP 5.5 újdonságai.
A PHP 5.5 újdonságai.Ferenc Kovács
1.8K views27 slides
A PHP 5.4 újdonságai by
A PHP 5.4 újdonságaiA PHP 5.4 újdonságai
A PHP 5.4 újdonságaiFerenc Kovács
2K views45 slides
Iptables gyorstalpaló by
Iptables gyorstalpalóIptables gyorstalpaló
Iptables gyorstalpalóBenedek Rakovics
278 views2 slides
Javascript Closures by
Javascript ClosuresJavascript Closures
Javascript ClosuresDávid Schneidhoffer
364 views6 slides
A forditonak mindenhez lehet köze by
A forditonak mindenhez lehet közeA forditonak mindenhez lehet köze
A forditonak mindenhez lehet közeKálmán "KAMI" Szalai
417 views53 slides
Monitorama by
MonitoramaMonitorama
MonitoramaFerenc Kovács
756 views19 slides

More Related Content

Similar to Php 5.5

Syslog-NG (nem csak) fejlesztőknek by
Syslog-NG (nem csak) fejlesztőknekSyslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknekJános Pásztor
733 views40 slides
Drupal gyorstárazási stratégiák by
Drupal gyorstárazási stratégiákDrupal gyorstárazási stratégiák
Drupal gyorstárazási stratégiákJános Fehér
491 views20 slides
Webműves Kelemen tanácsai, avagy mi kell a PHP falába? by
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?Webműves Kelemen tanácsai, avagy mi kell a PHP falába?
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?Open Academy
831 views47 slides
Drupal security by
Drupal securityDrupal security
Drupal securityTamás Demeter-Haludka
422 views48 slides
A Redis lehetőségei by
A Redis lehetőségeiA Redis lehetőségei
A Redis lehetőségeivvinston
590 views40 slides
Linux alapok by
Linux alapokLinux alapok
Linux alapokJános Pásztor
787 views45 slides

Similar to Php 5.5(18)

Syslog-NG (nem csak) fejlesztőknek by János Pásztor
Syslog-NG (nem csak) fejlesztőknekSyslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknek
János Pásztor733 views
Drupal gyorstárazási stratégiák by János Fehér
Drupal gyorstárazási stratégiákDrupal gyorstárazási stratégiák
Drupal gyorstárazási stratégiák
János Fehér491 views
Webműves Kelemen tanácsai, avagy mi kell a PHP falába? by Open Academy
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?Webműves Kelemen tanácsai, avagy mi kell a PHP falába?
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?
Open Academy831 views
A Redis lehetőségei by vvinston
A Redis lehetőségeiA Redis lehetőségei
A Redis lehetőségei
vvinston590 views
Flash és PHP Kommunikáció by tlof
Flash és PHP KommunikációFlash és PHP Kommunikáció
Flash és PHP Kommunikáció
tlof1.2K views
1 java megismerese by balazs85
1 java megismerese1 java megismerese
1 java megismerese
balazs85376 views
20111130 oa gtest by czras
20111130 oa gtest20111130 oa gtest
20111130 oa gtest
czras553 views
Led matrix-dokumentáció by Tamás Mayer
Led matrix-dokumentációLed matrix-dokumentáció
Led matrix-dokumentáció
Tamás Mayer109 views
Ci by nagno
CiCi
Ci
nagno864 views
Cgi röviden ajmar by bonami2014
Cgi röviden ajmarCgi röviden ajmar
Cgi röviden ajmar
bonami2014445 views

Php 5.5

  • 2. Roadmap ● 5.3.0 – 2009.06.30 ● 5.4.0 – 2012.03.01 ● 5.5.0 - ??? 17/2
  • 3. Roadmap ● https://wiki.php.net/rfc/releaseprocess – Évenkénti kiadások (minor vagy major verzió) – 3 év támogatás a megjelenéstől számítva ● 2 évig hiba és biztonsági javítások ● +1 évig biztonsági javítások ● https://wiki.php.net/rfc/php53eol – Az 5.5 megjelenését követően az 5.3-höz már csak a biztonsági javítások jönnek 1 évig. 17/3
  • 4. Roadmap ● Az eredeti roadmap: https://wiki.php.net/todo/php55 ● Eredetileg január 31 lett volna a beta1 (Feature Freeze). ● Gyakorlatilag március 31 lett belőle. ● A csúszás egyik legnagyobb oka a Zend Opcache. ● Várhatóan Q1 helyett Q2 lesz a végleges kiadás időpontja a szükséges beta/RC-k számától függően. ● Ez azt jelentené, hogy az 5.3 EOL lesz 2014 Q2-re. 17/4
  • 5. Finally 17/5
  • 6. Generators 17/6
  • 7. Generators ● 1-1 sor lekérdezése belekerülhetne a ciklusba, de az csúnya, nem érdekel minket honnan, vagy hogyan jön az adat, mi fel akarjuk dolgozni. ● getFilesFromFile() visszatérhetne egy hatalmas tömbbel, de az pazarlás. ● getFilesFromFile() visszatérhetne egy iterátorral ami már jó, de elég sok boilerplate kell hozzá, plusz szembemegy a PHP multiparadigmás elveivel. ● A yield felfüggeszti a függvény futását, visszatér a megadott értékkel, majd a következő hívás a yieldtől fut tovább. 17/7
  • 8. Opcache ● A Zend az Optimizer+ nevű fizetős opcode cache-ét tette nyílt forrásúvá, és (alapból kikapcsoltan) be fog kerülni az 5.5-be core ext-ként. ● Az APC fejlesztése valószínűleg le fog lassulni, meg fog állni. ● Folyamatban van egy kicsontozott APC fejlesztése, ami csak változók tárolására használható az APC-vel azonos API-n keresztül: https://github.com/krakjoe/apcu 17/8
  • 9. Opcache ● A core fejlesztők között van több jelenlegi/ex Zend alkalmazott, aki ismeri a kódbázist, a kódnyitás után elég sokan kezdék el nézegetni, talán több aktív fejlesztője lesz, mint az APCnek. ● Mivel a core része, ezért jó esetben nem jöhet ki úgy új release, hogy nincs hozzá/törött az opcode cache támogatás. ● Évek óta használatban lévő eszköz, szóval a józan ész azt diktálná, hogy viszonylag kevés triviális hibát tartalmaz. ● Sajnos a Zend stackben nem használnak Thread Safe SAPI-t, szóval TS környezetben akad még vele munka, de elméletileg dolgoznak az ügyön. 17/9
  • 11. Egyszerűsített jelszó hash API ● array password_get_info ( string $hash ) – Visszaad egy tömböt: algo, algoName és options elemekkel. ● string password_hash ( string $password , integer $algo [, array $options ] ) ● boolean password_needs_rehash ( string $hash , string $algo [, string $options ] ) ● boolean password_verify ( string $password , string $hash ) ● $options egyelőre csak a salt-ot és a cost-ot tartalmazhatja. ● algo egyelőre PASSWORD_BCRYPT vagy PASSWORD_DEFAULT támogatott, azt utóbbi minor/major verzióban változhat. 17/11
  • 12. Újdonságok ● ext/intl::UConverter, rengeteg további intl/ICU okosítás, cserébe ICU követelmény felkúszott >= 4.0-ra. ● Egy tucat új curl függvény, egy rakás új CURLOPT, köztük a CURLOPT_SAFE_UPLOAD, ami biztonságosabb fájl küldést tesz lehetővé ('@/path/to/file' helyett new CurlFile('/path/to/file', 'image/png'); ). ● Systemtap támogatás, az 5.3-ban hozzáadott dtrace probe-ok mostantól systemtap-en keresztül is elérhetőek. ● DateTimeImmutable, a DateTime-ból származtatott osztály, modify() nem módosítja a példányt, új értékkel tér vissza. Sérti az LSP-t, nem biztos, hogy megéri a végleges verziót. 17/12
  • 13. Újdonságok ● boolval() - no comment ● set_error_handler/set_exception_handler NULL callbackkel hívva visszaállítja a gyári handlert és visszatér az utoljára beállítottal. ● Abszolút osztálynév feloldás a class konstans használatával: echo ClassName::class; // 'ANamespacedClassName' ● Már kifejezések üressége is vizsgálható az empty()-vel. ● hash_pbkdf2() hash függvény pbkdf2 alapokon, kötelezően meg kell adni a használni kívánt hash algot, egy salt-ot és egy iterációszámot. ● FILTER_VALIDATE_MAC, FILTER_SANITIZE_MAC ● ext/sockets kapott két új függvényt: sendmsg és recvmsg néven, kiegészítő adatokat lehet vele küldeni, fogadni(IPV6_PKTINFO, IPV6_HOPLIMIT, IPV6_TCLASS, SCM_RIGHTS, SCM_CREDENTIALS/SO_PASSCRED). 17/13
  • 14. Újdonságok ● Lesz mysqli_begin_transaction(), mysqli_savepoint(), mysqli_release_savepoint(). ● Új php.ini beállítás: sys_temp_dir ● Működni fog a 'foo'[2] és az array('bar'=>'baz)['bar'] is(ez 5.4 óta változókkal/kifejezésekkel már működött). ● array_column(): más nyelvekben még pluck néven is fut, többdimenziós tömbből lehet vele visszakérni minden sorból egy megadott oszlophoz tartozó értékek listáját. ● cli_get_process_title/cli_set_process_title: cli processzhez tartozó cím (ami ps kimenetben, ablakfejlécben, etc. látszik) lekérdezhető és beállítható lesz minden nagyobb platformon. 17/14
  • 15. Régiségek (E_DEPRECATED) ● /e kapcsoló ellenjavalttá válik a preg_replace() hívásban. ● ext/mysql ellenjavalttá vált. ● mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() ellenjavalttá vált(mcrypt_generic/mdecrypt_generic helyette). ● Ellenjavalt lesz az objektumból másik osztály statikus metódusának a hívásakor a $this „öröklése”. Bár még nem lett bemergelve, de meg lett szavazva. 17/15
  • 16. Visszafelé nem kompatibilis változások ● Bugfix: unpack("a5", "str00") 5.5 előtt 3 hosszú stringet adott vissza, 5.5től a helyes 5 hosszú NUL paddolt stringet, a 'Z' kapcsolóval elérhető a régi hibás viselkedés továbbra is. ● php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), zend_logo_guid() függvények eltávolításra kerültek, helyettük data url-ek használata javasolt. 17/16