こんにちは、私は zephir または php-cpp で php の拡張機能を作成して、以下のコードのようなコメント ブロックが php ファイルに追加されたときに、拡張機能から customMethod を呼び出すことを試みています。
<?php
/* myNotation:my comment */
echo "Hello World"
?>
ソースが起動されたときにこのようなコメントがソースに追加された場合、記法myNotationがコメントに表示され、私のコメントとして値があることを検出する必要があります
これが私のサンプル拡張cppファイルです
/**
* myExtention.cpp
*
*/
#include <iostream>
#include <phpcpp.h>
/**
* Namespace to use
*/
using namespace std;
/**
* HelloWorldEcho()
* echo parameter.
* @param ¶ms
*/
void HelloWorldEcho(Php::Parameters ¶ms)
{
cout << "Your Comment" << params<< endl;
}
// Symbols are exported according to the "C" language
extern "C"
{
// export the "get_module" function that will be called by the Zend engine
PHPCPP_EXPORT void *get_module()
{
// create extension
static Php::Extension extension("myExtention","1.0");
// add function to extension
extension.add<HelloWorldEcho>("HelloWorldEcho", {
Php::ByVal("x", Php::Type::String)
});
// return the extension module
return extension.module();
}
}
そして今、私の拡張機能がコンパイルされてphp拡張機能に追加されたとき、私はこのようにphpファイルからそれを呼び出すことができます
<?php
/**
* HelloWorldEcho.php
*
* An example file to show the working of a php function call in C++.
*/
HelloWorldEcho("my comment");
主な質問は、以下のコードのようなコメントがあり、コメントをパラメーターとしてメソッドに渡すときに、拡張メソッドcall_php_functionを呼び出すにはどうすればよいかということです。
<?php
/* myNotation:my comment */
echo "Hello World"
?>