SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
ElePHPants on speed	

RunningTYPO3 Flow on HipHopVM	

Inspiring Conference, March 28th 2014
Martin Helmich, Mittwald CM Service	

m.helmich@mittwald.de
Photo: George Lamson, CC BY-NC-SA	

http://www.flickr.com/photos/lamsongf/6415913075/
YOUR SPEAKER
Martin Helmich
Software architect at Mittwald
TYPO3 addicted since 2004	

Caffeine addicted since 2007
Sebastian Bergmann, CC BY-SA	

http://www.flickr.com/photos/sebastian_bergmann/2337231691/
Lexing
Parsing
Compilation
Execution
PHP execution,	

traditional
<?php	
!
$locations = [	
0 => "Kolbermoor",	
1 => "Espelkamp",	
2 => "Las Vegas"	
];	
!
$currentLoc = 0;	
$currentLocName = $locations[$currentLoc];	
!
if ($currentLoc === 2) {	
$greeting = "%s, baby!";	
} else {	
$greeting = "Hello %s!";	
}	
!
echo sprintf($greeting, $currentLocName) . "n";
Lexing
Parsing
Compilat
Executio
T_OPEN_TAG
T_VARIABLE
T_LNUMBER
T_DOUBLE_	

ARROW
T_CONSTANT_ENCAPSED_STRING
T_IF
T_ELSE
T_ECHO
T_STRING
Lexing
Parsing
Compilat
Executio
<?php	
!
$locations = [	
0 => "Kolbermoor",	
1 => "Espelkamp",	
2 => "Las Vegas"	
];	
!
$currentLoc = 0;	
$currentLocName = $locations[$currentLoc];	
!
if ($currentLoc === 2) {	
$greeting = "%s, baby!";	
} else {	
$greeting = "Hello %s!";	
}	
!
echo sprintf($greeting, $currentLocName) . "n";
Lexing
Parsing
Compilat
Executio
Variable	

assignment
Array	

constructor
Array	

accessor
Constant
Conditional	

statement
Boolean	

expression
Function	

call
Print	

statement
<?php	
!
$locations = [	
0 => "Kolbermoor",	
1 => "Espelkamp",	
2 => "Las Vegas"	
];	
!
$currentLoc = 0;	
$currentLocName = $locations[$currentLoc];	
!
if ($currentLoc === 2) {	
$greeting = "%s, baby!";	
} else {	
$greeting = "Hello %s!";	
}	
!
echo sprintf($greeting, $currentLocName) . "n";
Lexing
Parsing
Compilat
Executio
compiled vars: !0 = $locations, !1 = $currentLocationId, !2 = $currentLocationName,	
!3 = $greetingTemplate	
line # * op fetch ext return operands	
----------------------------------------------------------------	
4 0 > EXT_STMT 	
1 INIT_ARRAY ~0 'Kolbermoor', 0	
5 2 ADD_ARRAY_ELEMENT ~0 'Espelkamp', 1	
7 3 ADD_ARRAY_ELEMENT ~0 'Las+Vegas', 2	
4 ASSIGN !0, ~0	
9 5 EXT_STMT 	
6 ASSIGN !1, 0	
10 7 EXT_STMT 	
8 FETCH_DIM_R $3 !0, !1	
9 ASSIGN !2, $3	
12 10 EXT_STMT 	
11 IS_IDENTICAL ~5 !1, 2	
12 > JMPZ ~5, ->16	
13 13 > EXT_STMT 	
14 ASSIGN !3, '%25s%2C+baby%21'	
14 15 > JMP ->18	
15 16 > EXT_STMT 	
17 ASSIGN !3, 'Hello+%25s%21'	
18 18 > EXT_STMT 	
19 EXT_FCALL_BEGIN 	
20 SEND_VAR !3	
21 SEND_VAR !2	
22 DO_FCALL 2 $8 'sprintf'	
23 EXT_FCALL_END 	
24 CONCAT ~9 $8, '%0A'	
25 ECHO ~9	
19 26 > RETURN 1	
!
Lexing
Parsing
Compilat
Executio
Lexing
Parsing
Compilation
Execution
PHP execution,	

traditional
Lexing
Parsing
Compilation
Execution
Opcode	

Cache
PHP	

opcodes
PHP execution,	

opcode cache
opcodes executed	

by PHP interpreter
Lexing
Parsing
Compilation
Execution
HipHop	

bytecode
JIT	

compiler
HipHop	

intermediate	

representation
Code	

repository
x86-64/arm	

machine code
PHP execution,	

HipHopVM
executed as	

native machine code
AST
https://www.facebook.com/notes/facebook-engineering/the-hiphop-virtual-machine/10150415177928920	

http://www.hhvm.com/blog/2027/faster-and-cheaper-the-evolution-of-the-hhvm-jit
$whatAmI = "Dynamic typization is great!";	
!
if ($whatAmI > 0) {	
$whatAmI = [	
"But in many PHP programs,",	
"this is not excessively used."	
];	
} else {	
$whatAmI = FALSE;	
}
<?php	
!
$locations = [	
0 => "Kolbermoor",	
1 => "Espelkamp",	
2 => "Las Vegas"	
];	
!
$currentLoc = 0;	
$currentLocName = $locations[$currentLoc];	
!
if ($currentLoc === 2) {	
$greeting = "%s, baby!";	
} else {	
$greeting = "Hello %s!";	
}	
!
echo sprintf($greeting, $currentLocName) . "n";
Array of	

strings
Integer
String
How to install
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -	
echo deb http://dl.hhvm.com/debian wheezy main | tee /etc/apt/sources.list.d/hhvm.list	
sudo apt-get update	
sudo apt-get install hhvm
https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-on-Debian-7
RunningTYPO3 Flow	

on HHVM
One does not simply	

runTYPO3 Flow on
HHVM.
Flore Allemandou, CC BY-NC-SA	

http://www.flickr.com/photos/flore_frmoz/5031037626/
TYPO3.Flow/Classes/.../Core/Bootstrap.php ---|+++++++
TYPO3.Flow/Classes/.../Error/ErrorHandler.php -|+
TYPO3.Flow/Classes/.../Http/Headers.php |+++++
TYPO3.Flow/Classes/.../Mvc/Routing/ObjectPathMappingRepository.php -----|++++
TYPO3.Flow/Classes/.../Object/Configuration/ConfigurationArgument.php --|++++++++
TYPO3.Flow/Classes/.../Object/Configuration/ConfigurationProperty.php --|++++++++
TYPO3.Flow/Classes/.../Package/Package.php -|+
TYPO3.Flow/Classes/.../Security/AccountRepository.php -----|++++
TYPO3.Flow/Classes/.../Security/Policy/Role.php -|+++++
TYPO3.Flow/Classes/.../Security/Policy/RoleRepository.php -----|+++++++
TYPO3.Flow/Classes/.../Utility/Unicode/TextIterator.php -|+++++
TYPO3.Party/Classes/TYPO3/Party/Domain/Repository/PartyRepository.php -|+++
doctrine/dbal/lib/.../Driver/PDOConnection.php |+++++++++++++++++++++++++++++++++++++++
doctrine/dbal/lib/.../Driver/PDOStatement.php -|+++++++++++++++++++++++++++++++++++++++
Web/index.php |++ 	
TYPO3.Media/Classes/.../Domain/Model/Image.php -|++++ 	
TYPO3.Media/Classes/.../Domain/Model/ImageVariant.php -|++++ 	
TYPO3.Setup/Classes/.../Core/BasicRequirements.php -| 	
TYPO3.Setup/Classes/.../Core/RequestHandler.php |+++ 	
TYPO3.TYPO3CR/Classes/.../Migration/Command/NodeCommandController.php -|+++++	
imagine/imagine/lib/.../Filter/Basic/Resize.php --|++ 	
imagine/imagine/lib/.../Filter/Basic/Thumbnail.php --|++
Doctrine issue #372 (https://github.com/doctrine/dbal/pull/373),	

backported to 2.3
Hacks around various HHVM glitches
TYPO3 Flow 2.1
Unit tests, PHP 5.5
Tests: 4186, Assertions: 10145, Failures: 1, Incomplete: 1, Skipped: 95
Unit tests, HHVM	

(with compatibility patches)
Tests: 4186, Assertions: 10057, Failures: 14, Errors: 21, Incomplete: 1, Skipped: 95
99,98 %
99,14 %
Configuration/Production.hdf
Server {	
SourceRoot = /var/www/my-flow-site/Web	
DefaultDocument = index.php	
Port = 9000	
ThreadCount = 100	
}



Eval {	
Jit = true	
}	
!
VirtualHost {	
my-flow-site {	
Pattern = .*	
ServerVariables {	
FLOW_REWRITEURLS = 1	
FLOW_CONTEXT = Production	
}
Server {	
SourceRoot = /var/www/my-flow-site/Web	
DefaultDocument = index.php	
Port = 9000	
ThreadCount = 100	
}



Eval {	
Jit = true	
}	
!
VirtualHost {	
my-flow-site {	
Pattern = .*	
ServerVariables {	
FLOW_REWRITEURLS = 1	
FLOW_CONTEXT = Production	
}	
RewriteRules {	
persistentresources {	
pattern = ^/?(_Resources/Persistent/.{40})/.+(..+)	
to = $1$2	
}	
!
index {	
pattern = ^(.*)	
to = index.php/$1	
qsa = true	
}	
}	
}	
}	
!
StaticFile {	
Extensions {	
css = text/css	
js = text/javascript	
png = image/png	
jpg = image/jpeg	
}	
}
TYPO3:	
Flow:	
core:	
phpBinaryPathAndFilename: /usr/bin/hhvm	
subRequestPhpIniPathAndFilename: false
Configuration/Settings.yaml	

(configured for speed)
Use HHVM on sub-requests, too	

for even more performance.
Nico Kaiser, CC BY	

http://www.flickr.com/photos/nicokaiser/6070496071/
TYPO3:	
Flow:	
core:	
phpBinaryPathAndFilename: /usr/bin/php	
subRequestPhpIniPathAndFilename: /etc/php5/cli/php.ini
Always specify a php.ini or “false”.	

Automatic detection will fail.
Configuration/Settings.yaml	

(configured conservatively)
Start it
> FLOW_CONTEXT=PRODUCTION hhvm -m server -c Configuration/Production.hdf
0
20
40
60
80
Concurrency
50 100 150 200 250 300 350 400 450 500
PHP (Apache+opcache) HHVM (standalone)
HHVM (FCGI+Apache) HHVM (FCGI+nginx)
Requests per second	

TYPO3 Neos 1.0.2, production mode, with HHVM patches
0
4
8
12
16
Concurrency
50 100 150 200 250 300 350 400 450 500
PHP (Apache+opcache) HHVM (standalone)
HHVM (FCGI+Apache) HHVM (FCGI+nginx)
Response times	

TYPO3 Neos 1.0.2, production mode, with HHVM patches
91 %
93,25 %
95,5 %
97,75 %
100 %
Concurrency
50 100 150 200 250 300 350 400 450 500
PHP (Apache+opcache) HHVM (standalone)
HHVM (FCGI+Apache) HHVM (FCGI+nginx)
Availability	

TYPO3 Neos 1.0.2, production mode, with HHVM patches
Don't forget!	

Always enable production mode!
> composer create-project 	
mittwald-typo3/neos-hhvm-distribution
> composer create-project 	
mittwald-typo3/flow-hhvm-distribution
Contribute:	

https://github.com/mittwald/flow-hhvm
> composer create-project 	
mittwald-typo3/neos-hhvm-distribution
Apply compatibility patches	

Adjust configuration	

Create appropriate HDF configuration file
What does it do?
HHVM
FastCGI
Static	

files
nginx
Use HHVM as FastCGI backend
Server {	
Type = fastcgi	
FileSocket = /var/run/hhvm.sock	
SourceRoot = /var/www/my-flow-site/Web	
DefaultDocument = index.php	
ThreadCount = 100	
}
configuration.hdf
Use HHVM as FastCGI backend
ProxyPassMatch ^/_Resources !	
ProxyPass / fcgi://127.0.0.1:9000/var/www/flow/Web/
Apache configuration
location /_Resources {	
try_files $uri;	
}	
!
location / {	
fastcgi_pass 127.0.0.1:9000;	
fastcgi_index index.php;	
fastcgi_param SCRIPT_FILENAME /var/www/flow/Web/$fastcgi_script_name;	
include fastcgi_params;	
}
Nginx configuration
Tobias Schlitt, CC-BY-NC-SA	

http://www.flickr.com/photos/tobiasschlitt/2644905363/
Duncan
 Hull,

Weitere ähnliche Inhalte

Was ist angesagt?

Kubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserverKubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserverStefan Schimanski
 
Two Years In Production With Kubernetes - An Experience Report
Two Years In Production With Kubernetes - An Experience ReportTwo Years In Production With Kubernetes - An Experience Report
Two Years In Production With Kubernetes - An Experience ReportKasper Nissen
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoopclairvoyantllc
 
Patterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservicesPatterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservicesRachel Reese
 
Kube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul CzarkowskiKube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul CzarkowskiVMware Tanzu
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CDElad Hirsch
 
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!Rencore
 
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and PythonDEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and PythonCisco DevNet
 
Apache Airflow Introduction
Apache Airflow IntroductionApache Airflow Introduction
Apache Airflow IntroductionLiangjun Jiang
 
What's new in c# 8.0
What's new in c# 8.0What's new in c# 8.0
What's new in c# 8.0Moaid Hathot
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_awsKasper Nissen
 
Apollo Client - Meetup Curitiba
Apollo Client - Meetup CuritibaApollo Client - Meetup Curitiba
Apollo Client - Meetup CuritibaJaime Biernaski
 
Build a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless FrameworkBuild a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless Frameworkmasahitojp
 
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoToshiaki Maki
 
Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013Mohan Arumugam
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineRoman Kirillov
 
PostgREST Design Philosophy
PostgREST Design PhilosophyPostgREST Design Philosophy
PostgREST Design Philosophybegriffs
 
Serverless Architecture - A Gentle Overview
Serverless Architecture - A Gentle OverviewServerless Architecture - A Gentle Overview
Serverless Architecture - A Gentle OverviewCodeOps Technologies LLP
 

Was ist angesagt? (20)

Kubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserverKubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserver
 
Two Years In Production With Kubernetes - An Experience Report
Two Years In Production With Kubernetes - An Experience ReportTwo Years In Production With Kubernetes - An Experience Report
Two Years In Production With Kubernetes - An Experience Report
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
 
Patterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservicesPatterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservices
 
Kube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul CzarkowskiKube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul Czarkowski
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CD
 
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
 
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and PythonDEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
 
Apache Airflow Introduction
Apache Airflow IntroductionApache Airflow Introduction
Apache Airflow Introduction
 
What's new in c# 8.0
What's new in c# 8.0What's new in c# 8.0
What's new in c# 8.0
 
OpenIO Summit'17 - Grid for Apps
OpenIO Summit'17 - Grid for AppsOpenIO Summit'17 - Grid for Apps
OpenIO Summit'17 - Grid for Apps
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_aws
 
Apollo Client - Meetup Curitiba
Apollo Client - Meetup CuritibaApollo Client - Meetup Curitiba
Apollo Client - Meetup Curitiba
 
Build a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless FrameworkBuild a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless Framework
 
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
 
Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
 
PostgREST Design Philosophy
PostgREST Design PhilosophyPostgREST Design Philosophy
PostgREST Design Philosophy
 
Serverless Architecture - A Gentle Overview
Serverless Architecture - A Gentle OverviewServerless Architecture - A Gentle Overview
Serverless Architecture - A Gentle Overview
 
Serverless and React
Serverless and ReactServerless and React
Serverless and React
 

Ähnlich wie InspiringCon14: ElePHPants on speed: Running TYPO3 Flow on HipHop VM

Diving into HHVM Extensions (Brno PHP Conference 2015)
Diving into HHVM Extensions (Brno PHP Conference 2015)Diving into HHVM Extensions (Brno PHP Conference 2015)
Diving into HHVM Extensions (Brno PHP Conference 2015)James Titcumb
 
Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)James Titcumb
 
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016Codemotion
 
Php through the eyes of a hoster confoo
Php through the eyes of a hoster confooPhp through the eyes of a hoster confoo
Php through the eyes of a hoster confooCombell NV
 
Diving into HHVM Extensions (php[tek] 2016)
Diving into HHVM Extensions (php[tek] 2016)Diving into HHVM Extensions (php[tek] 2016)
Diving into HHVM Extensions (php[tek] 2016)James Titcumb
 
php & performance
 php & performance php & performance
php & performancesimon8410
 
Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Jeff Jones
 
Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009PHPBelgium
 
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Combell NV
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance毅 吕
 
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)Muhamad Al Imran
 
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)Muhamad Al Imran
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2Merixstudio
 
Php mysql training-in-mumbai
Php mysql training-in-mumbaiPhp mysql training-in-mumbai
Php mysql training-in-mumbaivibrantuser
 

Ähnlich wie InspiringCon14: ElePHPants on speed: Running TYPO3 Flow on HipHop VM (20)

Running PHP on Nginx
Running PHP on NginxRunning PHP on Nginx
Running PHP on Nginx
 
Diving into HHVM Extensions (Brno PHP Conference 2015)
Diving into HHVM Extensions (Brno PHP Conference 2015)Diving into HHVM Extensions (Brno PHP Conference 2015)
Diving into HHVM Extensions (Brno PHP Conference 2015)
 
Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)
 
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Php through the eyes of a hoster confoo
Php through the eyes of a hoster confooPhp through the eyes of a hoster confoo
Php through the eyes of a hoster confoo
 
Diving into HHVM Extensions (php[tek] 2016)
Diving into HHVM Extensions (php[tek] 2016)Diving into HHVM Extensions (php[tek] 2016)
Diving into HHVM Extensions (php[tek] 2016)
 
php & performance
 php & performance php & performance
php & performance
 
Running PHP on nginx
Running PHP on nginxRunning PHP on nginx
Running PHP on nginx
 
Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!
 
Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009
 
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11
 
php basics
php basicsphp basics
php basics
 
PHP
PHPPHP
PHP
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance
 
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)
 
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)
 
Php i basic chapter 3
Php i basic chapter 3Php i basic chapter 3
Php i basic chapter 3
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2
 
Php mysql training-in-mumbai
Php mysql training-in-mumbaiPhp mysql training-in-mumbai
Php mysql training-in-mumbai
 

Mehr von mhelmich

InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the FlowInspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flowmhelmich
 
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 FlowT3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flowmhelmich
 
Verteilte Konfigurationsmanagement-Systeme mit Open Source-Komponenten
Verteilte Konfigurationsmanagement-Systeme mit Open Source-KomponentenVerteilte Konfigurationsmanagement-Systeme mit Open Source-Komponenten
Verteilte Konfigurationsmanagement-Systeme mit Open Source-Komponentenmhelmich
 
T3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven DevelopmentT3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven Developmentmhelmich
 
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and JenkinsScalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkinsmhelmich
 
mm_forum 2.0
mm_forum 2.0mm_forum 2.0
mm_forum 2.0mhelmich
 

Mehr von mhelmich (6)

InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the FlowInspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
 
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 FlowT3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
 
Verteilte Konfigurationsmanagement-Systeme mit Open Source-Komponenten
Verteilte Konfigurationsmanagement-Systeme mit Open Source-KomponentenVerteilte Konfigurationsmanagement-Systeme mit Open Source-Komponenten
Verteilte Konfigurationsmanagement-Systeme mit Open Source-Komponenten
 
T3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven DevelopmentT3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven Development
 
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and JenkinsScalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
 
mm_forum 2.0
mm_forum 2.0mm_forum 2.0
mm_forum 2.0
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

InspiringCon14: ElePHPants on speed: Running TYPO3 Flow on HipHop VM