From 76d82c53bb6d3aa3f7d32fc3c8c4aa964bfb9c4e Mon Sep 17 00:00:00 2001 From: Hartmut Holzgraefe Date: Sat, 26 Apr 2003 15:05:01 +0000 Subject: module global variables and ini parameters now have their own generator classes --- scripts/ext_skel_ng/php_ini.php | 117 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 scripts/ext_skel_ng/php_ini.php (limited to 'scripts/ext_skel_ng/php_ini.php') diff --git a/scripts/ext_skel_ng/php_ini.php b/scripts/ext_skel_ng/php_ini.php new file mode 100644 index 0000000000..88da50ae28 --- /dev/null +++ b/scripts/ext_skel_ng/php_ini.php @@ -0,0 +1,117 @@ +name = $attr["name"]; + + if (!$this->is_name($this->name)) { + $this->error[] = "'$attr[name]' is not a valid php.ini directive name"; + } + + $this->type = $this->is_type($attr['type']); + if (!$this->type) { + $this->error[] = "'$attr[type]' is not a valid PHP data type"; + } + + $this->value = $attr["value"]; + $this->desc = $attr["desc"]; + + switch ($attr["access"]) { + case "system": + $this->access = "PHP_INI_SYSTEM"; + break; + case "perdir": + $this->access = "PHP_INI_PERDIR"; + break; + case "user": + $this->access = "PHP_INI_USER"; + break; + case "all": + case "": + $this->access = "PHP_INI_ALL"; + break; + default: + $this->error[] = "'$attr[access]' is not a valid access mode (system|perdir|user|all)"; + } + + switch ($this->type) { + case "bool": + $this->onupdate = "OnUpdateBool"; + $this->c_type = "zend_bool"; + break; + case "int": + $this->onupdate = "OnUpdateLong"; + $this->c_type = "long"; + break; + case "float": + $this->onupdate = "OnUpdateReal"; + $this->c_type = "double"; + break; + case "string": + $this->onupdate = "OnUpdateString"; + $this->c_type = "char *"; + break; + default: + $this->error[] = "'$this->type' not supported, only bool, int, float and string"; + break; + } + + if (isset($attr["onupdate"])) { + $this->onupdate = $attr["onupdate"]; + } + } + + + + static function c_code_header($name) { + return "PHP_INI_BEGIN()\n"; + } + + function c_code($name) { + return " STD_PHP_INI_ENTRY(\"{$name}.$name\", \"{$this->value}\", {$this->access}, {$this->onupdate}, $name, zend_{$name}_globals, {$name}_globals)\n"; + } + + static function c_code_footer() { + return "PHP_INI_END()\n\n"; + } + + + + static function docbook_xml_header($name) { + return +" + $name runtime configuration + + + + directive + default value + descrpition + + + +"; + } + + function docbook_xml() { + return +" + $this->name + $this->value + $this->desc + +"; + } + + static function docbook_xml_footer() { + return +" + +
+"; + } + } + +?> -- cgit v1.2.1