the php renaissance
TRANSCRIPT
PHP RENAISSANCEPHP RENAISSANCEREBIRTH OF A DIVERSE COMMUNITYREBIRTH OF A DIVERSE COMMUNITY
Matt Chapman
Sr. Open Source Platforms Engineer
CARD.com
Los Angeles, CA
1 of 43
DEFINEDDEFINEDRebirthRenewalCultural Cross-PolinationUnified Diversity
2 of 43
OUTLINEOUTLINEA Personal StoryA Technical HistoryA Technical TourA Look at our Community
3 of 43
20022002<html><head>
PHP just goes in the HTML file next to the javascript. Why not?<?php $link = mysql_connect('localhost', 'user', 'pass'); mysql_select_db('testdb', $link); // Don't worry, register_globals is on by default until April. mysql_query("SELECT * from members WHERE id = " . $id;");?>
Still waiting on the content from marketing...<p>Under construction!</p></html>
4 of 43
20062006<?php
function get_data() { require_once db_config.inc; $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', $config->username, $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);...
5 of 43
20072007
6 of 43
REAL ESTATEREAL ESTATE
7 of 43
HOME VALUES VS. DEVELOPER INCOMEHOME VALUES VS. DEVELOPER INCOME
8 of 43
DEVELOPER INCOME VS. AVERAGEDEVELOPER INCOME VS. AVERAGE
9 of 43
FOOTNOTEFOOTNOTEResults not typical; your results may vary. Not intended to treat orprevent any boring or stressful career. May cause rectal bleeding.
10 of 43
CHANGED LIVESCHANGED LIVES
11 of 43
INSANITYINSANITY
12 of 43
PHP CIRCA 2007PHP CIRCA 2007WHAT'S GOOD?WHAT'S GOOD?
Fast development cycle.Great HTML integration.Free, Freer, and Freedom.
13 of 43
WHAT'S GOOD ABOUT PHP ISWHAT'S GOOD ABOUT PHP ISANYONE CAN DO IT!ANYONE CAN DO IT!
~~WHAT'S BAD ABOUT PHP ISWHAT'S BAD ABOUT PHP ISANYONEANYONE CAN DO IT.... CAN DO IT....
14 of 43
TERRIBLE CODETERRIBLE CODE<?phpnamespace Money;
class Bitcoin {const BITCOIN_NODE = '50.00.00.00'; static private $pending = array();
public static function update() { // update all nodes $list = \DB::DAO('Money_Bitcoin_Host')->search(null); foreach($list as $bean) { $bean->Last_Update = \DB::i()->now(); $client = \Controller::Driver('Bitcoin', $bean->Money_Bitcoin_Host__);
if (!$client->isValid()) continue;
$info = $client->getInfo();
15 of 43
PEARPEARPHP Extension and Application RepositoryFounded 2000 on the "new" PHP 4Required root to use properly (WTF?)Complex process for adding packagesEasy to get wrong
16 of 43
SO HOW DOES THIS WORK?SO HOW DOES THIS WORK?Where do I find code? PEAR and, um, forums?How do I get code? Paste into your project (or have root)How do I load your code? Manual includesHow do I load everyone's code? Lots of manual includesHow can I collaborate on code? Sourceforge?Can I exchange code? LOLz
17 of 43
THIS IS WHY WE CAN'TTHIS IS WHY WE CAN'THAVE NICE THINGSHAVE NICE THINGS
-Larry Garfield, PHP-FIG, Drupal.
It was hard to share, so everyone built their own.So we didn't get the open-source leverage effect.And 90% of everything is crap anyway.
18 of 43
19 of 43
20 of 43
"The average PHP programmer has written2.5 frameworks in his career, and afterward,
still doesn't know if needle or haystack comes first."
— Urban legend statistics
21 of 43
GO PHP5.GO PHP5.
22 of 43
SO WHAT'S CHANGED?SO WHAT'S CHANGED?PHP IN 2014PHP IN 2014
23 of 43
GITHUBGITHUB
24 of 43
COMPOSERCOMPOSERPHP packaging system backed by Packagist.org andGithub.com
25 of 43
HIPHOPHIPHOPFacebook's Open Sourtime Runtime alternativealso runs HACK, a backward compatible lanaguge that addoptional typing, etc.
26 of 43
PERFORMANCEPERFORMANCE
27 of 43
PHP-FIG.ORGPHP-FIG.ORGFramewok Interoperability Group
28 of 43
WHAT ELSE IS HOT?WHAT ELSE IS HOT?
29 of 43
SYMFONY 2SYMFONY 2Application FrameworkPHP on Rails
30 of 43
SILEX, LARAVEL, KOHANASILEX, LARAVEL, KOHANALighterHigher or lower level
31 of 43
PHALCONPHALCONFramework in C.
32 of 43
AURAAURANo, really, really decoupled.
33 of 43
REACTPHPREACTPHPEvent Driven ProgrammingInspired by NodeJS & Twisted(Not to be confused with ReactJS from FB
34 of 43
DRUPAL 8 & BACKDROPDRUPAL 8 & BACKDROPDrupal started in 2001Content Management System2013 Fork by active community membersIt's not about OOP
35 of 43
COMMUNITYCOMMUNITYWhat do we want?
36 of 43
ENTERPRISE?ENTERPRISE?Red Hat vs Linspire
37 of 43
START-UPS?START-UPS?
38 of 43
DIVERSITYDIVERSITY
39 of 43
CAREERCAREER
40 of 43
LOS ANGELES IS THE FASTEST GROWINGLOS ANGELES IS THE FASTEST GROWINGMARKET FOR TECH JOBS IN THE COUNTRY.MARKET FOR TECH JOBS IN THE COUNTRY.
-Some guy I know.
41 of 43
CARD.COMCARD.COM
42 of 43
DEFINEDDEFINEDRebirthRenewalCultural Cross-PolinationUnified Diversity
43 of 43