Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Php 5.5

1,145 views

Published on

Published in: Technology
  • Be the first to comment

Php 5.5

  1. 1. A PHP 5.5 újdonságaiKovács Ferenchttp://tyrael.hu/http://twitter.com/Tyr43ltyrael@php.netDeveloper @ http://ustream.tv/ 17/1
  2. 2. Roadmap● 5.3.0 – 2009.06.30● 5.4.0 – 2012.03.01● 5.5.0 - ??? 17/2
  3. 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. 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. 5. Finally 17/5
  6. 6. Generators 17/6
  7. 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. 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. 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
  10. 10. List() támogatása a foreach  fejlécben 17/10
  11. 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. 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. 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. 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. 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. 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
  17. 17. Viszlát, és kösz a halakat! 17/17

×