PHP 5.3

1,476 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,476
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PHP 5.3

  1. 1. What’s New In PHP 5.3? PHP UK February 2009 Scott MacVicar Friday, 27 February 2009
  2. 2. Feature Release All PHP 5 code should still works Backports everything except Unicode from 6 Bug fixes from PHP 5.2 Friday, 27 February 2009
  3. 3. Namespaces Mostly done at compile time Saves extra long prefixes (Yay framework developers) Zend_Search_Lucene_Analysis_Analyzer_ Reduces class name conflicts Multiple namespaces per file Friday, 27 February 2009
  4. 4. Namespace Usage Can Contain: classes functions constants with the same name Defined by statement namespace <x>; Friday, 27 February 2009
  5. 5. as separator Friday, 27 February 2009
  6. 6. You used ?!? WTF? Symbol Use Symbol Use % Modulus + Plus ^ Xor - Minus * Multi / Division ~ Not ??? | Or : Else & And ` Exec Friday, 27 February 2009
  7. 7. Namespaces example Friday, 27 February 2009
  8. 8. Namespaces example Friday, 27 February 2009
  9. 9. Namespaces example Friday, 27 February 2009
  10. 10. Other Namespace Things __NAMESPACE__ global scope __autoload(), get_class() and get_parent_class() now return a full qualified classname Resolves internally then externally Friday, 27 February 2009
  11. 11. Namespace Oddities Friday, 27 February 2009
  12. 12. Late Static Binding Static references use to be resolved at compile time Static constants would correspond to where they were defined static:: is now resolved at runtime Friday, 27 February 2009
  13. 13. LSB Example 1 Friday, 27 February 2009
  14. 14. LSB Example 2 Friday, 27 February 2009
  15. 15. Lambda Functions and Closures Functions on the fly Ideal for things that require a callback create_function() is runtime based __invoke method for Classes Friday, 27 February 2009
  16. 16. Example - 1 Friday, 27 February 2009
  17. 17. Example - 2 Friday, 27 February 2009
  18. 18. Garbage Collector GSoC 2007 Project Looks for cyclic references Increases overall memory usage slightly Good for long running scripts Friday, 27 February 2009
  19. 19. Cyclic Reference Friday, 27 February 2009
  20. 20. Garbage Collector Usage Friday, 27 February 2009
  21. 21. Dynamic Static Calls Friday, 27 February 2009
  22. 22. Improved ini handling Change PHP settings similarly to .htaccess when using FCGI Per-directory ini settings INI constants / variables Friday, 27 February 2009
  23. 23. INI Example Friday, 27 February 2009
  24. 24. __callStatic __callStatic($name, $arguments) Identical to __call but for static methods Friday, 27 February 2009
  25. 25. __callStatic example Friday, 27 February 2009
  26. 26. Limited goto goto is a bad idea™ PHP provides goto <label> Can only jump out of a structure Friday, 27 February 2009
  27. 27. goto example Friday, 27 February 2009
  28. 28. ?: Operator Friday, 27 February 2009
  29. 29. SPL Improvements DualIterator SplStack RecursiveTreeItera SplQueue tor SplHeap SplArrayReference SplFixedArray DirectoryIterator implements ArrayAccess Friday, 27 February 2009
  30. 30. NOWDOC Like heredoc but without evaluation Friday, 27 February 2009
  31. 31. enchant Speel Cheking Wraps around existing libraries Supports platform dictionaries HunSpell (Firefox, OpenOffice) AppleSpell (OS X default) Friday, 27 February 2009
  32. 32. fileinfo Guess content type and encoding Looks for magic byte sequences Previously required external library Provides mime_content_type() support Friday, 27 February 2009
  33. 33. intl Wrapper around IBM’s ICU library Provides collation, normalization, datetime and number / currency formatting IDN Support Friday, 27 February 2009
  34. 34. MySQLnd Developed by MySQL Replaces libmysql and is bundled Faster and uses less memory Statistics Friday, 27 February 2009
  35. 35. phar Similar to Java’s JAR PHP 5.3 can open and read phars Can mount internal phar directories Phar::mount(“cache/”, “/tmp/cache”); Works with OPCode caches Friday, 27 February 2009
  36. 36. Phar Example Friday, 27 February 2009
  37. 37. Using Phar Make a stub file Build archive Rejoice Friday, 27 February 2009
  38. 38. SQLite3 OO API Replaces old SQLite class Bundles full text search SQLite 3.6.11 Friday, 27 February 2009
  39. 39. Extensions removed dbase sybase fbsql fdf ncurses ming pspell Friday, 27 February 2009
  40. 40. New Constants __DIR__ PHP_DEBUG PHP_MAJOR_VERSION PHP_MAXPATHLEN PHP_MINOR_VERSION PHP_RELEASE_VERSIO N PHP_VERSION_ID Friday, 27 February 2009
  41. 41. Improved Performance New scanner based on re2c md5() now faster require_once / include_once faster on second usage Improved memory usage due to constants being marked as read only Friday, 27 February 2009
  42. 42. Improved Performance Improved engine stack implementation Removed direct executor recursion Use fastcall calling convention on x86 Various opcode optimisations Friday, 27 February 2009
  43. 43. Miscellaneous Over 180 bug fixes PCRE upgrade SQLite upgrade Stream improvements OpenSSL improvements Make JSON suck less Friday, 27 February 2009
  44. 44. Beers for Bugs Friday, 27 February 2009
  45. 45. Questions? Go download and test! http://qa.php.net/ http://windows.php.net/ downloads.php Slides http://talks.macvicar.net Friday, 27 February 2009

×