A PHP 5.4 újdonságai
-
Upload
ferenc-kovacs -
Category
Technology
-
view
3.555 -
download
0
Transcript of A PHP 5.4 újdonságai
- 1. A PHP 5.4 jdonsgai
2. Bemutatkozs
- Kovcs Ferenc 3. Elssorban webfejleszt 4. +zemeltets, IT biztonsg, Minsgbiztosts 5. Trsszerkeszt a Weblaboron 6. Kzremkd a PHP projectben 7. __NEM__ evangelista :) 8. A Tyrael nick esetleg ismersebb lehet.
9. Bevezets 10. Trtnelmi visszatekints
- 4.0 2000.05.22 (Zend Engine) 11. 5.0 2004.07.13 (Zend Engine 2) 12. 5.1 2005.11.24 13. 5.2 2006.11.02 14. 6.0 ??? 15. 5.3 2009.06.30 16. 5.4 ~2011.Q4/2012.Q1
17. Roadmap
- Az nincs
18. WTF?
- Van az 5.4 kiads 2 RM-je (Release Manager):
- Stas Malyshev 19. David Soria Parra
- Van egy Release Process RFC:
- https://wiki.php.net/rfc/releaseprocess
- Illetve egy Voting RFC:
- https://wiki.php.net/rfc/voting
- Elmletileg a mindkt RFC el lett fogadva...
20. RM
- Koordinlja egy adott kiads krli teendket:
- Kezdemnyezi, illetve moderlja az fejlesztsek krli megbeszlseket, illetve a szavazst. 21. Kijelli a kiadsi folyamat egyes lpseinek cljait s hatridejt. 22. Tageli s csomagolja a kiadsra jellt vltozatot. 23. Gondoskodik rla, hogy a releaseprocess RFC-ben foglaltak betartsra kerlnek.
- Az RM-ek jvhagysa nlkl nem kerlhet az adott gban j verzi kiadsra.
24. Hogyan alakul ki egy j verzi?
- Ami az elz verziba valamirt nem frt bele. 25. Minden ami a trunkbl temelhet. 26. Hibajavtsok (minden rintett branchre). 27. Ad hoc fejlesztsek, elmletileg minden nem trivilis fejlesztshez kellene hogy legyen RFC illetve szavazs. 28. A BC(visszafele kompatibilits) illetve a nem megfelel stabilits a leggyakoribb oka annak ha valami vgl mgis kimarad.
29. BC
- Internal
- API 30. ABI
- Userland
- API
- Extensions
31. BC
- Major(4.0, 5.0, etc)
- Brmilyen BC break engedlyezett.
- Minor(5.1, 5.2, 5.3)
- Internal API/ABI megvltozhat. 32. Userland API nem, vagy nagyon indokolt esetben. 33. Kiegsztk tkltztethetek core-bl pecl-be.
- Micro(5.3.6, 5.3.7)
- Semmilyen BC break nem engedlyezett. 34. j, nll feature is csak indokolt esetben.
35. Mirt nincs ez mindig gy?
- A releaseprocess RFC mg nincs 1 ves. 36. Nagyon sok BC break nem szndkosan trtnik s nha tl ksn derl ki: gy marad. 37. Nha ugyan nyilvnval a vltozs, de mindenki gy gondolja, hogy senkit nem fog rinteni. 38. Nha egyszeren nincs ms megolds, mert fontos egy adott javts (biztonsgi rs, etc.).
39. Hogyan lehet ezen segteni?
- Nvelni kell a teszt esetek coverage-t, illetve komolyan kell venni, ha egy teszteset elkezd elhasalni. (Ez utbbi el volt hanyagolva.) 40. Be kell vonni tbb rsztvevt, alkalmazst az RC verzik tesztelsbe, hogy mg a stable eltt legyen lehetsg kiszrni s javtani a hibkat. 41. Be kell tartani az RFC-t...
42. jdonsgok 43. Closure rebind
- 5.3-ban megllapods hinyban nem lett megvalstva az objektumok
tmogatsa a nvtelen fggvnyekhez:
- https://wiki.php.net/rfc/closures/removal-of-this
- 5.4-ben immr erre is lehetsgnk lesz.
44. Closure rebind
- Mostantl a Closure-khz tartozhat egy scope:
- A Closure gy ri el a bound objektumot mintha a Closure a scope-ban megadott osztlyban lenne egy metdus. (visibility miatt fontos pl.)
- Mostantl a Closure-khz tartozhat egy hozzrendelt(bound)
objektum.
- Ez lesz a $this az adott Closure szmra.
- Mostantl a Closure-k definilhatak static-knt.
- Ebben az esetben nem rhet el a $this.
45. Closure rebind
- Scope:
- Ha egy osztlyon bell lett a Closure definilva, akkor az adott osztly lesz a scope automatikusan. 46. Ha rebindoljuk a Closure::bind() vagy $closure->bindTo() fggvnyhivsokkal, akkor az ott megadott objektum scopejt kapja. 47. Closure::bind() 3. paramtern keresztl megadhat a boundtl eltr scope. 48. Statikusan definilt Closure is rendelkezhet Scope-pal. 49. Fentiekbl kvetkezik, hogy nem mindig van Scope.
50. Closure rebind
- Bound:
- Ha egy osztlyon bell lett a Closure definilva, akkor az adott pldny lesz a bound objektum automatikusan. 51. A bound objektum vltoztathat a Closure::bind() vagy $closure->bindTo() metdusn keresztl. 52. Statikus Closure nem rendelkezhet Bound objektummal.
53. Closure rebind
- Static:
- Egy Closure akkor statikus, ha a static kulcsszval vagy ha egy statikus metduson bell definiltuk. 54. Statikusan definilt Closure is rendelkezhet Scope-pal. 55. Statikus Closure nem rendelkezhet Bound objektummal.
56. Closure rebind "value= "123"/>< inputtype= "file"name= "file1"/>< inputtype= "file"name= "file2"/>< inputtype= "submit"/> 93. session.upload.progress $_SESSION [ "upload_progress_123" ] =array ("start_time"=>1234567890 ,// The request time "content_length"=>57343257 ,// POST content length "bytes_processed"=>453489 ,// Amount of bytes received and processed "done"=> false,// true when the POST handler has finished, successfully or not "files"=>array (0=>array ("field_name"=>"file1" ,// Name of the field // The following 3 elements equals those in $_FILES "name"=>"foo.avi" ,"tmp_name"=>"/tmp/phpxxxxxx" ,"error"=>0 ,"done"=> true,// True when the POST handler has finished handling this file "start_time"=>1234567890 ,// When this file has started to be processed "bytes_processed"=>57343250 ,// Amount of bytes received and processed for this file ),); 94. mysql
- Mostantl a mysqlnd lesz az alaprtelmezett mysql library, de tovbbra is van lehetsg a libmysql-t hasznlni. 95. libmysqlbl mr csak 4.1es illetve magasabb verzi tmogatott, elkpzelhet hogy a vgleges verziban ez mg feljebb kszik. 96. Felmerlt, hogy a mysql extensiont dokumentci szinten ellenjavaltt kellene tenni, a mysqli kiegszts nagyon egyszer migrcit tesz lehetv, s folyamatosan fejleszts alatt ll, szemben a mysql extensionnel.
97. Rgisgek 98. Vgkpp eltrlve
- break/continue $var 99. magic_quotes_gpc (ha csak ellenrizted, hogy be van-e kapcsolva, az tovbbra is mkdik) 100. Safe mode 101. register_globals 102. register_long_arrays 103. import_request_variables() 104. allow_call_time_pass_reference. 105. define_syslog_variables 106. highlight.bg 107. session.bug_compat_42 108. session_is_registered()/session_register()/session_unregister() 109. y2k_compliance 110. Sqlite szmzve Szibriba(pecl), ajnlott az SQLite3 kiegsztre tllni
111. s mg sok egyb 112. Nhny egyb
- E_STRICT mostantl az E_ALL rsze 113.