Extensions
HHVM 提供了几十个内置的以及集成的扩展,并允许动态加载其他扩展。由于这是 HHVM 的用户指南,所以在这里我们不讨论如何构建自己的扩展,但下面列出了相关的资源。
集成扩展
如果你从 HHVM 中调用 get_loaded_extensions()
,你会发现以下扩展已经被集成到 HHVM 中了:
- apache
- apc
- array
- asio
- async_mysql
- bc
- bz2
- ctype
- curl (async curl)
- date
- debugger
- dom
- domdocument
- enum
- exif
- fb
- fileinfo
- filter
- gd
- gmp
- hash
- hhvm.debugger
- hhvm.ini
- hosthealthmonitor
- hotprofiler
- iconv
- idn
- imagick
- imap
- intervaltimer
- intl
- json
- ldap
- libxml
- mailparse
- mbstring
- mcrouter
- mcrypt
- memcache
- memcached
- objprof
- openssl
- pcntl
- pcre
- pdo
- pdo_mysql
- pdo_pgsql
- pdo_sqlite
- pgsql
- posix
- readline
- redis
- reflection
- server
- session
- SimpleXML
- soap
- sockets
- spl
- sqlite3
- stream (async streams)
- string
- sysvmsg
- sysvsem
- sysvshm
- thread
- thrift_protocol
- tokenizer
- url
- wddx
- xenon
- xhprof
- xml
- xmlreader
- xmlwriter
- xsl
- zip
- zlib
动态加载的扩展
- dbase
- geoip
- msgpack
- mongodb:官方 MongoDB 驱动作为 HNI 扩展
- mongofill:纯 PHP 中实现传统的 MongoDB 驱动
- shp
- ssdeep
- uuid
- uv
- zmq
载入
要载入动态加载的扩展,请遵循该扩展的指示说明。不过,一般情况下是这样的:
cd /path/to/extension
hphpize
cmake .
make
这将创建一个 .so
文件。然后在你的 .ini
配置文件中:
extension_dir = /etc/hhvm
hhvm.extensions[extension_name] = extension.so
或者
hhvm.dynamic_extensions[extension_name] = extension.so
构建自己的扩展
建立你自己的扩展超出了本用户指南的范围,但有一些很好的外部资源可以帮助你开始:
- https://github.com/facebook/hhvm/wiki/Extension-API
- http://blog.golemon.com/2015/01/hhvm-extension-writing-part-i.html
本节由 Evilran 翻译