PHP 5.3

  • 1,106 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,106
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
32
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. What’s New In PHP 5.3? PHP UK February 2009 Scott MacVicar Friday, 27 February 2009
  • 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. 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. Namespace Usage Can Contain: classes functions constants with the same name Defined by statement namespace <x>; Friday, 27 February 2009
  • 5. as separator Friday, 27 February 2009
  • 6. You used ?!? WTF? Symbol Use Symbol Use % Modulus + Plus ^ Xor - Minus * Multi / Division ~ Not ??? | Or : Else & And ` Exec Friday, 27 February 2009
  • 7. Namespaces example Friday, 27 February 2009
  • 8. Namespaces example Friday, 27 February 2009
  • 9. Namespaces example Friday, 27 February 2009
  • 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. Namespace Oddities Friday, 27 February 2009
  • 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. LSB Example 1 Friday, 27 February 2009
  • 14. LSB Example 2 Friday, 27 February 2009
  • 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. Example - 1 Friday, 27 February 2009
  • 17. Example - 2 Friday, 27 February 2009
  • 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. Cyclic Reference Friday, 27 February 2009
  • 20. Garbage Collector Usage Friday, 27 February 2009
  • 21. Dynamic Static Calls Friday, 27 February 2009
  • 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. INI Example Friday, 27 February 2009
  • 24. __callStatic __callStatic($name, $arguments) Identical to __call but for static methods Friday, 27 February 2009
  • 25. __callStatic example Friday, 27 February 2009
  • 26. Limited goto goto is a bad idea™ PHP provides goto <label> Can only jump out of a structure Friday, 27 February 2009
  • 27. goto example Friday, 27 February 2009
  • 28. ?: Operator Friday, 27 February 2009
  • 29. SPL Improvements DualIterator SplStack RecursiveTreeItera SplQueue tor SplHeap SplArrayReference SplFixedArray DirectoryIterator implements ArrayAccess Friday, 27 February 2009
  • 30. NOWDOC Like heredoc but without evaluation Friday, 27 February 2009
  • 31. enchant Speel Cheking Wraps around existing libraries Supports platform dictionaries HunSpell (Firefox, OpenOffice) AppleSpell (OS X default) Friday, 27 February 2009
  • 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. intl Wrapper around IBM’s ICU library Provides collation, normalization, datetime and number / currency formatting IDN Support Friday, 27 February 2009
  • 34. MySQLnd Developed by MySQL Replaces libmysql and is bundled Faster and uses less memory Statistics Friday, 27 February 2009
  • 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. Phar Example Friday, 27 February 2009
  • 37. Using Phar Make a stub file Build archive Rejoice Friday, 27 February 2009
  • 38. SQLite3 OO API Replaces old SQLite class Bundles full text search SQLite 3.6.11 Friday, 27 February 2009
  • 39. Extensions removed dbase sybase fbsql fdf ncurses ming pspell Friday, 27 February 2009
  • 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. 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. Improved Performance Improved engine stack implementation Removed direct executor recursion Use fastcall calling convention on x86 Various opcode optimisations Friday, 27 February 2009
  • 43. Miscellaneous Over 180 bug fixes PCRE upgrade SQLite upgrade Stream improvements OpenSSL improvements Make JSON suck less Friday, 27 February 2009
  • 44. Beers for Bugs Friday, 27 February 2009
  • 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