====== PHP extension ====== This page is about the development of //PHP// extension in //C++//. The official documentation about extensions on the official //PHP// web site is only about //PHP// __5__, **not** //PHP// __7__. The examples may compile properly under //PHP// 7, but they will __not__ work properly. See http://wiki.php.net/phpng-upgrading. ===== Installation ===== ===== Compilation ===== In the //C//%%/%%//C++// source files you may found on the web, if there is a compilation error on ''function_entry'', replace it with ''zend_function_entry''. ==== Macros ==== === Windows === Macros definitions which seems to be needed for compilation under //Windows// : * ''ZEND_WIN32_FORCE_INLINE'', * ''ZEND_WIN32=1'', * ''PHP_WIN32=1'', * ''__STDC_LIMIT_MACROS'', * ''ZEND_DEBUG=0'', * ''ZTS''. The last one is only needed to compile in //TS// mode, not for the //NTS// mode. ===== Linking ===== ==== Windows ==== You have to link against ''/Release_TS/php5ts.lib'' (obviously for the thread-safe version). ===== Activation ===== You have to : * create a ''.ini'' file in ''/etc/php5/mods-available'' which contains ''extension=.'', '''' being the dynamic library extension for the concerned OS, * launch as //root// ''php5enmod ''. In order for the extension yo be recognized, verify that : * the extension correspondent library ''.'' is present in the extension directory, * there is a ''.ini'' file in the ''/etc/php5/mods-available'' directory which contains the line ''extension=.'', * there is a link in the ''conf.d'' directory pointing to the above file. ===== Misc ===== * For the directory of the extensions : ''php-config | grep extension'', * for the ''.ini'' file ''php %%--%%ini''.