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