PHP5用のextensionは変更なしではPHP7上で動きません。#ifで分岐して両対応にするのも厳しい印象で、多くのextensionは別ブランチで開発しているようです(調べた範囲ではAPCu、msgpack、memcachedなどが別ブランチで開発しているようです)。 今回PHP7用の実験的なextension「php7_explorer」を書いてみました。書いてみてPHP5用のextensionとの違いを改めて実感したので、ざっくりの違いをまとめてみます。 「おまじない」を書かなくてよくなった PHP5までは、Zend APIのプロトタイプ宣言最後にTSRMLS_DCを、呼び出し時の引数リストの最後にTSRMLS_CCをつけるという「おまじない」が必要でした。これはZTS (Zend Thread Safety)サポートのため、必要なときだけ余計な引数を引き回すようなマクロ定義です
PHPはいかにして拡張されるか PHPは従来、C言語で書かれたExtensionによって拡張されて来ました。 しかしPHPの開発者にとってCのハードルは高く、またCの開発者も明示的なメモリ管理に難儀してきました。 それを解決するのがZephirというPHP Extension開発専用の言語です。 PHPを拡張する言語、Zephirとは http://zephir-lang.com/ Zephir(Zend Engine PHP Intermediate)は現在、Phalcon開発チームが並行して開発を進めている静的/動的言語です。 静的に変数型を宣言するのが標準的な記法ですが、型推論の機能を利用することも可能です。 2014年12月末現在での最新バージョンは0.5.7で、安定版に達していないものの、既に実用レベルのExtensionをPHPとほぼ変わらぬ記法で開発できるようになっています。
はじめまして、@hnwと申します。一部の方々に非常に人気があったシリーズ「PHP Extensionを作ろう」久々の続編です。といっても、今回はExtensionのソースコードは一行も出てきません。Extensionを作る準備段階の話題です。 PHP Extension開発時にオススメのPHPビルドオプションがあるのをご存じでしょうか。これは「拡張モジュール開発用に PHP をビルドする方法」でも紹介されているのですが、「--enable-debug --enable-maintainer-zts」というものです。 本稿ではこのビルドオプションについて解説し、php-buildを利用して環境構築する方法についても紹介します。 PHPのメモリ管理の概要 まずPHPのメモリ管理について簡単に紹介します。 Apache prefork MPM+mod_phpの組み合わせを例に挙げますと、Apac
This extension embeds Google's V8 Javascript Engine into PHP.
2月か3月のいずれかの日に Zend Engine 勉強会を開催します。 多くの PHPer は Zend といえば Zend Framework を想起されると 思いますが。PHP 処理系の方の Zend です。 PHP extension を開発してると Zend Engine の知識が必要になるんです。 第一回は東京の六本木ヒルズ予定です。 GREEさんの会議室が借りられそうなので。 きっかけ Twitter で @anatoo さんと拡張周りの勉強会あるといいよね。 http://twitter.com/anatoo/status/20293192477843456 って話をしてるうちに、その場のノリで開催する事になりました。 http://twitter.com/yoya/status/20301108803018754 この発言に100RTついたら、3カ月以内に要望のある 都市
ごあいさつエントリだけというのもなんなので、引き続きfujimotoです。実質上1つめのような気がするこのエントリでは、PHPが3倍くらい(少なくとも2倍くらいは...)速くなるGree Fast Processorというのを先月作ってみたのでご紹介です。 すぐわかるまとめ Gree Fast Processorというのを使ってみると、シンプルなsymfonyのプロジェクト(xav.ccで試しました)でも2倍弱、結構複雑なアプリケーションだと7倍くらい速くなったりします。いくつかの制約がありますが、パフォーマンスに飢えているかたはお試しください。 こちらはなんかすごい速くなっている感じのグラフ(一番上が速くなった版のRequests per Second、赤が通常版のRequests per Second): これはさすがにbest caseすぎる気がしますが、普通にやっても2倍弱くらいは
"Writing PHP Extensions" slides from PHP Quebec 2009 Don't just drive your favorite language, reach under the hood and tune her till she sings. This quick sprint marathon is not for the faint of heart, but for those who'll settle for nothing less than the power and speed of compiled code, this tutorial won't disappoint. Dive into another world, the world behind PHP, a complex warren of pointers an
dba関数というのを知っていますか?dbm形式のデータベースの抽象化レイヤとなる関数を提供するモジュールで、PHPのソースコードに同梱されています。 PHP: DBA - Manual 例えば、dbm や qdbm といったものを利用できる他、inifile という php.ini 形式のようなファイルをDBMのように読み書きできるハンドラが用意されています。 で、現在、PHPのソースコードのtrunkには、TokyoCabinetのハンドラがコミットされています。 php/php-src/trunk/ext/dba/dba_tcadb.c (実装本体) php/php-src/trunk/ext/dba/php_tcadb.h (ヘッダ) php/php-src/trunk/ext/dba/config.m4 いつ、これが提供されるようになるかは不明ですが、現時点でもbackportすれ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く