diff --git a/documentation/exceptions.html b/documentation/exceptions.html index c4f0e5c6..f3938ae7 100644 --- a/documentation/exceptions.html +++ b/documentation/exceptions.html @@ -17,7 +17,7 @@
+ Reading settings from the php.ini file(s) is just as simple as it + is to obtain these settings from a regular PHP script. Inside a PHP script + you can use the built-in ini_get() function to read settings from the php.ini + file, and in your C++ extension you use the Php::ini_get() function. +
++
#include <phpcpp.h>
+
+/**
+ * Simple function that is used to demonstrate how settings from the
+ * php.ini file can be read
+ */
+void myFunction()
+{
+ // read in the "output_buffering" variable from the php.ini file
+ int output_buffering = Php::ini_get("output_buffering");
+
+ // read in the "variables_order" variable
+ std::string variables_order = Php::ini_get("variables_order");
+}
+
+/**
+ * Switch to C contect so that the get_module() function can be
+ * called by the Zend engine
+ */
+extern "C" {
+ /**
+ * The get_module() startup function
+ * @return void*
+ */
+ PHPCPP_EXPORT void *get_module() {
+
+ // create extension object
+ static Php::Extension extension("my_extension", "1.0");
+
+ // export one function
+ extension.add("myFunction", myFunction);
+
+ // return a pointer to the extension object
+ return extension;
+ }
+}
+
++ The Php::ini_get() function returns an object that can be assigned to + strings, integers and floating point numbers. In the above example we have + used this to assign the settings directly to an integer and a std::string. +
++ You can only retrieve predefined variables from the php.ini. It is thus not + possible to call Php::ini_get() with random strings. If you want to define + your own variables, you must first register them in the get_module() + function before you can call Php::ini_get() to retrieve the current values. +
++
#include <phpcpp.h>
+
+/**
+ * Simple function that is used to demonstrate how settings from the
+ * php.ini file can be read
+ */
+void myFunction()
+{
+ // read in a variable defined for this extension
+ int var1 = Php::ini_get("my_extension.var1");
+
+ // read in a string variable
+ std::string var2 = Php::ini_get("my_extension.var2");
+}
+
+/**
+ * Switch to C contect so that the get_module() function can be
+ * called by the Zend engine
+ */
+extern "C" {
+ /**
+ * The get_module() startup function
+ * @return void*
+ */
+ PHPCPP_EXPORT void *get_module() {
+
+ // create extension object
+ static Php::Extension extension("my_extension", "1.0");
+
+ // export one function
+ extension.add("myFunction", myFunction);
+
+ // tell the PHP engine that the php.ini variables my_extension.var1
+ // and my_extension.var2 are usable
+ extension.add(Php::Ini("my_extension.var1", "default-value"));
+ extension.add(Php::Ini("my_extension.var2", 12345));
+
+ // return a pointer to the extension object
+ return extension;
+ }
+}
+