SlideShare une entreprise Scribd logo
1  sur  75
RICHARD MCINTYRE

• Freelance Web    Developer

• Works    at BBC Mobile Core Engineering

• Committer     to the Lithium Framework

• Lived   for 15 years in Japan

• Finished   Leeds Half in 1:51

• Twitter: @mackstar
THE FUTURE OF PHP
   And how this applies to you
<div class="entry">
  <h1>{{title}}</h1>
  <div class="body">
    {{{body}}}
  </div>
Handlebars

<div class="entry">
  <h1>{{title}}</h1>
  <div class="body">
    {{{body}}}
  </div>
Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{taxed_value}}, after taxes.
{{/in_ca}}
Moustache

Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{taxed_value}}, after taxes.
{{/in_ca}}
PHP’S BACKGROUND
 Where we have come from
DEVICES
DEVICES




Javascript is super portable
PILE OF SHIT
ARE YOU STILL USING PHP BASED PARTIALS
         FOR LOADING AJAX?
TWITTER.COM - XHR
JAVASCRIPT FRAMEWORKS

• Backbone.js        • Meteor.js

• Ember.js

• Sproutcore

• Google   closure

• Javascript   MVC

• Cappucino
The key to being a good JavaScript programmer is being able to
    laugh at, and understand the significance of, this image.
PHP


Front         Back
 End          End
YOUR APPS NEED TO
BE AVAILABLE AS API’S
Show code
Silex




        Show code
Silex




        Show code
Silex
require_once __DIR__.'/silex.phar';

$app = new SilexApplication();

$app->get('/hello/{name}', function($name) use($app) {
    return 'Hello '.$app->escape($name);
});

$app->run();



                                  Show code
Slim
Slim
Slim

require 'Slim/Slim.php';
$app = new Slim();
$app->get('/hello/:name', function ($name) {
    echo "Hello, $name!";
});
$app->run();
Flight
Flight
Flight
require 'flight/Flight.php';

Flight::route('/', function(){
    echo 'hello world!';
});

Flight::start();
Limonade???
require_once 'vendors/limonade.php';
dispatch('/', 'hello');
  function hello()
  {
       return 'Hello world!';
  }
run();
Limonade???
require_once 'vendors/limonade.php';
dispatch('/', 'hello');
  function hello()
  {
       return 'Hello world!';
  }
run();
Lithium #li3
   (My Precious)
// GET request
Router::connect("/create", array("http:method" => "GET"),
    function($request){
        // Do something and return Response object
    }
);



// POST request
Router::connect("/create", array("http:method" => "POST"),
    function($request){
        // Do something and return Response object
    }
);
// PUT request
Router::connect("/create", array("http:method" => "PUT"),
    function($request){
        // Do something and return Response object
    }
);



// DELETE request
Router::connect("/create", array("http:method" => "DELETE"),
    function($request){
        // Do something and return Response object
    }
);


                                            Show code
ARE YOU A SLAVE?
  to the technology you use...
<?php define(‘SLAVERY’, ‘your shit here’); ?>
=== ‘SLAVERY’

          Show code
=== ‘SLAVERY’
Your favorite
 framework      === ‘SLAVERY’
ADVANCES IN PHP
  LANGUAGE
YOU CAN CHOOSE MORE
     than 1 framework
PSR-0
An agreement to use namespaces or spaces
    to expose your directory structure
3 FRAMEWORKS IN 1 APP
http://www.slideshare.net/weaverryan/a-php-christmas-
             miracle-3-frameworks-1-app

                                  Actually Java and Python have had
                                             this all along...
CLI
Command Line Interface
PHP IS A FULLY FLEDGED
    back end programming language
PHP


Front   More Solutions   Back
 End        Bridge
                         End
NODE.JS
Some thoughts....
ARE YOU A BACK END PHP NINJA?
ARE YOU A BACK END PHP NINJA?
           Specialist
WELL ROUNDED COOL GUY
WELL ROUNDED COOL GUY
       Generalist
ARE YOU MULTI-LINGUAL?
ARE YOU MULTI-LINGUAL?
     Language agnostic
CAN YOU KICK ASS IN A FIGHT?
CAN YOU KICK ASS IN A FIGHT?
        Stand up for PHP
Testing
Testing   Version Control
Testing            Version Control

     Reading other peoples code
Testing            Version Control

      Reading other peoples code




Documentation
Testing             Version Control

            Reading other peoples code


Using other libraries

   Documentation
Testing             Version Control

            Reading other peoples code


Using other libraries

   Documentation


                             Continuous integration
Testing             Version Control

            Reading other peoples code


Using other libraries

   Documentation


          Caching            Continuous integration
Testing             Version Control

            Reading other peoples code


Using other libraries            Build Tools

   Documentation


          Caching            Continuous integration
Testing             Version Control

            Reading other peoples code


Using other libraries            Build Tools

                          Performance
   Documentation


          Caching            Continuous integration
Testing             Version Control

            Reading other peoples code


Using other libraries            Build Tools

                          Performance
   Documentation
           Having others read your code

          Caching            Continuous integration
Future of PHP

Contenu connexe

Tendances

Week 8 intro to python
Week 8   intro to pythonWeek 8   intro to python
Week 8 intro to python
brianjihoonlee
 
Integrated Language Definition Testing: Enabling Test-Driven Language Develop...
Integrated Language Definition Testing: Enabling Test-Driven Language Develop...Integrated Language Definition Testing: Enabling Test-Driven Language Develop...
Integrated Language Definition Testing: Enabling Test-Driven Language Develop...
lennartkats
 
Test-driven language development
Test-driven language developmentTest-driven language development
Test-driven language development
lennartkats
 
蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈
d0nn9n
 

Tendances (18)

NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural Library
 
Week 8 intro to python
Week 8   intro to pythonWeek 8   intro to python
Week 8 intro to python
 
Glance rebol
Glance rebolGlance rebol
Glance rebol
 
groovy & grails - lecture 1
groovy & grails - lecture 1groovy & grails - lecture 1
groovy & grails - lecture 1
 
Getting Started With PowerShell Scripting
Getting Started With PowerShell ScriptingGetting Started With PowerShell Scripting
Getting Started With PowerShell Scripting
 
Ruby
RubyRuby
Ruby
 
Remix Your Language Tooling (JSConf.eu 2012)
Remix Your Language Tooling (JSConf.eu 2012)Remix Your Language Tooling (JSConf.eu 2012)
Remix Your Language Tooling (JSConf.eu 2012)
 
Integrated Language Definition Testing: Enabling Test-Driven Language Develop...
Integrated Language Definition Testing: Enabling Test-Driven Language Develop...Integrated Language Definition Testing: Enabling Test-Driven Language Develop...
Integrated Language Definition Testing: Enabling Test-Driven Language Develop...
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thrift
 
Test-driven language development
Test-driven language developmentTest-driven language development
Test-driven language development
 
Livecode widget course
Livecode widget courseLivecode widget course
Livecode widget course
 
蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈
 
Ruby programming
Ruby programmingRuby programming
Ruby programming
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
 
Typescript: enjoying large scale browser development
Typescript: enjoying large scale browser developmentTypescript: enjoying large scale browser development
Typescript: enjoying large scale browser development
 
Ruby Programming Language - Introduction
Ruby Programming Language - IntroductionRuby Programming Language - Introduction
Ruby Programming Language - Introduction
 
TypeScript: Basic Features and Compilation Guide
TypeScript: Basic Features and Compilation GuideTypeScript: Basic Features and Compilation Guide
TypeScript: Basic Features and Compilation Guide
 
REPL-driven development with pry
REPL-driven development with pry  REPL-driven development with pry
REPL-driven development with pry
 

En vedette

Importance of Attitude
Importance of AttitudeImportance of Attitude
Importance of Attitude
AAR VEE
 
Fiscal policy as a means to prevent depression
Fiscal policy as a means to prevent depressionFiscal policy as a means to prevent depression
Fiscal policy as a means to prevent depression
Gaurav Sinha
 
9c; maintenance systems
9c; maintenance systems9c; maintenance systems
9c; maintenance systems
kwiley0019
 
Writing into Drama
Writing into DramaWriting into Drama
Writing into Drama
aschoenborn
 
Joyful Monkey's Story
Joyful Monkey's StoryJoyful Monkey's Story
Joyful Monkey's Story
burtonfabfive
 
الفنادق الشبكات الاجتماعيه
الفنادق   الشبكات الاجتماعيهالفنادق   الشبكات الاجتماعيه
الفنادق الشبكات الاجتماعيه
Maryam Alhafidh
 
Prokudin gorskii
Prokudin gorskiiProkudin gorskii
Prokudin gorskii
000175031
 

En vedette (20)

Importance of Attitude
Importance of AttitudeImportance of Attitude
Importance of Attitude
 
Beginning Farmer Livestock 2: Feeding Your Goat
Beginning Farmer Livestock 2: Feeding Your GoatBeginning Farmer Livestock 2: Feeding Your Goat
Beginning Farmer Livestock 2: Feeding Your Goat
 
Dlaczego nie warto podejmować pracy na studiach?
Dlaczego nie warto podejmować pracy na studiach?Dlaczego nie warto podejmować pracy na studiach?
Dlaczego nie warto podejmować pracy na studiach?
 
Globalizzazione
GlobalizzazioneGlobalizzazione
Globalizzazione
 
Html5 workshop
Html5 workshopHtml5 workshop
Html5 workshop
 
Fiscal policy as a means to prevent depression
Fiscal policy as a means to prevent depressionFiscal policy as a means to prevent depression
Fiscal policy as a means to prevent depression
 
Social networking in the Philippines
Social networking in the PhilippinesSocial networking in the Philippines
Social networking in the Philippines
 
9c; maintenance systems
9c; maintenance systems9c; maintenance systems
9c; maintenance systems
 
Spout - Building a RESTful web app with Angular.js and BEAR.Sunday
Spout - Building a RESTful web app with Angular.js and BEAR.SundaySpout - Building a RESTful web app with Angular.js and BEAR.Sunday
Spout - Building a RESTful web app with Angular.js and BEAR.Sunday
 
Writing into Drama
Writing into DramaWriting into Drama
Writing into Drama
 
Intensive Culture & Season Extension
Intensive Culture & Season ExtensionIntensive Culture & Season Extension
Intensive Culture & Season Extension
 
Joyful Monkey's Story
Joyful Monkey's StoryJoyful Monkey's Story
Joyful Monkey's Story
 
Nakaz №906
Nakaz №906Nakaz №906
Nakaz №906
 
THE GREAT HYMNS OF FAITH
THE GREAT HYMNS OF FAITHTHE GREAT HYMNS OF FAITH
THE GREAT HYMNS OF FAITH
 
Armen nyut
Armen nyutArmen nyut
Armen nyut
 
Current state-of-php
Current state-of-phpCurrent state-of-php
Current state-of-php
 
الفنادق الشبكات الاجتماعيه
الفنادق   الشبكات الاجتماعيهالفنادق   الشبكات الاجتماعيه
الفنادق الشبكات الاجتماعيه
 
Prokudin gorskii
Prokudin gorskiiProkudin gorskii
Prokudin gorskii
 
Gynecology
GynecologyGynecology
Gynecology
 
Presentation4
Presentation4Presentation4
Presentation4
 

Similaire à Future of PHP

Development workflow
Development workflowDevelopment workflow
Development workflow
Sigsiu.NET
 
Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010
Satish Verma
 

Similaire à Future of PHP (20)

Development workflow
Development workflowDevelopment workflow
Development workflow
 
Prersentation
PrersentationPrersentation
Prersentation
 
Laravel level 0 (introduction)
Laravel level 0 (introduction)Laravel level 0 (introduction)
Laravel level 0 (introduction)
 
PHP - Introduction to PHP Fundamentals
PHP -  Introduction to PHP FundamentalsPHP -  Introduction to PHP Fundamentals
PHP - Introduction to PHP Fundamentals
 
PHP
PHPPHP
PHP
 
Seven perilous pitfalls to avoid with Java | DevNation Tech Talk
Seven perilous pitfalls to avoid with Java | DevNation Tech TalkSeven perilous pitfalls to avoid with Java | DevNation Tech Talk
Seven perilous pitfalls to avoid with Java | DevNation Tech Talk
 
Lecture8
Lecture8Lecture8
Lecture8
 
php app development 1
php app development 1php app development 1
php app development 1
 
Introduction to php basics
Introduction to php   basicsIntroduction to php   basics
Introduction to php basics
 
How to build Sdk? Best practices
How to build Sdk? Best practicesHow to build Sdk? Best practices
How to build Sdk? Best practices
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple Platforms
 
Living With Legacy Code
Living With Legacy CodeLiving With Legacy Code
Living With Legacy Code
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
About Clack
About ClackAbout Clack
About Clack
 
Porting your favourite cmdline tool to Android
Porting your favourite cmdline tool to AndroidPorting your favourite cmdline tool to Android
Porting your favourite cmdline tool to Android
 
PHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckPHP from soup to nuts Course Deck
PHP from soup to nuts Course Deck
 
Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010
 

Plus de Richard McIntyre (7)

Why Message Driven?
Why Message Driven?Why Message Driven?
Why Message Driven?
 
Spout
SpoutSpout
Spout
 
Spout
SpoutSpout
Spout
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?
 
What is this DI and AOP stuff anyway...
What is this DI and AOP stuff anyway...What is this DI and AOP stuff anyway...
What is this DI and AOP stuff anyway...
 
Lithium Best
Lithium Best Lithium Best
Lithium Best
 
Using Backbone with CakePHP
Using Backbone with CakePHPUsing Backbone with CakePHP
Using Backbone with CakePHP
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Future of PHP

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n