Your SlideShare is downloading. ×
0
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Modern PHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Modern PHP

5,628

Published on

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

No Downloads
Views
Total Views
5,628
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
22
Comments
0
Likes
2
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. Modern . Refresh Cambridge, 2 Sept 2013 Simon R Jones, Studio 24 www.studio24.net
  • 2. So.. PHP • Has a bad rep, it’s cool to diss PHP • Massively successful language • Low barrier to entry • Bad practices
  • 3. PHP.. • Naming inconsistencies • register_globals • Unpredictable releases. 5.2 in 2006, 5.3 in 2009, PHP 6?.. • However... It’s a great language for getting things done
  • 4. php.net
  • 5. PHP internal dev process • Predictable yearly release cycle • Support old versions for 3 years • Development on GitHub - github.com/php/php-src • Public RFCs - wiki.php.net/rfc
  • 6. PHP 5.3 (pretty old now) • Released June 2009 • Namespaces • Closures / Anonymous functions • DateTime manipulation
  • 7. Namespaces // My/Class/Example.php namespace MyClass; // In the past was called My_Class_Example class Example { }
  • 8. Namespaces namespace MyClass; use ZendHttpClient; class Example { // MyClassFoo $fish = new Foo() $client = new Client(); $client->setUri('http://bbc.co.uk'); $response = $client->dispatch(); } http://php.net/language.namespaces
  • 9. Anonymous functions // PHP 5.4 array syntax $items = ['lancashire', 'cheddar', 'manchego', 'brie']; array_walk($items, function(&$value) { if ($value == 'manchego') { $value .= ' is great!'; } $value = ucfirst($value); }); php.net/functions.anonymous
  • 10. PHP 5.4 • Released March 2012 • Traits • Short syntax for arrays • Built-in webserver for testing • Removed really old stuff: safe_mode, register_globals, magic_quotes
  • 11. Traits class Cart { use Maths; } class Maths { function calculateVAT() { } } $cart = new Cart() $cart->calculateVAT(); http://php.net/traits
  • 12. Built-in webserver $ php -S localhost:8000 PHP 5.4.10 Development Server started at Tue Aug 27 22:47:36 2013 Listening on http://localhost:8000 Document root is /Users/sjones Press Ctrl-C to quit. [Tue Aug 27 22:48:39 2013] ::1:49251 [200]: / php.net/features.commandline.webserver
  • 13. PHP 5.5 • Released June 2013 • Simple password hashing! • Generators • “finally” for try/catch statements • Built-in opcode cache
  • 14. Password hashing // Create hash $hash = password_hash('refresh'); // Test password $result = password_verify('refresh', $hash); Forward-compatible PHP 5.3 port - github.com/ircmaxell/password_compat php.net/password
  • 15. Community
  • 16. PHP FIG (Framework Interop Group) • Common patterns in PHP projects to help code sharing • PSR-0 standard file, class and namespace conventions to support code sharing • PSR-1 & PSR-2 coding standards • PSR-3 common interface for logging
  • 17. PHP FIG • Used by projects such as Drupal, Zend, Symfony, CakePHP, phpBB,AWS SDK • www.php-fig.org • Nice post on recent updates - philsturgeon.co.uk/blog/2013/08/progress- in-the-phpfig
  • 18. Composer • Dependency manager • Used to install PHP packages • Loads everything into vendor/ • Autoloader supplied in vendor/autoload.php • Really, really easy!
  • 19. Composer { "name": "My Project", "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.2.*", "zf-commons/zfc-base": "0.1.*", "zf-commons/zfc-twig": "1.1.*", "phpunit/phpunit": "3.7.*", "zendframework/zend-developer-tools": "0.0.*" } }
  • 20. $ composer install Loading composer repositories with package information Installing dependencies (including require-dev) - Installing zendframework/zendframework (2.2.4) Loading from cache - Installing zf-commons/zfc-base (v0.1.2) - Installing twig/twig (v1.13.2) Downloading: 100% - Installing zf-commons/zfc-twig (1.1.5) Downloading: 100% - Installing symfony/yaml (v2.3.4) getcomposer.org
  • 21. packagist.org
  • 22. Education
  • 23. www.phptherightway.com
  • 24. nomadphp.com
  • 25. nomadphp.com
  • 26. daycamp4developers.com
  • 27. Thanks! Slides on slideshare.net/simonrjones Next Refresh meetup first week of November Sign up to our mailing list at refreshcambridge.org Sponsored by Studio 24 - www.studio24.net @simonrjones @refreshcambs

×