PHP RENAISSANCEPHP RENAISSANCE
REBIRTH OF A DIVERSE COMMUNITYREBIRTH OF A DIVERSE COMMUNITY
Matt Chapman
Sr. Open Source Platforms Engineer
CARD.com
Los Angeles, CA
1 of 43
DEFINEDDEFINED
Rebirth
Renewal
Cultural Cross-Polination
Unified Diversity
2 of 43
OUTLINEOUTLINE
A Personal Story
A Technical History
A Technical Tour
A 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
FOOTNOTEFOOTNOTEResultsnottypical;yourresultsmayvary.Notintendedtotreator
preventanyboringorstressfulcareer.Maycauserectalbleeding.
10 of 43
CHANGED LIVESCHANGED LIVES
11 of 43
INSANITYINSANITY
12 of 43
PHP CIRCA 2007PHP CIRCA 2007
WHAT'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 IS
ANYONE CAN DO IT!ANYONE CAN DO IT!
~~
WHAT'S BAD ABOUT PHP ISWHAT'S BAD ABOUT PHP IS
ANYONEANYONE CAN DO IT....CAN DO IT....
14 of 43
TERRIBLE CODETERRIBLE CODE<?php
namespace 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
PEARPEAR
PHP Extension and Application Repository
Founded 2000 on the "new" PHP 4
Required root to use properly (WTF?)
Complex process for adding packages
Easy 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 includes
How do I load everyone's code? Lots of manual includes
How can I collaborate on code? Sourceforge?
Can I exchange code? LOLz
17 of 43
THIS IS WHY WE CAN'TTHIS IS WHY WE CAN'T
HAVE 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 written
2.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
COMPOSERCOMPOSER
PHP packaging system backed by Packagist.org and
Github.com
25 of 43
HIPHOPHIPHOP
Facebook's Open Sourtime Runtime alternative
also runs HACK, a backward compatible lanaguge that add
optional typing, etc.
26 of 43
PERFORMANCEPERFORMANCE
27 of 43
PHP-FIG.ORGPHP-FIG.ORG
Framewok Interoperability Group
28 of 43
WHAT ELSE IS HOT?WHAT ELSE IS HOT?
29 of 43
SYMFONY 2SYMFONY 2
Application Framework
PHP on Rails
30 of 43
SILEX, LARAVEL, KOHANASILEX, LARAVEL, KOHANA
Lighter
Higher or lower level
31 of 43
PHALCONPHALCON
Framework in C.
32 of 43
AURAAURA
No, really, really decoupled.
33 of 43
REACTPHPREACTPHP
Event Driven Programming
Inspired by NodeJS & Twisted
(Not to be confused with ReactJS from FB
34 of 43
DRUPAL 8 & BACKDROPDRUPAL 8 & BACKDROP
Drupal started in 2001
Content Management System
2013 Fork by active community members
It's not about OOP
35 of 43
COMMUNITYCOMMUNITY
What 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 GROWING
MARKET 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
DEFINEDDEFINED
Rebirth
Renewal
Cultural Cross-Polination
Unified Diversity
43 of 43

The PHP Renaissance