Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
A PHP 5.5 újdonságai.
A PHP 5.5 újdonságai.
Chargement dans…3
×

Consultez-les par la suite

1 sur 17 Publicité

Plus De Contenu Connexe

Publicité

Php 5.5

  1. 1. 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
  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

×