SlideShare a Scribd company logo
1 of 29
Download to read offline
THE RETURN OF AN OLD ENEMY
Marco Schaden | @donschado
*this talk may contain satire
for long time we were unique for our community
we were unique for our tools
but for too long we felt safe…
the enemy has reformed and is in the majority
TL;DR: he learned a lot…
PHP
Code Style Guide
Dependency Management
Best Practices
Software Design Patterns
OOP
Dependency Injection
Database Abstraction Layers
Exception-Handling
AutomatedTests
Deployment
Version Control
Meta Programming
Community
they are well organized to improve
Awesome PHP
A curated list of amazingly awesome PHP libraries, resources and shiny things.
!Awesome PHP
Dependency Management
Dependency Management Extras
Frameworks
Framework Extras
Framework Components
Micro Frameworks
Micro Framework Extras
Templating
Static Site Generators
HTTP
URL
Email
Files
Streams
Dependency Injection
Imagery
Testing
Documentation
Security
Code Analysis
Build Tools
Task Runners
Navigation
Asset Management
Geolocation
Date and Time
Event
Logging
E-commerce
PDF
ORM and Datamapping
NoSQL
Queue
Search
Command Line
Authentication
Markup
Text and Numbers
Filtering and Validation
REST and API
Caching
Data Structure and Storage
Notifications
Deployment
Third Party APIs
Extensions
Miscellaneous
Software
PHP Installation
Development Environment
Virtual Machines
Web Applications
Resources
PHP Websites
Other Websites
PHP Books
Other Books
PHP Videos
PHP Reading
PHP Internals Reading
Contributing
Dependency Management
!Libraries for dependency and package management.
!Composer/Packagist - A package and dependency manager.
Composer Installers - A multi framework Composer library installer.
Pickle - A PHP extension installer.
Dependency Management Extras
!Extras related to dependency management.
!Satis - A static Composer repository generator.
Composition - A library to check your Composer environment at runtime.
Poser - A Composer class aliasing library.
Version - A parsing and comparison library for semantic versioning.
NameSpacer - A library to convert from underscores to namespaces.
Patch Installer - A library to install patches using Composer.
Composer Checker - A tool to validate Composer configurations.
Frameworks
!Web development frameworks.
!Symfony2 - A framework comprised of individual components.
Zend Framework 2 - Another framework comprised of individual components.
Laravel 4 - A simple PHP framework.
Aura PHP - A framework of independent components.
Phalcon - A framework implemented as a C extension.
Framework Extras
!Extras related to web development frameworks.
!Symfony CMF - A Content Management Framework to create custom CMS.
Knp RAD Bundle - A Rapid Application Development (RAD) bundle for Symfony 2.
Framework Components
!Standalone component from web development frameworks.
!Symfony2 Components - The components that make Symfony2.
Zend Framework 2 Components - The components that make ZF2.
Aura Components - A package of PHP 5.4 components.
Hoa Project - Another package of PHP components.
Micro Frameworks
!Micro frameworks and routers.
!Silex - A micro framework built around Symfony2 components.
Slim - Another simple micro framework.
Bullet PHP - A micro framework for building REST APIs.
Fast Route - A fast routing library.
Pux - Another fast routing library.
Micro Framework Extras
!Extras related to micro frameworks and routers.
!Silex Skeleton - A project skeleton for Silex.
Silex Web Profiler - A web debug toolbar for Silex.
Stack - A library of stackable middleware for Silex/Symfony.
Slim Skeleton - A skeleton for Slim.
Slim View - A collection of custom views for Slim.
Slim Middleware - A collection of custom middleware for Slim.
Templating
!Libraries and tools for templating and lexing.
!Twig - A comprehensive templating language.
Twig Cache Extension - A template fragment cache library for Twig.
Mustache - A PHP implementation of the Mustache template language.
Phly Mustache - Another PHP implementation of the Mustache template language.
MtHaml - A PHP implementation of the HAML template language.
Plates - A native PHP templating library.
Lex - A lightweight template parser.
Static Site Generators
!Tools for pre-processing content to generate web pages.
!Sculpin - A tool that converts Markdown and Twig into static HTML.
Phrozn - Another tool that converts Textile, Markdown and Twig into HTML.
HTTP
!Libraries for working with HTTP and scraping websites.
!Guzzle - A comprehensive HTTP client.
Buzz - Another HTTP client.
Requests - A simple HTTP library.
HTTPFul - A chainable HTTP client.
Goutte - A simple web scraper.
PHP VCR - A library for recording and replaying HTTP requests.
URL
!Libraries for parsing URLs.
!Purl - A URL manipulation library.
PHP Domain Parser - A domain suffix parser library.
Email
!Libraries for sending and parsing email.
!SwiftMailer - A mailer solution.
PHPMailer - Another mailer solution.
Fetch - An IMAP library.
Email Reply Parser - An email reply parser library.
Stampie - A library for email services such as SendGrid, PostMark, MailGun and Mandrill.
Files
!Libraries for file manipulation and MIME type detection.
!Gaufrette - A filesystem abstraction layer.
Flysystem - Another filesystem abstraction layer.
Canal - A library to determine internet media types.
Apache MIME Types - A library that parses Apache MIME types.
Ferret - A MIME detection library.
Hoa Mime - Another MIME detection library.
Lurker - A resource tracking library.
PHP File Locator - A library for locating files in large projects.
PHP FFmpeg - A wrapper for the FFmpeg video library.
CSV - A CSV data manipulation library.
Streams
!Libraries for working with streams.
!Streamer - A simple object-orientated stream wrapper library.
Dependency Injection
!Libraries that implement the dependency injection design pattern.
!Pimple - A tiny dependency injection container.
Auryn - Another dependency injection container.
Orno Di - Another flexible dependency injection container.
PHP DI - A dependency injection implementation using annotations.
Acclimate - A common interface to dependency injection containers and service locators.
Imagery
!Libraries for manipulating images.
!Imagine - An image manipulation library.
PHP Image Workshop - Another image manipulation library.
Intervention Image - Another image manipulation library.
GIF Frame Extractor - A library to extract GIF animation frame information.
GIF Creator - A library to create GIF animations from multiple images.
Image With Text - A library for embedding text into images.
Color Extractor - A library for extracting colours from images.
Testing
!Libraries for testing codebases and generating test data.
!PHPUnit - A unit testing framework.
DBUnit - A database testing library for PHPUnit.
ParaTest - A parallel testing library for PHPUnit.
PHPSpec - A design by specification unit testing library.
Codeception - A full stack testing framework.
Atoum - A simple testing library.
Mockery - A mock object library for testing.
Phake - Another mock object library for testing.
Parody - Yet another mock object library for testing.
Sismo - A continuous testing server library.
Faker - A fake data generator library.
Samsui - Another fake data generator library.
Alice - An expressive fixture generation library.
Behat - A behaviour driven development (BDD) testing framework.
Pho - Another behaviour driven development testing framework.
Mink - Web acceptance testing.
HTTP Mock - A library for mocking HTTP requests in unit tests.
VFS Stream - A virtual filesystem stream wrapper for testing.
VFS - Another virtual filesystem for testing.
Locust - A modern load test library written in Python.
Travis CI - A continuous integration platform.
PHPCI - An open source continuous integration platform for PHP.
Documentation
!Libraries for generating project documentation.
!Sami - An API documentation generator.
APIGen - Another API documentation generator.
PHP Documentor 2 - A documentation generator.
phpDox - A documentation generator for PHP projects (that is not limited to API documentation).
Security
!Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.
!HTML Purifier - A standards compliant HTML filter.
RandomLib - A library for generating random numbers and strings.
True Random - A library that generates random numbers using www.random.org.
SecurityMultiTool - A PHP security library.
Password Compat - A compatibility library for the new PHP 5.5 password functions.
PHPAss - A portable password hashing framework.
PHP Password Lib - A library for generating and validating passwords.
Password Policy - A password policy library for PHP and JavaScript.
Password Validator - A library for validating and upgrading password hashes.
PHPSecLib - A pure PHP secure communications library.
TCrypto - A simple encrypted key-value storage library.
PHP IDS - A structured PHP security layer.
PHP SSH - An experimental object orientated SSH wrapper library.
IniScan - A tool that scans PHP INI files for security.
SensioLabs Security Check - A web tool to check your Composer dependencies for security advisories.
Zed - An integrated penetration testing tool for web applications.
Code Analysis
!Libraries and tools for analysing, parsing and manipulation codebases.
!PHP Parser - A PHP parser written in PHP.
PHPPHP - A PHP VM implementation in PHP.
PHPSandbox - A PHP sandbox environment.
Dissect - A set of tools for lexical and syntactical analysis.
PHP Mess Detector - A library that scans code for bugs, sub-optimal code, unused parameters and more.
PHP Code Sniffer - A library that detects PHP, CSS and JS coding standard violations.
PHPCPD - A library that detects copied and pasted code.
PHP Analyser - A library for analysing PHP code to find bugs and errors.
PHP CS Fixer - A coding standard fixer library.
PHP Manipulator - A library for analysing and modifying PHP Source Code.
PHP Metrics - A static metric library.
PHP Refactoring Browser - A command line utility for refactoring PHP code.
UBench - A simple micro benchmark library.
Athletic - An annotation based benchmark framework.
Mondrian - A code analysis tool using Graph Theory.
PHP Debug Bar - A debugging toolbar.
PHP Console - A web debugging console.
Barbushin PHP Console - Another web debugging console using Google Chrome.
PHPDBG - An interactive PHP debugger.
Scrutinizer - A web tool to scrutinise PHP code.
PHPLOC - A tool for quickly measuring the size of a PHP project.
xDebug - A debug and profile tool for PHP.
xHprof - Another profiling tool for PHP.
Build Tools
!Project build and automation tools.
!Go - A simple PHP build tool.
Bob - A simple project automation tool.
Phake - A rake PHP clone library.
Box - A utility to build PHAR files.
Phing - A PHP project build system inspired by Apache Ant.
Task Runners
!Libraries for automating and running tasks.
!Task - A pure PHP task runner inspired by Grunt and Gulp.
Robo - A PHP Task runner with object-orientated configurations.
Bldr - A PHP Task runner built on Symfony components.
Navigation
!Tools for building navigation structures.
!KnpMenu - A menu library.
Cartographer - A sitemap generation library.
Asset Management
!Tools for managing, compressing and minifying website assets.
!Assetic - An asset manager pipeline library.
Pipe - Another asset manager pipeline library.
Munee - An asset optimiser library.
JShrink - A JavaScript minifier library.
Puli - A library for determining assets absolute paths.
Geolocation
!Libraries for geocoding addresses and working with latitudes and longitudes.
!GeoCoder - A geocoding library.
GeoTools - A library of geo-related tools.
PHPGeo - A simple geo library.
GeoJSON - A GeoJSON implementation.
Date and Time
!Libraries for working with dates and times.
!Carbon - A simple DateTime API extension.
ExpressiveDate - Another DateTime API extension.
CalendR - A calendar management library.
Event
!Libraries that are event-driven or implement non-blocking event loops.
!React - An event driven non-blocking I/O library.
Rx.PHP - A reactive extension library.
Ratchet - A web socket library.
Hoa WebSocket - Another web socket library.
Hoa EventSource - An event source library.
Evenement - An event dispatcher library.
FuelPHP Event - Another event dispatcher library.
Logging
!Libraries for generating and working with log files.
!Monolog - A comprehensive logger.
KLogger - An easy-to-use PSR-3 compliant logging class.
E-commerce
!Libraries and applications for taking payments and building online e-commerce stores.
!OmniPay - A framework agnostic multi-gateway payment processing library.
Payum - A payment abstraction library.
Sylius - An open source e-commerce solution.
Thelia - Another open source e-commerce solution.
Money - A PHP implementation of Fowler's money pattern.
Sebastian Money - Another library for working with monetary values.
Swap - An exchange rates library.
PDF
!Libraries and software for working with PDF files.
!Snappy - A PDF and image generation library.
WKHTMLToPDF - A tool to convert HTML to PDF.
ORM and Datamapping
!Libraries that implement object-relational mapping or datamapping techniques.
!Doctrine - A comprehensive DBAL and ORM.
Doctrine Migrations - A migration library for Doctrine.
Doctrine Extensions - A collection of Doctrine behavioural extensions.
Propel - A fast ORM.
Eloquent - The Laravel 4 ORM.
Baum - A nested set implementation for Eloquent.
Spot - A MySQL datamapper ORM.
RedBean - A lightweight, configuration-less ORM.
PHP ActiveRecord - A PHP Active Record implementation.
Paris and Idiorm - A minimalist database library.
Pomm - An Object Model Manager for PostgreSQL.
Migrations - A migration management library.
PHPMig - Another migration management library.
Phinx - Another database migration library.
ProxyManager - A set of utilities to generate proxy objects for data mappers.
NoSQL
!Libraries for working with "NoSQL" backends.
!MongoQB - A MongoDB query builder library.
Monga - A MongoDB abstraction library.
Predis - A feature complete Redis library.
Queue
!Libraries for working with event and task queues.
!Pheanstalk - A Beanstalkd client library.
PHP AMQP - A pure PHP AMQP library.
Thumper - A RabbitMQ pattern library.
Bernard - A multibackend abstraction library.
Search
!Libraries and software for indexing and performing search queries on data.
!ElasticSearch PHP - The official client library for ElasticSearch.
Elastica - A client library for ElasticSearch.
Solarium - A client library for Solr.
Command Line
!Libraries for building command line utilities.
!Boris - A tiny PHP REPL.
PsySH - Another PHP REPL.
Pecan - An event-driven, non-blocking shell.
GetOpt - A command line opt parser.
OptParse - Another command line opt parser.
Commando - Another simple command line opt parser.
GetOptionKit - Another command line opt parser.
Cron Expression - A library to calculate cron run dates.
ShellWrap - A simple command line wrapper library.
Hoa Console - Another command line library.
Shunt - A library for running commands in parallel on multiple remote machines.
Authentication
!Libraries for implementing authentications schemes.
!Sentry - A framework agnostic authentication & authorisation library.
Sentry Social - A library for social network authentication.
OPAuth - A multi-provider authentication framework.
OAuth2 - An OAuth2 authentication server, resource server and client library.
OAuth2 Server - Another OAuth2 server implementation.
PHP oAuthLib - Another OAuth library.
TwitterOAuth - A Twitter OAuth library.
TwitterSDK - A fully tested Twitter SDK.
Hawk - A Hawk HTTP authentication library.
HybridAuth - An open source social sign on library.
Markup
!Libraries for working with markup.
!Decoda - A lightweight markup parser library.
PHP Markdown - A Markdown parser.
Dflydev Markdown - Another Markdown parser.
Parsedown - Another Markdown parser.
Ciconia - Another Markdown parser that supports Github flavoured Markdown.
Cebe Markdown - An fast and extensible Markdown parser.
HTML5 PHP - An HTML5 parser and serializer library.
Text and Numbers
!Libraries for parsing and manipulating text and numbers.
!ANSI to HTML5 - An ANSI to HTML5 converter library.
Patchwork UTF-8 - A portable library for working with UTF-8 strings.
Hoa String - Another UTF-8 string library.
Stringy - A string manipulation library with multibyte support.
Numbers PHP - A library for working with numbers.
Math - A library for working with large numbers.
Color Jizz - A library for manipulating and converting colours.
UUID - A library for generating UUIDs.
Slugify - A library to convert strings to slugs.
Urlify - A PHP port of Django's URLify.js.
Text - A text manipulation library.
PHP Units of Measure - A library for converting between units of measure.
PHP Conversion - Another library for converting between units of measure.
SQL Formatter - A library for formatting SQL statements.
ByteUnits - A library to parse, format and convert byte units in binary and metric systems.
UA Parser - A library for parsing user agent strings.
LibPhoneNumber for PHP - A PHP implementation of Google's phone number handling library.
Filtering and Validation
!Libraries for filtering and validating data.
!Filterus - A simple PHP filtering library.
Respect Validate - A simple validation library.
Valitron - Another validation library.
Upload - A library for handling file uploads and validation.
DMS Filter - An annotation filtering library.
MetaYaml - A schema validation library that supports YAML, JSON and XML.
ISO-codes - A library for validating various ISO and ZIP codes (IBAN, SWIFT/BIC, BBAN, VAT, SSN, UKNIN).
REST and API
!Libraries and web tools for developing REST-ful APIs.
!Apigility - An API builder built with Zend Framework 2.
Hateoas - A HATEOAS REST web service library.
HAL - A Hypertext Application Language (HAL) builder library.
Negotiation - A content negotiation library.
Caching
!Libraries for caching data.
!Alternative PHP Cache (APC) - Open opcode cache for PHP.
Cache - A caching library (part of Doctrine).
Stash - Another library for caching.
Data Structure and Storage
!Libraries that implement data structure or storage techniques.
!Ardent - A library of data structures.
PHP Collections - A simple collections library.
Serializer - A library for serialising and de-serialising data.
PHP Object Storage - A library for object storage.
Fractal - A library for converting complex data structures to JSON output.
Notifications
!Libraries for working with notification software.
!Nod - A notification library (e.g., Growl).
Notificato - A library for handling push notifications.
Notification Pusher - A standalone library for device push notifications.
Notificator - A lightweight notification library.
Deployment
!Pomander - A deployment tool for PHP applications.
Rocketeer - A fast and easy deployer for the PHP world.
Envoy - A tool to run SSH tasks with PHP.
Third Party APIs
!Libraries for accessing third party APIs.
!Amazon Web Service SDK - The official PHP AWS SDK library.
S3 Stream Wrapper - A stream wrapper library for Amazon S3.
Stripe - The official Stripe PHP library.
Campaign Monitor - The official Campaign Monitor PHP library.
Digital Ocean - A library to interface with the Digital Ocean API.
Github - A library to interface with the Github API.
PHP Github API - Another library to interface with the Github API.
Twitter OAuth - A library to interface with Twitter's OAuth workflow.
Twitter REST - A library to interact with Twitter's REST API.
Dropbox SDK - The official PHP Dropbox SDK library.
Twilio - The official Twilio PHP REST API.
Mailgun The official Mailgun PHP API.
Extensions
!Libraries to help build PHP extensions.
!PHP CPP - A C++ library for developing PHP extensions.
Miscellaneous
!Useful libraries or tools that don't fit in the categories above.
!Spork - A process forking library.
JSON Lint - A JSON lint utility.
JSONPCallbackValidator - A library for validating JSONP callbacks.
Pagerfanta - A pagination library.
Ruler - A simple stateless production rules engine.
LiteCQRS - A CQRS (Command Query Responsibility Separation) library.
Sslurp - A library that makes dealing with SSL suck less.
PHP Option An option type library.
Metrics - A simple metrics API library.
Sabre VObject - A library for parsing VCard and iCalendar objects.
Annotations - An annotations library (part of Doctrine).
Whoops - A pretty error handling library.
Finite - A simple PHP finite state machine.
LadyBug - A dumper library.
Plum - A deployer library.
Procrastinator - A library for running time consuming tasks.
Compose - A function composition library.
SuperClosure - A library that allows Closures to be serialized.
Jumper - A remote service executor library.
Underscore - A PHP port of the Underscore JS library.
PHP PassBook - A PHP library for iOS PassBook.
PHP Expression - A PHP expression language.
RMT - A library for versioning and releasing software.
Wise - A configuration manager.
Opengraph - An opengraph library.
Essence - A library for extracting web media.
Embera - An Oembed consumer library.
Graphviz - A Graphviz library.
Monad PHP - A simple Monad library.
Flux - A regular expression building library.
Patchwork - A library for redefining userland functions.
Galapagos - Evolutionary language transformation.
Design Patterns PHP - A repository of software patterns implemented in PHP.
PHPCR - A PHP port of the Java Content Repository (JCR).
Functional PHP - A functional programming library.
ClassPreloader - A library for optimising autoloading.
Lib Country - A library for country and subdivision data.
Lib Accessor - A library for simplifying accessors.
PHPStack - A TCP/IP stack proof of concept written in PHP.
Nmap - A PHP wrapper around Nmap.
Code Mover - A library for moving code.
Iter - A library that provides iteration primitives using generators.
Lambda PHP - A Lambda calculus interpreter in PHP.
Country List - A list of all countries with names and ISO 3166-1 codes.
PHP-GPIO - A library for playing with the Raspberry PI's GPIO pins.
Software
Software for creating a development environment.
!PHP Installation
!Tools to help install and manage PHP on your computer.
!HomeBrew - A package manager for OSX.
HomeBrew PHP - A PHP tap for HomeBrew.
PHP OSX - A PHP installer for OSX.
PHP Brew - A PHP version manager and installer.
PHP Env - Another PHP version manager.
PHP Switch - Another version manager.
PHP Build - Another PHP version installer.
VirtPHP - A tool for creating and managing isolated PHP environments.
Development Environment
!Software and tools for creating a sandboxed development environment.
!Vagrant - A portable development environment utility.
Ansible - A radically simple orchestration framework.
Puppet - A server automation framework and application.
PuPHPet - A web tool for building PHP development virtual machines.
Protobox - Another web tool for building PHP development virtual machines.
Phansible - A web tool for building PHP development virtual machines with Ansible.
Virtual Machines
!Alternative PHP virtual machines.
!HipHop PHP - A Virtual Machine, Runtime and JIT for PHP by Facebook.
HippyVM - Another PHP virtual machine.
Hack - A programming language for HHVM that interoperates seamlessly with PHP.
Web Applications
!Web-based applications and tools.
!3V4L - An online PHP shell.
DBV - A database version control application.
PHP Queue - An application for managing queueing backends.
Composer as a Service - A tool for downloading Composer packages as a zip file.
MailCatcher - A web tool for capturing and viewing emails.
Resources
Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge.
!PHP Websites
!Useful PHP-related websites.
!PHP The Right Way - A PHP best practice quick reference guide.
PHP Best Practices - A PHP best practice guide.
PHP Weekly - A weekly PHP newsletter.
PHP Security - A guide to PHP security.
PHP FIG - The PHP Framework Interoperability Group.
PHP UG - A website to help people locate their nearest PHP user group (UG).
Seven PHP - A website that interviews members of the PHP community.
Nomad PHP - A online PHP learning resource.
Other Websites
!Useful websites related to web development.
!The Open Web Application Security Project (OWASP) - An open software security community.
WebSec IO - A web security community resource.
Web Advent - An advent calendar for web developers.
Semantic Versioning - A website explaining semantic versioning.
Atlassian Git Tutorials - A series of Git tutorials.
Hg Init - A series of Mercurial tutorials.
Servers for Hackers - A newsletter about server management.
PHP Books
!Fantastic PHP-related books.
!Scaling PHP Applications - An ebook about scaling PHP applications by Steve Corona.
The Grumpy Programmer's Guide to Building Testable PHP Applications - A book about building testing PHP applications by Chris Hartjes.
Grumpy PHPUnit - A book about unit testing with PHPUnit by Chris Hartjes.
Mastering Object-Orientated PHP - A book about object-orientated PHP by Brandon Savage.
Signaling PHP - A book about catching PCNTL signals in CLI scripts by Cal Evans.
Securing PHP: Core Concepts - A book about common security terms and practices for PHP by Chris Cornutt.
Modernising Legacy Applications in PHP - A book about modernising legacy PHP applications by Paul M. Jones.
Other Books
!Books related to general computing and web development.
!The Linux Command Line - A book about the Linux command line by William Shotts.
Understanding Computation - A book about computation theory by Tom Stuart.
The Tangled Web — Securing Web Applications - A book about securing web applications by Michal Zalewski.
Elasticsearch: The Definitive Guide - A guide to working with Elasticsearch by Clinton Gormley and Zachary Tong.
PHP Videos
!Fantastic PHP-related videos.
!Taking PHP Seriously - A talk outlining PHP's strengths by Keith Adams of Facebook.
PHP Town Hall - A casual PHP podcast by Ben Edmunds and Phil Sturgeon.
Programming with Anthony - A video series by Anthony Ferrara.
PHP Reading
!PHP-releated reading materials.
!Create Your Own PHP Framework - A series of articles on how to make your own PHP framework by Fabien Potencier.
Seven Ways to Screw Up BCrypt - An article about correct BCrypt implementation.
Preventing CSRF Attacks - An article on preventing CSRF attacks.
Don't Worry About BREACH - An article about the BREACH hack and CSRF tokens.
On PHP 5.3, Lamda Functions and Closures - An article about lambda functions and closures.
Use Env - An article about using the unix environment helper.
Composer Primer - A Composer primer.
Composer Versioning - An article about Composer versioning.
Composer Stability Flags - An article about Composer stability flags.
Innocent Villagefolk or a Pillagin’ Pirate? - An article about PHP taking ideas from other language.
Predicting Random Numbers in PHP - An article about generating random numbers.
A 20 Point List for Preventing XSS in PHP - An article about preventing XSS.
PHP Sucks! But I Like It! - An article about the pros and cons of PHP.
PHP Is Much Better Than You Think - An article about the PHP language and ecosystem.
PHP Internals Reading
!Reading materials related to the PHP internals or performance.
!PHP RFCs - The home of PHP RFCs (Request for Comments).
PHP Internals Book - An online book about PHP internals, written by three core developers.
Print vs Echo, Which One is Faster? - An article about print and echo performance.
The PHP Ternary Operator. Fast or Not? - An article ternary performance.
Disproving the Single Quotes Myth - An article about performance of single and double quoted strings.
You're Being Lied To - An article about internal ZVALs.
How Long is a Piece of String - An article about string internals.
Understanding OpCodes - An article about opcodes.
How Foreach Works - A detailed StackOverflow answer about foreach.
When Does Foreach Copy? - An article about the internals of foreach.
How Big Are PHP Arrays (And Values) Really? - An article about array internals.
PHP Evaluation Order - An article about evaluation order in PHP.
PHP Source Code for Developers: 1 2 3 4 - A series about the PHP source code.
Collecting Garbage: 1 2 3 - A series about the PHP garbage collection internals.
Contributing
Please see CONTRIBUTING for details.
*https://github.com/markets/awesome-ruby
community leaders?
*there may be others as well
Taylor Otwell DHH
<~
<~
Peter Cooper
Ryan Bates
Jeffrey Way
Josh Lockhart
<~
Christian Neukirchen
Konstantin Haase
phew… found no one like Aaron, Yehuda or Jim ;)
*RIP
so why am I praising PHP?
I don’t!
I could have done this talk maybe with any other lang
but don’t rest on our success
"I skate to where the puck is going to be, not where it has been."	

!
Wayne Gretsky
• Rails is awesome, 

but maybe not always the right tool for the job	

!
• look also at other frameworks	

!
• or write apps with no framework at all*	

!
• dive deeper into classic OOP + Design Patterns	

!
• Software Architecture in generell	

!
• new languages	

!
• read the source	

!
• care about your community
learn more about features which make ruby so awesome	

!
enumerable	

inject / reduce	

each_with_object	

to_proc	

blocks	

lamdbas	

stdlib	

rack	

middleware	

…
thx

More Related Content

What's hot

Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPKarsten Dambekalns
 
Finite State Queries In Lucene
Finite State Queries In LuceneFinite State Queries In Lucene
Finite State Queries In Luceneotisg
 
Python Tools for Visual Studio: Python na Microsoftovom .NET-u
Python Tools for Visual Studio: Python na Microsoftovom .NET-uPython Tools for Visual Studio: Python na Microsoftovom .NET-u
Python Tools for Visual Studio: Python na Microsoftovom .NET-uNikola Plejic
 
Best Python Online Training with Live Project by Expert
Best Python Online Training with Live Project by Expert Best Python Online Training with Live Project by Expert
Best Python Online Training with Live Project by Expert QA TrainingHub
 
RESTLess Design with Apache Thrift: Experiences from Apache Airavata
RESTLess Design with Apache Thrift: Experiences from Apache AiravataRESTLess Design with Apache Thrift: Experiences from Apache Airavata
RESTLess Design with Apache Thrift: Experiences from Apache Airavatasmarru
 
Taming the resource tiger
Taming the resource tigerTaming the resource tiger
Taming the resource tigerElizabeth Smith
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonIgor Anishchenko
 
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)GangSeok Lee
 

What's hot (9)

Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHP
 
Finite State Queries In Lucene
Finite State Queries In LuceneFinite State Queries In Lucene
Finite State Queries In Lucene
 
Python Tools for Visual Studio: Python na Microsoftovom .NET-u
Python Tools for Visual Studio: Python na Microsoftovom .NET-uPython Tools for Visual Studio: Python na Microsoftovom .NET-u
Python Tools for Visual Studio: Python na Microsoftovom .NET-u
 
Best Python Online Training with Live Project by Expert
Best Python Online Training with Live Project by Expert Best Python Online Training with Live Project by Expert
Best Python Online Training with Live Project by Expert
 
RESTLess Design with Apache Thrift: Experiences from Apache Airavata
RESTLess Design with Apache Thrift: Experiences from Apache AiravataRESTLess Design with Apache Thrift: Experiences from Apache Airavata
RESTLess Design with Apache Thrift: Experiences from Apache Airavata
 
Taming the resource tiger
Taming the resource tigerTaming the resource tiger
Taming the resource tiger
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased Comparison
 
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
 
ApacheCon09: Avro
ApacheCon09: AvroApacheCon09: Avro
ApacheCon09: Avro
 

Similar to The return of an old enemy

Real time cloud native open source streaming of any data to apache solr
Real time cloud native open source streaming of any data to apache solrReal time cloud native open source streaming of any data to apache solr
Real time cloud native open source streaming of any data to apache solrTimothy Spann
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1nhepner
 
Libraries Frameworks And Cms
Libraries Frameworks And CmsLibraries Frameworks And Cms
Libraries Frameworks And CmsMark Casias
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!gagravarr
 
Interoperable PHP
Interoperable PHPInteroperable PHP
Interoperable PHPweltling
 
PHP Reference Guide
PHP Reference GuidePHP Reference Guide
PHP Reference GuideGlowTouch
 
Overview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics FrameworkOverview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics FrameworkSlim Baltagi
 
chapter 5 Server-Side Scripting (PHP).pdf
chapter 5 Server-Side Scripting (PHP).pdfchapter 5 Server-Side Scripting (PHP).pdf
chapter 5 Server-Side Scripting (PHP).pdfburasyacob012
 
aleph - Malware analysis pipelining for the masses
aleph - Malware analysis pipelining for the massesaleph - Malware analysis pipelining for the masses
aleph - Malware analysis pipelining for the massesJan Seidl
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolAlessandro Cinelli (cirpo)
 
A high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTSA high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTSSmile I.T is open
 
Unified Batch and Real-Time Stream Processing Using Apache Flink
Unified Batch and Real-Time Stream Processing Using Apache FlinkUnified Batch and Real-Time Stream Processing Using Apache Flink
Unified Batch and Real-Time Stream Processing Using Apache FlinkSlim Baltagi
 
Python standard library &amp; list of important libraries
Python standard library &amp; list of important librariesPython standard library &amp; list of important libraries
Python standard library &amp; list of important librariesgrinu
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformAntonio Peric-Mazar
 

Similar to The return of an old enemy (20)

Real time cloud native open source streaming of any data to apache solr
Real time cloud native open source streaming of any data to apache solrReal time cloud native open source streaming of any data to apache solr
Real time cloud native open source streaming of any data to apache solr
 
Wp Presentation
Wp PresentationWp Presentation
Wp Presentation
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1
 
Libraries Frameworks And Cms
Libraries Frameworks And CmsLibraries Frameworks And Cms
Libraries Frameworks And Cms
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
 
Interoperable PHP
Interoperable PHPInteroperable PHP
Interoperable PHP
 
Lamp
LampLamp
Lamp
 
PHP Reference Guide
PHP Reference GuidePHP Reference Guide
PHP Reference Guide
 
Overview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics FrameworkOverview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics Framework
 
Laravel 4 presentation
Laravel 4 presentationLaravel 4 presentation
Laravel 4 presentation
 
chapter 5 Server-Side Scripting (PHP).pdf
chapter 5 Server-Side Scripting (PHP).pdfchapter 5 Server-Side Scripting (PHP).pdf
chapter 5 Server-Side Scripting (PHP).pdf
 
aleph - Malware analysis pipelining for the masses
aleph - Malware analysis pipelining for the massesaleph - Malware analysis pipelining for the masses
aleph - Malware analysis pipelining for the masses
 
PHP com MongoDB
PHP com MongoDBPHP com MongoDB
PHP com MongoDB
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
A high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTSA high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTS
 
Scrapy.for.dummies
Scrapy.for.dummiesScrapy.for.dummies
Scrapy.for.dummies
 
Webtechnologies
Webtechnologies Webtechnologies
Webtechnologies
 
Unified Batch and Real-Time Stream Processing Using Apache Flink
Unified Batch and Real-Time Stream Processing Using Apache FlinkUnified Batch and Real-Time Stream Processing Using Apache Flink
Unified Batch and Real-Time Stream Processing Using Apache Flink
 
Python standard library &amp; list of important libraries
Python standard library &amp; list of important librariesPython standard library &amp; list of important libraries
Python standard library &amp; list of important libraries
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 

More from DonSchado

Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with RackDonSchado
 
Rails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsRails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsDonSchado
 
Decorator & Presenter Design Pattern
Decorator & Presenter Design PatternDecorator & Presenter Design Pattern
Decorator & Presenter Design PatternDonSchado
 
Ruby's require, autoload and load methods
Ruby's require, autoload and load methodsRuby's require, autoload and load methods
Ruby's require, autoload and load methodsDonSchado
 
A taste of Computer Science
A taste of Computer ScienceA taste of Computer Science
A taste of Computer ScienceDonSchado
 
Mutation testing with the mutant gem
Mutation testing with the mutant gemMutation testing with the mutant gem
Mutation testing with the mutant gemDonSchado
 
Rails - How does it work?
Rails - How does it work?Rails - How does it work?
Rails - How does it work?DonSchado
 

More from DonSchado (7)

Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with Rack
 
Rails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsRails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on Rails
 
Decorator & Presenter Design Pattern
Decorator & Presenter Design PatternDecorator & Presenter Design Pattern
Decorator & Presenter Design Pattern
 
Ruby's require, autoload and load methods
Ruby's require, autoload and load methodsRuby's require, autoload and load methods
Ruby's require, autoload and load methods
 
A taste of Computer Science
A taste of Computer ScienceA taste of Computer Science
A taste of Computer Science
 
Mutation testing with the mutant gem
Mutation testing with the mutant gemMutation testing with the mutant gem
Mutation testing with the mutant gem
 
Rails - How does it work?
Rails - How does it work?Rails - How does it work?
Rails - How does it work?
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
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.pdfsudhanshuwaghmare1
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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 educationjfdjdjcjdnsjd
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

The return of an old enemy

  • 1. THE RETURN OF AN OLD ENEMY Marco Schaden | @donschado *this talk may contain satire
  • 2. for long time we were unique for our community
  • 3. we were unique for our tools
  • 4. but for too long we felt safe…
  • 5. the enemy has reformed and is in the majority
  • 6. TL;DR: he learned a lot…
  • 7. PHP Code Style Guide Dependency Management Best Practices Software Design Patterns OOP Dependency Injection Database Abstraction Layers Exception-Handling AutomatedTests Deployment Version Control Meta Programming Community
  • 8. they are well organized to improve
  • 9. Awesome PHP A curated list of amazingly awesome PHP libraries, resources and shiny things. !Awesome PHP Dependency Management Dependency Management Extras Frameworks Framework Extras Framework Components Micro Frameworks Micro Framework Extras Templating Static Site Generators HTTP URL Email Files Streams Dependency Injection Imagery Testing Documentation Security Code Analysis Build Tools Task Runners Navigation Asset Management Geolocation Date and Time Event Logging E-commerce PDF ORM and Datamapping NoSQL Queue Search Command Line Authentication Markup Text and Numbers Filtering and Validation REST and API Caching Data Structure and Storage Notifications Deployment Third Party APIs Extensions Miscellaneous Software PHP Installation Development Environment Virtual Machines Web Applications Resources PHP Websites Other Websites PHP Books Other Books PHP Videos PHP Reading PHP Internals Reading Contributing Dependency Management !Libraries for dependency and package management. !Composer/Packagist - A package and dependency manager. Composer Installers - A multi framework Composer library installer. Pickle - A PHP extension installer. Dependency Management Extras !Extras related to dependency management. !Satis - A static Composer repository generator. Composition - A library to check your Composer environment at runtime. Poser - A Composer class aliasing library. Version - A parsing and comparison library for semantic versioning. NameSpacer - A library to convert from underscores to namespaces. Patch Installer - A library to install patches using Composer. Composer Checker - A tool to validate Composer configurations. Frameworks !Web development frameworks. !Symfony2 - A framework comprised of individual components. Zend Framework 2 - Another framework comprised of individual components. Laravel 4 - A simple PHP framework. Aura PHP - A framework of independent components. Phalcon - A framework implemented as a C extension. Framework Extras !Extras related to web development frameworks. !Symfony CMF - A Content Management Framework to create custom CMS. Knp RAD Bundle - A Rapid Application Development (RAD) bundle for Symfony 2. Framework Components !Standalone component from web development frameworks. !Symfony2 Components - The components that make Symfony2. Zend Framework 2 Components - The components that make ZF2. Aura Components - A package of PHP 5.4 components. Hoa Project - Another package of PHP components. Micro Frameworks !Micro frameworks and routers. !Silex - A micro framework built around Symfony2 components. Slim - Another simple micro framework. Bullet PHP - A micro framework for building REST APIs. Fast Route - A fast routing library. Pux - Another fast routing library. Micro Framework Extras !Extras related to micro frameworks and routers. !Silex Skeleton - A project skeleton for Silex. Silex Web Profiler - A web debug toolbar for Silex. Stack - A library of stackable middleware for Silex/Symfony. Slim Skeleton - A skeleton for Slim. Slim View - A collection of custom views for Slim. Slim Middleware - A collection of custom middleware for Slim. Templating !Libraries and tools for templating and lexing. !Twig - A comprehensive templating language. Twig Cache Extension - A template fragment cache library for Twig. Mustache - A PHP implementation of the Mustache template language. Phly Mustache - Another PHP implementation of the Mustache template language. MtHaml - A PHP implementation of the HAML template language. Plates - A native PHP templating library. Lex - A lightweight template parser. Static Site Generators !Tools for pre-processing content to generate web pages. !Sculpin - A tool that converts Markdown and Twig into static HTML. Phrozn - Another tool that converts Textile, Markdown and Twig into HTML. HTTP !Libraries for working with HTTP and scraping websites. !Guzzle - A comprehensive HTTP client. Buzz - Another HTTP client. Requests - A simple HTTP library. HTTPFul - A chainable HTTP client. Goutte - A simple web scraper. PHP VCR - A library for recording and replaying HTTP requests. URL !Libraries for parsing URLs. !Purl - A URL manipulation library. PHP Domain Parser - A domain suffix parser library. Email !Libraries for sending and parsing email. !SwiftMailer - A mailer solution. PHPMailer - Another mailer solution. Fetch - An IMAP library. Email Reply Parser - An email reply parser library. Stampie - A library for email services such as SendGrid, PostMark, MailGun and Mandrill. Files !Libraries for file manipulation and MIME type detection. !Gaufrette - A filesystem abstraction layer. Flysystem - Another filesystem abstraction layer. Canal - A library to determine internet media types. Apache MIME Types - A library that parses Apache MIME types. Ferret - A MIME detection library. Hoa Mime - Another MIME detection library. Lurker - A resource tracking library. PHP File Locator - A library for locating files in large projects. PHP FFmpeg - A wrapper for the FFmpeg video library. CSV - A CSV data manipulation library. Streams !Libraries for working with streams. !Streamer - A simple object-orientated stream wrapper library. Dependency Injection !Libraries that implement the dependency injection design pattern. !Pimple - A tiny dependency injection container. Auryn - Another dependency injection container. Orno Di - Another flexible dependency injection container. PHP DI - A dependency injection implementation using annotations. Acclimate - A common interface to dependency injection containers and service locators. Imagery !Libraries for manipulating images. !Imagine - An image manipulation library. PHP Image Workshop - Another image manipulation library. Intervention Image - Another image manipulation library. GIF Frame Extractor - A library to extract GIF animation frame information. GIF Creator - A library to create GIF animations from multiple images. Image With Text - A library for embedding text into images. Color Extractor - A library for extracting colours from images. Testing !Libraries for testing codebases and generating test data. !PHPUnit - A unit testing framework. DBUnit - A database testing library for PHPUnit. ParaTest - A parallel testing library for PHPUnit. PHPSpec - A design by specification unit testing library. Codeception - A full stack testing framework. Atoum - A simple testing library. Mockery - A mock object library for testing. Phake - Another mock object library for testing. Parody - Yet another mock object library for testing. Sismo - A continuous testing server library. Faker - A fake data generator library. Samsui - Another fake data generator library. Alice - An expressive fixture generation library. Behat - A behaviour driven development (BDD) testing framework. Pho - Another behaviour driven development testing framework. Mink - Web acceptance testing. HTTP Mock - A library for mocking HTTP requests in unit tests. VFS Stream - A virtual filesystem stream wrapper for testing. VFS - Another virtual filesystem for testing. Locust - A modern load test library written in Python. Travis CI - A continuous integration platform. PHPCI - An open source continuous integration platform for PHP. Documentation !Libraries for generating project documentation. !Sami - An API documentation generator. APIGen - Another API documentation generator. PHP Documentor 2 - A documentation generator. phpDox - A documentation generator for PHP projects (that is not limited to API documentation). Security !Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities. !HTML Purifier - A standards compliant HTML filter. RandomLib - A library for generating random numbers and strings. True Random - A library that generates random numbers using www.random.org. SecurityMultiTool - A PHP security library. Password Compat - A compatibility library for the new PHP 5.5 password functions. PHPAss - A portable password hashing framework. PHP Password Lib - A library for generating and validating passwords. Password Policy - A password policy library for PHP and JavaScript. Password Validator - A library for validating and upgrading password hashes. PHPSecLib - A pure PHP secure communications library. TCrypto - A simple encrypted key-value storage library. PHP IDS - A structured PHP security layer. PHP SSH - An experimental object orientated SSH wrapper library. IniScan - A tool that scans PHP INI files for security. SensioLabs Security Check - A web tool to check your Composer dependencies for security advisories. Zed - An integrated penetration testing tool for web applications. Code Analysis !Libraries and tools for analysing, parsing and manipulation codebases. !PHP Parser - A PHP parser written in PHP. PHPPHP - A PHP VM implementation in PHP. PHPSandbox - A PHP sandbox environment. Dissect - A set of tools for lexical and syntactical analysis. PHP Mess Detector - A library that scans code for bugs, sub-optimal code, unused parameters and more. PHP Code Sniffer - A library that detects PHP, CSS and JS coding standard violations. PHPCPD - A library that detects copied and pasted code. PHP Analyser - A library for analysing PHP code to find bugs and errors. PHP CS Fixer - A coding standard fixer library. PHP Manipulator - A library for analysing and modifying PHP Source Code. PHP Metrics - A static metric library. PHP Refactoring Browser - A command line utility for refactoring PHP code. UBench - A simple micro benchmark library. Athletic - An annotation based benchmark framework. Mondrian - A code analysis tool using Graph Theory. PHP Debug Bar - A debugging toolbar. PHP Console - A web debugging console. Barbushin PHP Console - Another web debugging console using Google Chrome. PHPDBG - An interactive PHP debugger. Scrutinizer - A web tool to scrutinise PHP code. PHPLOC - A tool for quickly measuring the size of a PHP project. xDebug - A debug and profile tool for PHP. xHprof - Another profiling tool for PHP. Build Tools !Project build and automation tools. !Go - A simple PHP build tool. Bob - A simple project automation tool. Phake - A rake PHP clone library. Box - A utility to build PHAR files. Phing - A PHP project build system inspired by Apache Ant. Task Runners !Libraries for automating and running tasks. !Task - A pure PHP task runner inspired by Grunt and Gulp. Robo - A PHP Task runner with object-orientated configurations. Bldr - A PHP Task runner built on Symfony components. Navigation !Tools for building navigation structures. !KnpMenu - A menu library. Cartographer - A sitemap generation library. Asset Management !Tools for managing, compressing and minifying website assets. !Assetic - An asset manager pipeline library. Pipe - Another asset manager pipeline library. Munee - An asset optimiser library. JShrink - A JavaScript minifier library. Puli - A library for determining assets absolute paths. Geolocation !Libraries for geocoding addresses and working with latitudes and longitudes. !GeoCoder - A geocoding library. GeoTools - A library of geo-related tools. PHPGeo - A simple geo library. GeoJSON - A GeoJSON implementation. Date and Time !Libraries for working with dates and times. !Carbon - A simple DateTime API extension. ExpressiveDate - Another DateTime API extension. CalendR - A calendar management library. Event !Libraries that are event-driven or implement non-blocking event loops. !React - An event driven non-blocking I/O library. Rx.PHP - A reactive extension library. Ratchet - A web socket library. Hoa WebSocket - Another web socket library. Hoa EventSource - An event source library. Evenement - An event dispatcher library. FuelPHP Event - Another event dispatcher library. Logging !Libraries for generating and working with log files. !Monolog - A comprehensive logger. KLogger - An easy-to-use PSR-3 compliant logging class. E-commerce !Libraries and applications for taking payments and building online e-commerce stores. !OmniPay - A framework agnostic multi-gateway payment processing library. Payum - A payment abstraction library. Sylius - An open source e-commerce solution. Thelia - Another open source e-commerce solution. Money - A PHP implementation of Fowler's money pattern. Sebastian Money - Another library for working with monetary values. Swap - An exchange rates library. PDF !Libraries and software for working with PDF files. !Snappy - A PDF and image generation library. WKHTMLToPDF - A tool to convert HTML to PDF. ORM and Datamapping !Libraries that implement object-relational mapping or datamapping techniques. !Doctrine - A comprehensive DBAL and ORM. Doctrine Migrations - A migration library for Doctrine. Doctrine Extensions - A collection of Doctrine behavioural extensions. Propel - A fast ORM. Eloquent - The Laravel 4 ORM. Baum - A nested set implementation for Eloquent. Spot - A MySQL datamapper ORM. RedBean - A lightweight, configuration-less ORM. PHP ActiveRecord - A PHP Active Record implementation. Paris and Idiorm - A minimalist database library. Pomm - An Object Model Manager for PostgreSQL. Migrations - A migration management library. PHPMig - Another migration management library. Phinx - Another database migration library. ProxyManager - A set of utilities to generate proxy objects for data mappers. NoSQL !Libraries for working with "NoSQL" backends. !MongoQB - A MongoDB query builder library. Monga - A MongoDB abstraction library. Predis - A feature complete Redis library. Queue !Libraries for working with event and task queues. !Pheanstalk - A Beanstalkd client library. PHP AMQP - A pure PHP AMQP library. Thumper - A RabbitMQ pattern library. Bernard - A multibackend abstraction library. Search !Libraries and software for indexing and performing search queries on data. !ElasticSearch PHP - The official client library for ElasticSearch. Elastica - A client library for ElasticSearch. Solarium - A client library for Solr. Command Line !Libraries for building command line utilities. !Boris - A tiny PHP REPL. PsySH - Another PHP REPL. Pecan - An event-driven, non-blocking shell. GetOpt - A command line opt parser. OptParse - Another command line opt parser. Commando - Another simple command line opt parser. GetOptionKit - Another command line opt parser. Cron Expression - A library to calculate cron run dates. ShellWrap - A simple command line wrapper library. Hoa Console - Another command line library. Shunt - A library for running commands in parallel on multiple remote machines. Authentication !Libraries for implementing authentications schemes. !Sentry - A framework agnostic authentication & authorisation library. Sentry Social - A library for social network authentication. OPAuth - A multi-provider authentication framework. OAuth2 - An OAuth2 authentication server, resource server and client library. OAuth2 Server - Another OAuth2 server implementation. PHP oAuthLib - Another OAuth library. TwitterOAuth - A Twitter OAuth library. TwitterSDK - A fully tested Twitter SDK. Hawk - A Hawk HTTP authentication library. HybridAuth - An open source social sign on library. Markup !Libraries for working with markup. !Decoda - A lightweight markup parser library. PHP Markdown - A Markdown parser. Dflydev Markdown - Another Markdown parser. Parsedown - Another Markdown parser. Ciconia - Another Markdown parser that supports Github flavoured Markdown. Cebe Markdown - An fast and extensible Markdown parser. HTML5 PHP - An HTML5 parser and serializer library. Text and Numbers !Libraries for parsing and manipulating text and numbers. !ANSI to HTML5 - An ANSI to HTML5 converter library. Patchwork UTF-8 - A portable library for working with UTF-8 strings. Hoa String - Another UTF-8 string library. Stringy - A string manipulation library with multibyte support. Numbers PHP - A library for working with numbers. Math - A library for working with large numbers. Color Jizz - A library for manipulating and converting colours. UUID - A library for generating UUIDs. Slugify - A library to convert strings to slugs. Urlify - A PHP port of Django's URLify.js. Text - A text manipulation library. PHP Units of Measure - A library for converting between units of measure. PHP Conversion - Another library for converting between units of measure. SQL Formatter - A library for formatting SQL statements. ByteUnits - A library to parse, format and convert byte units in binary and metric systems. UA Parser - A library for parsing user agent strings. LibPhoneNumber for PHP - A PHP implementation of Google's phone number handling library. Filtering and Validation !Libraries for filtering and validating data. !Filterus - A simple PHP filtering library. Respect Validate - A simple validation library. Valitron - Another validation library. Upload - A library for handling file uploads and validation. DMS Filter - An annotation filtering library. MetaYaml - A schema validation library that supports YAML, JSON and XML. ISO-codes - A library for validating various ISO and ZIP codes (IBAN, SWIFT/BIC, BBAN, VAT, SSN, UKNIN). REST and API !Libraries and web tools for developing REST-ful APIs. !Apigility - An API builder built with Zend Framework 2. Hateoas - A HATEOAS REST web service library. HAL - A Hypertext Application Language (HAL) builder library. Negotiation - A content negotiation library. Caching !Libraries for caching data. !Alternative PHP Cache (APC) - Open opcode cache for PHP. Cache - A caching library (part of Doctrine). Stash - Another library for caching. Data Structure and Storage !Libraries that implement data structure or storage techniques. !Ardent - A library of data structures. PHP Collections - A simple collections library. Serializer - A library for serialising and de-serialising data. PHP Object Storage - A library for object storage. Fractal - A library for converting complex data structures to JSON output. Notifications !Libraries for working with notification software. !Nod - A notification library (e.g., Growl). Notificato - A library for handling push notifications. Notification Pusher - A standalone library for device push notifications. Notificator - A lightweight notification library. Deployment !Pomander - A deployment tool for PHP applications. Rocketeer - A fast and easy deployer for the PHP world. Envoy - A tool to run SSH tasks with PHP. Third Party APIs !Libraries for accessing third party APIs. !Amazon Web Service SDK - The official PHP AWS SDK library. S3 Stream Wrapper - A stream wrapper library for Amazon S3. Stripe - The official Stripe PHP library. Campaign Monitor - The official Campaign Monitor PHP library. Digital Ocean - A library to interface with the Digital Ocean API. Github - A library to interface with the Github API. PHP Github API - Another library to interface with the Github API. Twitter OAuth - A library to interface with Twitter's OAuth workflow. Twitter REST - A library to interact with Twitter's REST API. Dropbox SDK - The official PHP Dropbox SDK library. Twilio - The official Twilio PHP REST API. Mailgun The official Mailgun PHP API. Extensions !Libraries to help build PHP extensions. !PHP CPP - A C++ library for developing PHP extensions. Miscellaneous !Useful libraries or tools that don't fit in the categories above. !Spork - A process forking library. JSON Lint - A JSON lint utility. JSONPCallbackValidator - A library for validating JSONP callbacks. Pagerfanta - A pagination library. Ruler - A simple stateless production rules engine. LiteCQRS - A CQRS (Command Query Responsibility Separation) library. Sslurp - A library that makes dealing with SSL suck less. PHP Option An option type library. Metrics - A simple metrics API library. Sabre VObject - A library for parsing VCard and iCalendar objects. Annotations - An annotations library (part of Doctrine). Whoops - A pretty error handling library. Finite - A simple PHP finite state machine. LadyBug - A dumper library. Plum - A deployer library. Procrastinator - A library for running time consuming tasks. Compose - A function composition library. SuperClosure - A library that allows Closures to be serialized. Jumper - A remote service executor library. Underscore - A PHP port of the Underscore JS library. PHP PassBook - A PHP library for iOS PassBook. PHP Expression - A PHP expression language. RMT - A library for versioning and releasing software. Wise - A configuration manager. Opengraph - An opengraph library. Essence - A library for extracting web media. Embera - An Oembed consumer library. Graphviz - A Graphviz library. Monad PHP - A simple Monad library. Flux - A regular expression building library. Patchwork - A library for redefining userland functions. Galapagos - Evolutionary language transformation. Design Patterns PHP - A repository of software patterns implemented in PHP. PHPCR - A PHP port of the Java Content Repository (JCR). Functional PHP - A functional programming library. ClassPreloader - A library for optimising autoloading. Lib Country - A library for country and subdivision data. Lib Accessor - A library for simplifying accessors. PHPStack - A TCP/IP stack proof of concept written in PHP. Nmap - A PHP wrapper around Nmap. Code Mover - A library for moving code. Iter - A library that provides iteration primitives using generators. Lambda PHP - A Lambda calculus interpreter in PHP. Country List - A list of all countries with names and ISO 3166-1 codes. PHP-GPIO - A library for playing with the Raspberry PI's GPIO pins. Software Software for creating a development environment. !PHP Installation !Tools to help install and manage PHP on your computer. !HomeBrew - A package manager for OSX. HomeBrew PHP - A PHP tap for HomeBrew. PHP OSX - A PHP installer for OSX. PHP Brew - A PHP version manager and installer. PHP Env - Another PHP version manager. PHP Switch - Another version manager. PHP Build - Another PHP version installer. VirtPHP - A tool for creating and managing isolated PHP environments. Development Environment !Software and tools for creating a sandboxed development environment. !Vagrant - A portable development environment utility. Ansible - A radically simple orchestration framework. Puppet - A server automation framework and application. PuPHPet - A web tool for building PHP development virtual machines. Protobox - Another web tool for building PHP development virtual machines. Phansible - A web tool for building PHP development virtual machines with Ansible. Virtual Machines !Alternative PHP virtual machines. !HipHop PHP - A Virtual Machine, Runtime and JIT for PHP by Facebook. HippyVM - Another PHP virtual machine. Hack - A programming language for HHVM that interoperates seamlessly with PHP. Web Applications !Web-based applications and tools. !3V4L - An online PHP shell. DBV - A database version control application. PHP Queue - An application for managing queueing backends. Composer as a Service - A tool for downloading Composer packages as a zip file. MailCatcher - A web tool for capturing and viewing emails. Resources Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge. !PHP Websites !Useful PHP-related websites. !PHP The Right Way - A PHP best practice quick reference guide. PHP Best Practices - A PHP best practice guide. PHP Weekly - A weekly PHP newsletter. PHP Security - A guide to PHP security. PHP FIG - The PHP Framework Interoperability Group. PHP UG - A website to help people locate their nearest PHP user group (UG). Seven PHP - A website that interviews members of the PHP community. Nomad PHP - A online PHP learning resource. Other Websites !Useful websites related to web development. !The Open Web Application Security Project (OWASP) - An open software security community. WebSec IO - A web security community resource. Web Advent - An advent calendar for web developers. Semantic Versioning - A website explaining semantic versioning. Atlassian Git Tutorials - A series of Git tutorials. Hg Init - A series of Mercurial tutorials. Servers for Hackers - A newsletter about server management. PHP Books !Fantastic PHP-related books. !Scaling PHP Applications - An ebook about scaling PHP applications by Steve Corona. The Grumpy Programmer's Guide to Building Testable PHP Applications - A book about building testing PHP applications by Chris Hartjes. Grumpy PHPUnit - A book about unit testing with PHPUnit by Chris Hartjes. Mastering Object-Orientated PHP - A book about object-orientated PHP by Brandon Savage. Signaling PHP - A book about catching PCNTL signals in CLI scripts by Cal Evans. Securing PHP: Core Concepts - A book about common security terms and practices for PHP by Chris Cornutt. Modernising Legacy Applications in PHP - A book about modernising legacy PHP applications by Paul M. Jones. Other Books !Books related to general computing and web development. !The Linux Command Line - A book about the Linux command line by William Shotts. Understanding Computation - A book about computation theory by Tom Stuart. The Tangled Web — Securing Web Applications - A book about securing web applications by Michal Zalewski. Elasticsearch: The Definitive Guide - A guide to working with Elasticsearch by Clinton Gormley and Zachary Tong. PHP Videos !Fantastic PHP-related videos. !Taking PHP Seriously - A talk outlining PHP's strengths by Keith Adams of Facebook. PHP Town Hall - A casual PHP podcast by Ben Edmunds and Phil Sturgeon. Programming with Anthony - A video series by Anthony Ferrara. PHP Reading !PHP-releated reading materials. !Create Your Own PHP Framework - A series of articles on how to make your own PHP framework by Fabien Potencier. Seven Ways to Screw Up BCrypt - An article about correct BCrypt implementation. Preventing CSRF Attacks - An article on preventing CSRF attacks. Don't Worry About BREACH - An article about the BREACH hack and CSRF tokens. On PHP 5.3, Lamda Functions and Closures - An article about lambda functions and closures. Use Env - An article about using the unix environment helper. Composer Primer - A Composer primer. Composer Versioning - An article about Composer versioning. Composer Stability Flags - An article about Composer stability flags. Innocent Villagefolk or a Pillagin’ Pirate? - An article about PHP taking ideas from other language. Predicting Random Numbers in PHP - An article about generating random numbers. A 20 Point List for Preventing XSS in PHP - An article about preventing XSS. PHP Sucks! But I Like It! - An article about the pros and cons of PHP. PHP Is Much Better Than You Think - An article about the PHP language and ecosystem. PHP Internals Reading !Reading materials related to the PHP internals or performance. !PHP RFCs - The home of PHP RFCs (Request for Comments). PHP Internals Book - An online book about PHP internals, written by three core developers. Print vs Echo, Which One is Faster? - An article about print and echo performance. The PHP Ternary Operator. Fast or Not? - An article ternary performance. Disproving the Single Quotes Myth - An article about performance of single and double quoted strings. You're Being Lied To - An article about internal ZVALs. How Long is a Piece of String - An article about string internals. Understanding OpCodes - An article about opcodes. How Foreach Works - A detailed StackOverflow answer about foreach. When Does Foreach Copy? - An article about the internals of foreach. How Big Are PHP Arrays (And Values) Really? - An article about array internals. PHP Evaluation Order - An article about evaluation order in PHP. PHP Source Code for Developers: 1 2 3 4 - A series about the PHP source code. Collecting Garbage: 1 2 3 - A series about the PHP garbage collection internals. Contributing Please see CONTRIBUTING for details. *https://github.com/markets/awesome-ruby
  • 10.
  • 11.
  • 12.
  • 13. community leaders? *there may be others as well
  • 15.
  • 17.
  • 18.
  • 20.
  • 21. phew… found no one like Aaron, Yehuda or Jim ;) *RIP
  • 22. so why am I praising PHP?
  • 24. I could have done this talk maybe with any other lang
  • 25. but don’t rest on our success
  • 26. "I skate to where the puck is going to be, not where it has been." ! Wayne Gretsky
  • 27. • Rails is awesome, 
 but maybe not always the right tool for the job ! • look also at other frameworks ! • or write apps with no framework at all* ! • dive deeper into classic OOP + Design Patterns ! • Software Architecture in generell ! • new languages ! • read the source ! • care about your community
  • 28. learn more about features which make ruby so awesome ! enumerable inject / reduce each_with_object to_proc blocks lamdbas stdlib rack middleware …
  • 29. thx