SlideShare a Scribd company logo

PHP, non lo stesso vecchio linguaggio

Massimiliano Arione
Massimiliano Arione
Massimiliano ArionePHP developer at freelance

La mia presentazione sull'evoluzione di PHP al Codemotion 2013 a Roma

PHP, non lo stesso vecchio linguaggio

1 of 28
Download to read offline
Massimiliano Arione




      non lo stesso
   vecchio linguaggio
about




una breve introduzione su di me: sviluppatore web da oltre un decennio, membro del
GrUSP, presidente del PUG Roma, co-autore del libro PHP Best Practices.
PHP...




questa immagine un po’ scherzosa rappresenta la visione che hanno degli sviluppatori PHP gli
sviluppatori di altri linguaggi più blasonati. Ovviamente si tratta di uno scherzo, ma ha un fondo di verità:
perché gli sviluppatori PHP sono visti un po’ come degli script kiddies?
spaghetti code




il motivo è che, dalla sua nascita e per almeno un lustro, PHP è stato il linguaggio per eccellenza dello
spaghetti code. Chiunque riuscisse nella non difficile impresa di installare Apache e Mysql, si trovava a
maneggiare esempi presi qua e là e a implementare siti dinamici, senza alcuna organizzazione del codice
spaghetti code




ecco un breve esempio, uno preso a caso dalla rete, di come si possa scrivere cattivo codice in PHP (e
di come lo sia stato fatto effettivamente per molto tempo)
le origini

<FORM ACTION="/cgi-bin/php.cgi/~userid/display.html"
METHOD=POST>
<INPUT TYPE="text" name="name">
<INPUT TYPE="text" name="age">
<INPUT TYPE="submit">
</FORM>

<?
        if($age>50);
            echo "Hi $name, you are ancient!<p>";
        elseif($age>30);
            echo "Hi $name, you are very old!<p>";
        else;
            echo "Hi $name.";
        endif;
>
    in origine, PHP fu creato come un semplice strumento per iniettare valori dinamici nei form. Si chiamava
    PHP/FI, che stava per Personal Home Page/Form Injector, con un gioco di parole ricavato da TCP/IP.
    Questo esempio è ricavato direttamente dal manuale della versione 2.0 (parliamo del 1997)

Recommended

Gestione delle dipendenze con Composer
Gestione delle dipendenze con ComposerGestione delle dipendenze con Composer
Gestione delle dipendenze con ComposerMassimiliano Arione
 
A Practical Introduction to Symfony2
A Practical Introduction to Symfony2A Practical Introduction to Symfony2
A Practical Introduction to Symfony2Kris Wallsmith
 
Introduzione pratica a Symfony
Introduzione pratica a SymfonyIntroduzione pratica a Symfony
Introduzione pratica a SymfonyEugenio Minardi
 
Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Sumy PHP User Grpoup
 

More Related Content

Viewers also liked

Viewers also liked (9)

Doctrine for Dummies
Doctrine for DummiesDoctrine for Dummies
Doctrine for Dummies
 
Symfony2 and AngularJS
Symfony2 and AngularJSSymfony2 and AngularJS
Symfony2 and AngularJS
 
Introduzione al linguaggio PHP
Introduzione al linguaggio PHPIntroduzione al linguaggio PHP
Introduzione al linguaggio PHP
 
PHP 7
PHP 7PHP 7
PHP 7
 
PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015
 
Last train to php 7
Last train to php 7Last train to php 7
Last train to php 7
 
Symfony Best Practices
Symfony Best Practices Symfony Best Practices
Symfony Best Practices
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
 

Similar to PHP, non lo stesso vecchio linguaggio

Wordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginWordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginCity Planner
 
Html5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fattoHtml5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fattoRocco Passaro
 
Html5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fattoHtml5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fattoRocco Passaro
 
festival ICT 2013: Vivere open source dalle applicazioni ad arduino
festival ICT 2013: Vivere open source dalle applicazioni ad arduinofestival ICT 2013: Vivere open source dalle applicazioni ad arduino
festival ICT 2013: Vivere open source dalle applicazioni ad arduinofestival ICT 2016
 
ConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con SymfonyConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con SymfonyLuca Saba
 
ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...
ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...
ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...ROSARIO RIZZO, 2000+
 
Guida galattica per frontendisti!
Guida galattica per frontendisti!Guida galattica per frontendisti!
Guida galattica per frontendisti!Davide Di Pumpo
 
Programmatore_hobbysta.pdf
Programmatore_hobbysta.pdfProgrammatore_hobbysta.pdf
Programmatore_hobbysta.pdfJacopo Grimoldi
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ CodeDaniele Mondello
 
Open Source per Donne / Girl Geek
Open Source per Donne / Girl GeekOpen Source per Donne / Girl Geek
Open Source per Donne / Girl GeekSara Rosso
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMSRoberto Polillo
 
E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com
E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com
E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com Hidran Arias
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni webAndrea Lazzarotto
 
Hosting: il linguaggio PHP tra passato, presente e futuro #TipOfTheDay
Hosting: il linguaggio PHP tra passato, presente e futuro  #TipOfTheDayHosting: il linguaggio PHP tra passato, presente e futuro  #TipOfTheDay
Hosting: il linguaggio PHP tra passato, presente e futuro #TipOfTheDayAruba S.p.A.
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Flavius-Florin Harabor
 

Similar to PHP, non lo stesso vecchio linguaggio (20)

Php for ASP.NET Developers
Php for ASP.NET DevelopersPhp for ASP.NET Developers
Php for ASP.NET Developers
 
Wordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginWordpress 3/7. temi e plugin
Wordpress 3/7. temi e plugin
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Html5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fattoHtml5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fatto
 
Html5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fattoHtml5 e css3 nei miei progetti: cosa ho fatto
Html5 e css3 nei miei progetti: cosa ho fatto
 
festival ICT 2013: Vivere open source dalle applicazioni ad arduino
festival ICT 2013: Vivere open source dalle applicazioni ad arduinofestival ICT 2013: Vivere open source dalle applicazioni ad arduino
festival ICT 2013: Vivere open source dalle applicazioni ad arduino
 
ConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con SymfonyConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con Symfony
 
ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...
ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...
ProjectLibre - Manuale in Italiano dell'alternativa OpenSource a Microsoft Pr...
 
Guida galattica per frontendisti!
Guida galattica per frontendisti!Guida galattica per frontendisti!
Guida galattica per frontendisti!
 
Programmatore_hobbysta.pdf
Programmatore_hobbysta.pdfProgrammatore_hobbysta.pdf
Programmatore_hobbysta.pdf
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ Code
 
Open Source per Donne / Girl Geek
Open Source per Donne / Girl GeekOpen Source per Donne / Girl Geek
Open Source per Donne / Girl Geek
 
Open Source e le Girl Geek
Open Source e le Girl GeekOpen Source e le Girl Geek
Open Source e le Girl Geek
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
 
E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com
E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com
E-learning: imparare ed insegnare a programmare sulla piattaforma Udemy.com
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni web
 
Hosting: il linguaggio PHP tra passato, presente e futuro #TipOfTheDay
Hosting: il linguaggio PHP tra passato, presente e futuro  #TipOfTheDayHosting: il linguaggio PHP tra passato, presente e futuro  #TipOfTheDay
Hosting: il linguaggio PHP tra passato, presente e futuro #TipOfTheDay
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
 
Il software open-source
Il software open-sourceIl software open-source
Il software open-source
 
Corso Java - Introduzione
Corso Java - IntroduzioneCorso Java - Introduzione
Corso Java - Introduzione
 

More from Massimiliano Arione

Typed models pug roma febbraio 2020
Typed models   pug roma febbraio 2020Typed models   pug roma febbraio 2020
Typed models pug roma febbraio 2020Massimiliano Arione
 
Disinstallare fos user bundle e vivere felici
Disinstallare fos user bundle e vivere feliciDisinstallare fos user bundle e vivere felici
Disinstallare fos user bundle e vivere feliciMassimiliano Arione
 
Scrivere e leggere log con elastic
Scrivere e leggere log con elasticScrivere e leggere log con elastic
Scrivere e leggere log con elasticMassimiliano Arione
 
Managing frontend libs in your Symfony project
Managing frontend libs in your Symfony projectManaging frontend libs in your Symfony project
Managing frontend libs in your Symfony projectMassimiliano Arione
 
Managing frontend libs in your php project
Managing frontend libs in your php projectManaging frontend libs in your php project
Managing frontend libs in your php projectMassimiliano Arione
 
Gestire librerie di frontend in php
Gestire librerie di frontend in phpGestire librerie di frontend in php
Gestire librerie di frontend in phpMassimiliano Arione
 
Symfony: un framework per il web
Symfony: un framework per il webSymfony: un framework per il web
Symfony: un framework per il webMassimiliano Arione
 
Sviluppo rapido di applicazioni con PHP
Sviluppo rapido di applicazioni con PHPSviluppo rapido di applicazioni con PHP
Sviluppo rapido di applicazioni con PHPMassimiliano Arione
 

More from Massimiliano Arione (20)

Typed models pug roma febbraio 2020
Typed models   pug roma febbraio 2020Typed models   pug roma febbraio 2020
Typed models pug roma febbraio 2020
 
Pipelines!
Pipelines! Pipelines!
Pipelines!
 
Il nostro amico Stan
Il nostro amico Stan   Il nostro amico Stan
Il nostro amico Stan
 
PSR7 - interoperabilità HTTP
PSR7 - interoperabilità HTTPPSR7 - interoperabilità HTTP
PSR7 - interoperabilità HTTP
 
Disinstallare fos user bundle e vivere felici
Disinstallare fos user bundle e vivere feliciDisinstallare fos user bundle e vivere felici
Disinstallare fos user bundle e vivere felici
 
MAGA - PUG Roma giugno 2017
MAGA - PUG Roma giugno 2017MAGA - PUG Roma giugno 2017
MAGA - PUG Roma giugno 2017
 
PHP7 e Rich Domain Model
PHP7 e Rich Domain ModelPHP7 e Rich Domain Model
PHP7 e Rich Domain Model
 
PHP on the desktop
PHP on the desktopPHP on the desktop
PHP on the desktop
 
Scrivere e leggere log con elastic
Scrivere e leggere log con elasticScrivere e leggere log con elastic
Scrivere e leggere log con elastic
 
The metrics
The metricsThe metrics
The metrics
 
Managing frontend libs in your Symfony project
Managing frontend libs in your Symfony projectManaging frontend libs in your Symfony project
Managing frontend libs in your Symfony project
 
Translating symfony docs
Translating symfony docsTranslating symfony docs
Translating symfony docs
 
Managing frontend libs in your php project
Managing frontend libs in your php projectManaging frontend libs in your php project
Managing frontend libs in your php project
 
Gestire librerie di frontend in php
Gestire librerie di frontend in phpGestire librerie di frontend in php
Gestire librerie di frontend in php
 
Migrare da symfony 1 a Symfony2
 Migrare da symfony 1 a Symfony2  Migrare da symfony 1 a Symfony2
Migrare da symfony 1 a Symfony2
 
Case study OmniAuto.it
Case study OmniAuto.itCase study OmniAuto.it
Case study OmniAuto.it
 
Symfony: un framework per il web
Symfony: un framework per il webSymfony: un framework per il web
Symfony: un framework per il web
 
Paypal + symfony
Paypal + symfonyPaypal + symfony
Paypal + symfony
 
Sviluppo rapido di applicazioni con PHP
Sviluppo rapido di applicazioni con PHPSviluppo rapido di applicazioni con PHP
Sviluppo rapido di applicazioni con PHP
 
symfony & jQuery (phpDay)
symfony & jQuery (phpDay)symfony & jQuery (phpDay)
symfony & jQuery (phpDay)
 

PHP, non lo stesso vecchio linguaggio