SlideShare una empresa de Scribd logo
1 de 109
Descargar para leer sin conexión
實戰 HHVM Extension 
Ricky Su 
@phpconf2014
About me 
Ricky 是我 哥 
● Symfony 愛好者 
● PHP也有Day 固定攝影師。 
● 目前在 擔任高級水電工。 
玩體驗 
● ricky@ez2.us 
● http://www.facebook.com/ricky.su.35 
● http://ricky.ez2.us/ (目前Server掛點中)
HHVM 
是什麼?
HipHop (HPHPc) 
● 由 Facebook 於 2010年2月2日發布 
● 將 PHP 轉換成 C++,再透過 g++ 編 
譯執行檔。 
● 於2013年2月19日被官方棄用。
HHVM 
● 透過 JIT 的方式加速 PHP 執行。 
● 運行速度已經超越 HPHPc。 
● 除了 PHP 外,還支援了 Hack Lang。 
● 只支援 x64 平台,未來會支援 ARM。 
● 目前 Facebook 的 PHP 程式皆運行在 
HHVM 上。
HHVM != PHP (Zend Engine)
HHVM 的執行效能?
fibonacci(40) 殘酷考驗
fibonacci(40) 
<?php 
function fibonacci($n) 
{ 
return $n<2?$n:fibonacci($n-1)+fibonacci($n-2); 
}
HHVM benchmark 
Less is better
HHVM Extension benchmark 
Less is better
但是開發 
HHVM Extension
有個東西一定要了解
Hack Lang
Hack = 強型態的 PHP
Hack Lang 
<?hh 
function fibonacci(int $n):int 
{ 
return $n<2?$n:fibonacci($n-1)+fibonacci($n-2); 
}
Hack Lang 
<?hh 
function print_nl(?string $n = null): void 
{ 
echo "$nn"; 
}
Hack Lang Reference 
http://goo.gl/PPB64m
HHVM Extension requirement 
● x64 OS 
● gcc >= 4.7.3 
● g++ >= 4.7.3 
● cmake >= 2.8.3
HHVM Extension 
寫起來很複雜嗎
只要三個檔案
就可以寫出 
fibonacci
config.cmake 
HHVM_EXTENSION( 
fibonacci fibonacci.cpp 
) 
HHVM_SYSTEMLIB( 
fibonacci ext_fibonacci.php 
)
ext_fibonacci.php 
<?hh 
<<__Native>> function fibonacci(int $n): int;
fibonacci.cpp 
#include "hphp/runtime/base/base-includes.h" 
namespace HPHP { 
static int64_t HHVM_FUNCTION(fibonacci, int64_t n) { 
return n<2?n:HHVM_FN(fibonacci)(n-2) + HHVM_FN(fibonacci)(n-1); 
} 
static class FibonacciExtension : public Extension { 
public: 
FibonacciExtension() : Extension("fibonacci") {} 
virtual void moduleInit() { 
HHVM_FE(fibonacci); 
loadSystemlib(); 
} 
} s_fibonacci_extension; 
HHVM_GET_MODULE(fibonacci) 
} // namespace HPHP
build extension 
$ hphpize 
$ cmake . 
$ make && make install
config.cmake 
HHVM_EXTENSION( 
fibonacci 
fibonacci.cpp 
foo.cpp 
bar.cpp 
other.cpp 
) 
extension 
name
config.cmake 
HHVM_EXTENSION( 
fibonacci 
fibonacci.cpp 
foo.cpp 
bar.cpp 
other.cpp 
) 
cpp files
config.cmake 
HHVM_SYSTEMLIB( 
fibonacci ext_fibonacci.php 
) 
PHP檔案只能一個 
而且命名必須是 ext_ 開頭
HNI (HHVM Native Interface) 
<?hh 
<<__Native>> function fibonacci(int $n): int; 
function echo_ fibonacci(int $n): void 
{ 
echo fibonacci($n); 
}
register extenstion 
static class FibonacciExtension : public Extension { 
public: 
FibonacciExtension() : Extension("fibonacci") {} 
virtual void moduleInit() { 
HHVM_FE(fibonacci); 
loadSystemlib(); 
} 
} s_fibonacci_extension; 
HHVM_GET_MODULE(fibonacci)
register extenstion 
static class FibonacciExtension : public Extension { 
public: 
FibonacciExtension() : Extension("fibonacci") {} 
virtual void moduleInit() { 
HHVM_FE(fibonacci); 
loadSystemlib(); 
} 
} s_fibonacci_extension; 
HHVM_GET_MODULE(fibonacci) 
定義函數
register extenstion 
static class FibonacciExtension : public Extension { 
public: 
FibonacciExtension() : Extension("fibonacci") {} 
virtual void moduleInit() { 
HHVM_FE(fibonacci); 
HHVM_FE(foo); 
loadSystemlib(); 
} 
} s_fibonacci_extension; 
HHVM_GET_MODULE(fibonacci) 
如果有還有其他 
函數接著定義
register extenstion 
static class FibonacciExtension : public Extension { 
public: 
FibonacciExtension() : Extension("fibonacci") {} 
virtual void moduleInit() { 
HHVM_FE(fibonacci); 
loadSystemlib(); 
} 
} s_fibonacci_extension; 
HHVM_GET_MODULE(fibonacci) 
讀取HNI
implement function 
static int64_t HHVM_FUNCTION(fibonacci, int64_t n) { 
return n<2?n:HHVM_FN(fibonacci)(n-2) + HHVM_FN 
(fibonacci)(n-1); 
}
implement function 
函數回傳值 
型態 
static int64_t HHVM_FUNCTION(fibonacci, int64_t n) { 
return n<2?n:HHVM_FN(fibonacci)(n-2) + HHVM_FN 
(fibonacci)(n-1); 
}
implement function 
函數名稱 
static int64_t HHVM_FUNCTION(fibonacci, int64_t n) { 
return n<2?n:HHVM_FN(fibonacci)(n-2) + HHVM_FN 
(fibonacci)(n-1); 
}
implement function 
參數型態定義 
static int64_t HHVM_FUNCTION(fibonacci, int64_t n) { 
return n<2?n:HHVM_FN(fibonacci)(n-2) + HHVM_FN 
(fibonacci)(n-1); 
}
implement function 
如果有多個參 
數接著定義 
static int64_t HHVM_FUNCTION(foo, int64_t n, const String &n2) 
{ 
// ... 
}
型態對應 
PHP Type C++ Parameter 
Type 
C++ Return 
Type 
void N/A void 
bool bool bool 
int int64_t int64_t 
float double double 
string const String & String 
array const Array & Array 
resource const Resource & Resource 
object const Object & Object 
mixed const Variant & Variant
以上官方文件 
都可以查到
但是
也只能查到這些了
如果要知道更多
RTFSC
接下來要踩地雷了
Native Class
HNI 
<?hh 
class foo { 
protected ?mixed $bar; 
<<__Native>> 
public function __construct(mixed $bar): void; 
<<__Native>> 
public function getBarNative(): ?mixed; 
public function getBar():?mixed { 
return $this->bar; 
} 
}
register extenstion 
static class FooExtension : public Extension { 
public: 
FooExtension() : Extension("foo") {} 
virtual void moduleInit() { 
HHVM_ME(foo, __construct); 
HHVM_ME(foo, getBarNative); 
loadSystemlib(); 
} 
} s_foo_extension; 
HHVM_GET_MODULE(foo)
register extenstion 
static class FooExtension : public Extension { 
public: 
FooExtension() : Extension("foo") {} 
virtual void moduleInit() { 
HHVM_ME(foo, __construct); 
HHVM_ME(foo, getBarNative); 
loadSystemlib(); 
} 
} s_foo_extension; 
HHVM_GET_MODULE(foo) 
註冊 foo 
__construct
implement class method 
static void HHVM_METHOD( 
__construct, 
const Variant &bar) { 
this_->o_set("bar", bar, "foo"); 
}
implement class method 
static void HHVM_METHOD( 
__construct, 
const Variant &bar) { 
this_->o_set("bar", bar, "foo"); 
} 
對應 PHP 中 
的 $this
implement class method 
static void HHVM_METHOD( 
__construct, 
const Variant &bar) { 
this_->o_set("bar", bar, "foo"); 
} 
存入成員變數
implement class method 
static void HHVM_METHOD( 
__construct, 
const Variant &bar) { 
this_->o_set("bar", bar, "foo"); 
} 
$this->bar
implement class method 
static void HHVM_METHOD( 
__construct, 
const Variant &bar) { 
this_->o_set("bar", bar, "foo"); 
} 
$this->bar = $bar
implement class method 
static void HHVM_METHOD( 
__construct, 
const Variant &bar) { 
this_->o_set("bar", bar, "foo"); 
} 
指定目前的 
context 為 foo
implement class method 
static Variant HHVM_METHOD(getBarNative) { 
return this_->o_get("bar", false, "foo"); 
}
implement class method 
static Variant HHVM_METHOD(getBarNative) { 
return this_->o_get("bar", false, "foo"); 
} 
$this->bar
implement class method 
static Variant HHVM_METHOD(getBarNative) { 
return this_->o_get("bar", false, "foo"); 
} 
如果讀取 $this- 
>bar 
發生錯誤時是否要 
丟出 error
implement class method 
static Variant HHVM_METHOD(getBarNative) { 
return this_->o_get("bar", false, "foo"); 
} 
指定目前的 
context 為 foo
Type Casting
Type Casting 
var.toBoolean(); 
var.toDouble(); 
var.toString(); 
var.toInt64(); 
var.toArray();
Object Access
Object Access 
C++ PHP 
object.o_get(...) $object->... 
object.o_set(...) $object->xxx = xxx 
object.instanceof(class) object instanceof class
String Access
String Access 
C++ PHP 
string = “hello ” + “world” $string = “hello ” . ”world” 
string += “foo” $string .= “foo” 
string1 == string2 $string1 == $string2 
string[1] $string[1] 
string.substr(1, 2) substr($string, 1, 2) 
string.size() strlen($string)
Array Access
Array Access 
Variant var = array[1]; 
Variant var = array[String(“key”)];
Array Access 
C++ PHP 
array.set(1, var) $array[1] = $var 
array.set(String(“key”), var) $array[“key”] = $var 
array.append(var) $array[] = $var 
array = make_packed_array(1, 2, “val”) $array = [1, 2, “val”] 
array = Array::Create() $array = []
Resource
Resource data declare 
namespace HPHP { 
class InternalResourceData : public SweepableResourceData { 
public: 
virtual const String& o_getClassNameHook() const { return classnameof(); } 
DECLARE_RESOURCE_ALLOCATION(InternalResourceData) 
CLASSNAME_IS("InternalResourceData") 
InternalResourceData(FILE *file); 
virtual ~InternalResourceData(); 
FILE *getHandler(); 
private: 
FILE *file; 
}; 
}
Resource data declare 
namespace HPHP { 
IMPLEMENT_OBJECT_ALLOCATION(InternalResourceData) 
InternalResourceData::InternalResourceData(FILE *file) { 
this->file = file; 
} 
InternalResourceData::~InternalResourceData() { 
fclose(file); 
} 
FILE *InternalResourceData::getHandler(){ 
return file; 
} 
}
Resource usage 
static Resource HHVM_FUNCTION(open_file, const String &filename) { 
FILE *file = fopen(filename.c_str(), "r"); 
Resource resource(NEWOBJ(InternalResourceData(file))); 
return resource; 
} 
static String HHVM_FUNCTION(read_file, const Resource &resource) { 
FILE * file; 
InternalResourceData *resource_data = 
resource.getTyped<InternalResourceData>(); 
file = resource_data->getHandler(); 
// ... 
}
Reference Counting
Variables 
$a Value 
ref count = 1 
$a = “some value”;
Variables 
$a Value 
ref count = 2 
$b = $a; 
$b
Variables 
$a Value 
ref count = 1 
$b = null; 
$b
Variables 
$a Value 
ref count = 0 
$a = null; 
$b
Variables 
$a Value 
ref count = 0 
$a = null; 
$b 
delete value
HHVM Variables 
Variable Value 
Object ObjectData 
String StringData 
Array ArrayData 
Resource ResourceData
Increase reference 
Object var = some_object; 
Object *var = new Object(some_object); 
ObjectDara *value = some_object->get(); 
value->incRefCount();
Decrease reference 
Object *var = new Object(some_object); 
delete var; 
ObjectDara *value = some_object->get(); 
value->decRefAndRelease();
HHVM密(ㄉ一ˋ)技(ㄌㄟˊ)
HHVM 
Extension 第三方 Library set callback
HHVM 
Extension 第三方 Library call callback
接著就GG了...Crash 
HHVM 
Extension 第三方 Library call callback
都是 they 的錯 
gcc -O2
因為gcc -O2 預設開啟 
omit-frame-pointer
導致 HHVM rbp 指標出錯
解決方法
重新編譯第三方套件
gcc 加上 
-fno-omit-frame-pointer
但請放棄這個念頭
請改用神秘的
JIT::VMRegAnchor _;
VMRegAnchor 
static void HHVM_FE(someFunction) { 
JIT::VMRegAnchor _; 
//then call 3rd party library; 
} 
在呼叫第三方library之前加上這段就OK了。
取得Global Variable
取得Global Variable 
Array global(get_global_variables()->asArrayData()); 
Array _SERVER = global[StaticString("_SERVER")].toArray(); 
Array _GET = global[StaticString("_GET")].toArray(); 
Array _POST = global[StaticString("_POST")].toArray();
取得 Constant
取得 Constant 
#if HHVM_API_VERSION >= 20140829L //HHVM 3.3.0 
#include "hphp/runtime/ext/std/ext_std_misc.h" 
#else // HHVM 3.2.0 
#include "hphp/runtime/ext/ext_misc.h" 
#endif 
Variant some_conatant = 
HHVM_FN(constant)(StaticString("SOME_CONSTANT"));
呼叫 PHP 的某個函數
呼叫 PHP 的某個函數 
vm_call_user_func(StaticString("printf"), 
make_packed_array("%s %s", "hello", "world")); 
printf(“%s %s”, “hello”, “world”);
或是直接 
call native function
hphp/runtime/ext/*.h 
這裡幾乎實作了所有php的函數
Call native function 
#include "hphp/runtime/ext/std/ext_std_variable.h" 
HHVM_FN(print_r)(var); //print_r($var);
還有更多地雷由您來踩
有問題嗎?
Thanks

Más contenido relacionado

La actualidad más candente

Introducing PHP Latest Updates
Introducing PHP Latest UpdatesIntroducing PHP Latest Updates
Introducing PHP Latest UpdatesIftekhar Eather
 
Boost.Python - domesticating the snake
Boost.Python - domesticating the snakeBoost.Python - domesticating the snake
Boost.Python - domesticating the snakeSławomir Zborowski
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?Nikita Popov
 
C ISRO Debugging
C ISRO DebuggingC ISRO Debugging
C ISRO Debuggingsplix757
 
Pl python python w postgre-sql
Pl python   python w postgre-sqlPl python   python w postgre-sql
Pl python python w postgre-sqlPiotr Pałkiewicz
 
What's new in PHP 5.5
What's new in PHP 5.5What's new in PHP 5.5
What's new in PHP 5.5Tom Corrigan
 
Streams, sockets and filters oh my!
Streams, sockets and filters oh my!Streams, sockets and filters oh my!
Streams, sockets and filters oh my!Elizabeth Smith
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from insidejulien pauli
 
Php questions and answers
Php questions and answersPhp questions and answers
Php questions and answersDeepika joshi
 
Take advantage of C++ from Python
Take advantage of C++ from PythonTake advantage of C++ from Python
Take advantage of C++ from PythonYung-Yu Chen
 
Notes about moving from python to c++ py contw 2020
Notes about moving from python to c++ py contw 2020Notes about moving from python to c++ py contw 2020
Notes about moving from python to c++ py contw 2020Yung-Yu Chen
 
The promise of asynchronous PHP
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHPWim Godden
 
Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"Fwdays
 
Yapcasia2011 - Hello Embed Perl
Yapcasia2011 - Hello Embed PerlYapcasia2011 - Hello Embed Perl
Yapcasia2011 - Hello Embed PerlHideaki Ohno
 

La actualidad más candente (20)

Introducing PHP Latest Updates
Introducing PHP Latest UpdatesIntroducing PHP Latest Updates
Introducing PHP Latest Updates
 
Boost.Python - domesticating the snake
Boost.Python - domesticating the snakeBoost.Python - domesticating the snake
Boost.Python - domesticating the snake
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?
 
C ISRO Debugging
C ISRO DebuggingC ISRO Debugging
C ISRO Debugging
 
Pl python python w postgre-sql
Pl python   python w postgre-sqlPl python   python w postgre-sql
Pl python python w postgre-sql
 
PHP5.5 is Here
PHP5.5 is HerePHP5.5 is Here
PHP5.5 is Here
 
PHP7 is coming
PHP7 is comingPHP7 is coming
PHP7 is coming
 
What's new in PHP 5.5
What's new in PHP 5.5What's new in PHP 5.5
What's new in PHP 5.5
 
Streams, sockets and filters oh my!
Streams, sockets and filters oh my!Streams, sockets and filters oh my!
Streams, sockets and filters oh my!
 
Php mysql
Php mysqlPhp mysql
Php mysql
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from inside
 
Perl Intro 4 Debugger
Perl Intro 4 DebuggerPerl Intro 4 Debugger
Perl Intro 4 Debugger
 
PHP - Web Development
PHP - Web DevelopmentPHP - Web Development
PHP - Web Development
 
Php questions and answers
Php questions and answersPhp questions and answers
Php questions and answers
 
Take advantage of C++ from Python
Take advantage of C++ from PythonTake advantage of C++ from Python
Take advantage of C++ from Python
 
Notes about moving from python to c++ py contw 2020
Notes about moving from python to c++ py contw 2020Notes about moving from python to c++ py contw 2020
Notes about moving from python to c++ py contw 2020
 
The promise of asynchronous PHP
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHP
 
Building Custom PHP Extensions
Building Custom PHP ExtensionsBuilding Custom PHP Extensions
Building Custom PHP Extensions
 
Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"
 
Yapcasia2011 - Hello Embed Perl
Yapcasia2011 - Hello Embed PerlYapcasia2011 - Hello Embed Perl
Yapcasia2011 - Hello Embed Perl
 

Destacado

Who Invests in Hedge Funds in My State?
Who Invests in Hedge Funds in My State?Who Invests in Hedge Funds in My State?
Who Invests in Hedge Funds in My State?ManagedFunds
 
Research Paper by Dr Everett Ehrlich
Research Paper by Dr Everett EhrlichResearch Paper by Dr Everett Ehrlich
Research Paper by Dr Everett EhrlichManagedFunds
 
Officejet 100 mobile printer
Officejet 100 mobile printerOfficejet 100 mobile printer
Officejet 100 mobile printerR. T. Creager
 
Security Enhancements in Windows Server 2012 Securing the Private - Cloud Inf...
Security Enhancements in Windows Server 2012Securing the Private - Cloud Inf...Security Enhancements in Windows Server 2012Securing the Private - Cloud Inf...
Security Enhancements in Windows Server 2012 Securing the Private - Cloud Inf...yuridiogenes
 
Symfony簡介
Symfony簡介Symfony簡介
Symfony簡介Ricky Su
 
4. list of figure
4. list of figure4. list of figure
4. list of figureIzzah Noah
 
2014: The Year Ahead for Hedge Funds
2014: The Year Ahead for Hedge Funds2014: The Year Ahead for Hedge Funds
2014: The Year Ahead for Hedge FundsManagedFunds
 
resume draft sheet
resume draft sheetresume draft sheet
resume draft sheetIzzah Noah
 
Sales Assist Group Presentation
Sales Assist Group PresentationSales Assist Group Presentation
Sales Assist Group PresentationVeno30472 Veno
 
FP Horak Wedding Presentation
FP Horak Wedding Presentation FP Horak Wedding Presentation
FP Horak Wedding Presentation dehavenproductions
 
Hedge Funds: Trends and Insight From the Industry and Investors
Hedge Funds: Trends and Insight From the Industry and InvestorsHedge Funds: Trends and Insight From the Industry and Investors
Hedge Funds: Trends and Insight From the Industry and InvestorsManagedFunds
 
Admin generator
Admin generatorAdmin generator
Admin generatorRicky Su
 
How Passage of the JOBS Act Impacts Regulation D: Private Placement and Gene...
How Passage of the JOBS Act Impacts Regulation D:  Private Placement and Gene...How Passage of the JOBS Act Impacts Regulation D:  Private Placement and Gene...
How Passage of the JOBS Act Impacts Regulation D: Private Placement and Gene...ManagedFunds
 
好康報報
好康報報好康報報
好康報報Ricky Su
 
The marketing environment
The marketing environmentThe marketing environment
The marketing environmentIzzah Noah
 

Destacado (20)

Assessment 2
Assessment 2Assessment 2
Assessment 2
 
Who Invests in Hedge Funds in My State?
Who Invests in Hedge Funds in My State?Who Invests in Hedge Funds in My State?
Who Invests in Hedge Funds in My State?
 
Research Paper by Dr Everett Ehrlich
Research Paper by Dr Everett EhrlichResearch Paper by Dr Everett Ehrlich
Research Paper by Dr Everett Ehrlich
 
Officejet 100 mobile printer
Officejet 100 mobile printerOfficejet 100 mobile printer
Officejet 100 mobile printer
 
Security Enhancements in Windows Server 2012 Securing the Private - Cloud Inf...
Security Enhancements in Windows Server 2012Securing the Private - Cloud Inf...Security Enhancements in Windows Server 2012Securing the Private - Cloud Inf...
Security Enhancements in Windows Server 2012 Securing the Private - Cloud Inf...
 
Symfony簡介
Symfony簡介Symfony簡介
Symfony簡介
 
4. list of figure
4. list of figure4. list of figure
4. list of figure
 
2014: The Year Ahead for Hedge Funds
2014: The Year Ahead for Hedge Funds2014: The Year Ahead for Hedge Funds
2014: The Year Ahead for Hedge Funds
 
resume draft sheet
resume draft sheetresume draft sheet
resume draft sheet
 
Sales Assist Group Presentation
Sales Assist Group PresentationSales Assist Group Presentation
Sales Assist Group Presentation
 
The art of seo
The art of seoThe art of seo
The art of seo
 
FP Horak Wedding Presentation
FP Horak Wedding Presentation FP Horak Wedding Presentation
FP Horak Wedding Presentation
 
The Game as Design Principle
The Game as Design PrincipleThe Game as Design Principle
The Game as Design Principle
 
Hedge Funds: Trends and Insight From the Industry and Investors
Hedge Funds: Trends and Insight From the Industry and InvestorsHedge Funds: Trends and Insight From the Industry and Investors
Hedge Funds: Trends and Insight From the Industry and Investors
 
Admin generator
Admin generatorAdmin generator
Admin generator
 
My Passion
My PassionMy Passion
My Passion
 
T-Rex
T-RexT-Rex
T-Rex
 
How Passage of the JOBS Act Impacts Regulation D: Private Placement and Gene...
How Passage of the JOBS Act Impacts Regulation D:  Private Placement and Gene...How Passage of the JOBS Act Impacts Regulation D:  Private Placement and Gene...
How Passage of the JOBS Act Impacts Regulation D: Private Placement and Gene...
 
好康報報
好康報報好康報報
好康報報
 
The marketing environment
The marketing environmentThe marketing environment
The marketing environment
 

Similar a 實戰 Hhvm extension php conf 2014

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
 
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 (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 7 compliance workshop singapore
Php 7 compliance workshop singaporePhp 7 compliance workshop singapore
Php 7 compliance workshop singaporeDamien Seguy
 
Php7 hhvm and co
Php7 hhvm and coPhp7 hhvm and co
Php7 hhvm and coPierre Joye
 
Living With Legacy Code
Living With Legacy CodeLiving With Legacy Code
Living With Legacy CodeRowan Merewood
 
170517 damien gérard framework facebook
170517 damien gérard   framework facebook170517 damien gérard   framework facebook
170517 damien gérard framework facebookGeeks Anonymes
 
Hacking hhvm
Hacking hhvmHacking hhvm
Hacking hhvmwajrcs
 
Exakat for PHP : smart code reviewing engine
Exakat for PHP : smart code reviewing engineExakat for PHP : smart code reviewing engine
Exakat for PHP : smart code reviewing engineDamien Seguy
 
Php7 HHVM and co
Php7 HHVM and coPhp7 HHVM and co
Php7 HHVM and coweltling
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7ZendVN
 
HHVM and Hack: A quick introduction
HHVM and Hack: A quick introductionHHVM and Hack: A quick introduction
HHVM and Hack: A quick introductionKuan Yen Heng
 
Php mysql training-in-mumbai
Php mysql training-in-mumbaiPhp mysql training-in-mumbai
Php mysql training-in-mumbaiUnmesh Baile
 
Static Analysis of PHP Code – IPC Berlin 2016
Static Analysis of PHP Code – IPC Berlin 2016Static Analysis of PHP Code – IPC Berlin 2016
Static Analysis of PHP Code – IPC Berlin 2016Rouven Weßling
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?Nikita Popov
 

Similar a 實戰 Hhvm extension php conf 2014 (20)

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)
 
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)
 
Hacking with hhvm
Hacking with hhvmHacking with hhvm
Hacking with hhvm
 
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 7 compliance workshop singapore
Php 7 compliance workshop singaporePhp 7 compliance workshop singapore
Php 7 compliance workshop singapore
 
Php7 hhvm and co
Php7 hhvm and coPhp7 hhvm and co
Php7 hhvm and co
 
Living With Legacy Code
Living With Legacy CodeLiving With Legacy Code
Living With Legacy Code
 
170517 damien gérard framework facebook
170517 damien gérard   framework facebook170517 damien gérard   framework facebook
170517 damien gérard framework facebook
 
Hacking hhvm
Hacking hhvmHacking hhvm
Hacking hhvm
 
Exakat for PHP : smart code reviewing engine
Exakat for PHP : smart code reviewing engineExakat for PHP : smart code reviewing engine
Exakat for PHP : smart code reviewing engine
 
Php7 HHVM and co
Php7 HHVM and coPhp7 HHVM and co
Php7 HHVM and co
 
PHP7 Presentation
PHP7 PresentationPHP7 Presentation
PHP7 Presentation
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7
 
HHVM and Hack: A quick introduction
HHVM and Hack: A quick introductionHHVM and Hack: A quick introduction
HHVM and Hack: A quick introduction
 
Php mysql training-in-mumbai
Php mysql training-in-mumbaiPhp mysql training-in-mumbai
Php mysql training-in-mumbai
 
Php Tutorials for Beginners
Php Tutorials for BeginnersPhp Tutorials for Beginners
Php Tutorials for Beginners
 
php AND MYSQL _ppt.pdf
php AND MYSQL _ppt.pdfphp AND MYSQL _ppt.pdf
php AND MYSQL _ppt.pdf
 
Static Analysis of PHP Code – IPC Berlin 2016
Static Analysis of PHP Code – IPC Berlin 2016Static Analysis of PHP Code – IPC Berlin 2016
Static Analysis of PHP Code – IPC Berlin 2016
 
New PHP Exploitation Techniques
New PHP Exploitation TechniquesNew PHP Exploitation Techniques
New PHP Exploitation Techniques
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?
 

Último

VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...SUHANI PANDEY
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls DubaiEscorts Call Girls
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.soniya singh
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceDelhi Call girls
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Delhi Call girls
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...SUHANI PANDEY
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 

Último (20)

Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls Dubai
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 

實戰 Hhvm extension php conf 2014