問題タブ [php-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
14777 参照

php - PHP 拡張機能開発入門

PHP の「低」レベルの С-modules プログラミング インターフェイスに関するヘルプ記事またはチュートリアルを提案してください。

0 投票する
1 に答える
2302 参照

java - jni のコールバック

CからコールバックをJavaコードに渡す方法はありますか。そして、呼び出しはすぐに戻ります。後でタスクを完了した後、Java コードはそのコールバックを呼び出すことができます。

一部のアイテムを格納するためにJavaストアを呼び出すphp用のC拡張機能があります。アイテムは同期および非同期メソッドでストアから取得できます (キーのリストとコールバックをストアに提供し、コールバックを呼び出してアイテムを返します)。

アイテムを拡張機能から同期的に取得することはできますが、非同期的に行う方法がわかりません。

  • 私のCコードがJavaが後で呼び出すことができる関数へのポインタを与える方法はありますか?
  • または、C コードがアイテムを非同期的に取得するように要求するたびに Java スレッドを作成し、その Java スレッドがアイテムをユーザーに返すことができる C 関数を呼び出すことは可能ですか?

最後の手段として、C コードでスレッドを作成し、Java から取得できるキーをそのスレッドでキューに入れる必要がある場合があります。

または、タスクをキューに入れることができる zend のサポートと、キュー内のすべてのタスクに対して zend が 1 つずつ呼び出すことができるコールバックはありますか?

0 投票する
1 に答える
1604 参照

java-native-interface - Fedora 8 で jni_CreateJavaVM API を使用して JVM を作成できない

PHP 拡張機能 (C で作成) を作成しました。JNIを使​​用してJava呼び出しを行っています。

jni_CreateJavaVM を使用して JVM を作成します。これは次の場合に正常に機能します。

  • IIS (ウィンドウズ)
  • アパッチ (Windows)
  • PHP CLI (フェドラ 8)

しかし、(Fedore 8 で) Apache から同じ拡張機能をロードしようとすると、create jni_ CreateJavaVM が JNI _ERROR を返します。PHP _RINIT _FUNCTION から jni _CreateJavaVM を呼び出します。

私の拡張機能がlibjvm.soを見つけられない可能性があると思いました。同じコードで、jni_CreateJavaVM を呼び出す前に、libjvm.so ライブラリをロードしようとしましたが、成功しました。jni 関数を呼び出した場合にのみ、JNI_ERROR が返されます。

LD_LOAD 関数を使用して libjvm.so をロードしました。ライブラリをロードした後、成功した jni_ CreateJavaVM メソッドへのポインタを取得します。ポインターまたは直接の jni_ CreateJavaVM 呼び出しを使用して呼び出しを行った場合にのみ、-1 が返されます。

初期化中に何が問題だったのかを調べる方法はありますか?

プラットフォーム: Fedora 8 Java: Jdk 1.5 update 8 Php: Php バージョン 5.3

JVM を初期化するために作成したコードを次に示します。

0 投票する
1 に答える
2308 参照

php - Cで書かれたPHP拡張機能のリンク

編集:私の質問の改訂

Cで外部PHPモジュールを構築する場合、共有オブジェクトをリンクするにはどうすればよいですか?

0 投票する
7 に答える
70944 参照

c - C での現在のプロセスのメモリ使用量

C で現在のプロセスのメモリ使用量を取得する必要があります。Linux プラットフォームでこれを行う方法のコード サンプルを提供してもらえますか?

メモリ使用量を取得する方法は知ってcat /proc/<your pid>/statusいますが、C でそれをキャプチャする方法がわかりません。

ところで、それは私が変更しているPHP拡張用です(確かに、私はCの初心者です)。PHP 拡張機能 API 内で使用できるショートカットがあれば、さらに便利です。

0 投票する
1 に答える
103 参照

php - php5の代わりにphp4ヘッダーをコンパイルする

私はDreamhostPSサーバーでPHPの特定の拡張機能をコンパイルしています。エラーが発生し、php5ヘッダーの代わりにphp4ヘッダーが使用されている場合に発生することがわかりました。

phpinfoを実行すると、サーバーがphp5を実行していることがわかります。ただし、コマンドラインのphp-vはphp4を提供します。

サーバーでphp4の代わりにphp5を使用してコンパイルを行うにはどうすればよいですか?ある種の環境変数はありますか?もしそうなら、どうすればそれを変更できますか(Linuxの新機能)

ありがとう

0 投票する
2 に答える
742 参照

php - PHP が持つ DB 拡張機能 (mysqli、PDO など) は、エンタープライズ レベルのアプリケーションに最適ですか?

PHP が持つ DB 拡張機能 (mysqli、PDO など) は、エンタープライズ レベルのアプリケーションに最適ですか? 私の頭に浮かぶ重要な機能は次のとおりです。

  1. メンテナンス中
  2. 多くのドキュメントと例。
  3. おそらく Mysql の人々自身によって承認されています。
  4. 屈強
  5. スケーラブル
0 投票する
1 に答える
546 参照

php - PHP拡張機能内のすべての関数をエクスポートするには?

Depends.exe を使用して php_sqlite.dll と php_sockets.dll を開きました。両方で1つの関数しか見ませんでした:get_module

.dll をコンパイルするときに、拡張子のすべての関数を dll ファイルにエクスポートするにはどうすればよいですか? 私の知る限り、ZEND_FUNCTION はモジュール内の関数を宣言するために使用されます。ご教授ください。どうもありがとうございました!

0 投票する
1 に答える
453 参照

php - memcached を使用する PHP 拡張機能

memcached ライブラリを使用する PHP 拡張ライブラリを作成することを考えています。ライブラリを memcache shlib に単純にリンクするのは簡単です。

ただし、(拡張ライブラリ) ユーザーが自分の Web サイトで既に memcache を使用している場合はどうなるかわかりません。私の質問は次のとおりです。

  1. マシンに (おそらく異なるバージョンの) memcache を搭載することは可能ですか?
  2. 拡張ライブラリをビルドするとき、memcache に静的にリンクするのと動的にリンクするのとではどちらが最適ですか? (バージョンの非互換性に対応するため - memcache が下位互換性があると仮定すると、そうでない場合はすべてオフになります)

質問は基本的に、拡張ライブラリが使用される Web サイトで既に使用されている可能性のあるサードパーティのファイルに依存している場合、作成した拡張ライブラリをどのように保護できるかということになります。

少し不適切な質問かもしれませんが、私の質問の主旨を理解していただければ幸いです。