mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
forgot to add these two on my last commit :(
This commit is contained in:
parent
189d29061e
commit
f7490c405b
2 changed files with 116 additions and 0 deletions
51
scripts/ext_skel_ng/php_logo.php
Normal file
51
scripts/ext_skel_ng/php_logo.php
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class php_logo extends php_element {
|
||||||
|
function php_logo($name, $attr) {
|
||||||
|
$this->name = $name;
|
||||||
|
$this->attr = $attr;
|
||||||
|
$this->id = '"'.strtoupper($name).'_LOGO_ID"';
|
||||||
|
|
||||||
|
$this->data = file_get_contents($attr['src']);
|
||||||
|
$this->size = strlen($this->data);
|
||||||
|
|
||||||
|
$this->mime_type = "image/gif";
|
||||||
|
}
|
||||||
|
|
||||||
|
function docbook_xml($base) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function minit_code() {
|
||||||
|
return " php_register_info_logo({$this->id}, \"{$this->mime_type}\", {$this->name}_logo, {$this->size});\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function c_code() {
|
||||||
|
return "
|
||||||
|
static unsigned char {$this->name}_logo[] = {
|
||||||
|
#include \"{$this->name}_logo.h\"
|
||||||
|
};
|
||||||
|
";
|
||||||
|
}
|
||||||
|
|
||||||
|
function h_code() {
|
||||||
|
$len = strlen($this->data);
|
||||||
|
$code = " ";
|
||||||
|
$i=0;
|
||||||
|
for($n = 0; $n < $len; $n++) {
|
||||||
|
$code .= sprintf(" %3d",ord($this->data[$n]));
|
||||||
|
if($n == $len - 1) break;
|
||||||
|
$code .= ",";
|
||||||
|
if(++$i==8) {
|
||||||
|
$code .= "\n ";
|
||||||
|
$i=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$code .= "\n";
|
||||||
|
|
||||||
|
return $code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
65
scripts/ext_skel_ng/php_resource.php
Normal file
65
scripts/ext_skel_ng/php_resource.php
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class php_resource extends php_element {
|
||||||
|
function php_resource($name, $payload, $destruct, $description) {
|
||||||
|
$this->name = $name;
|
||||||
|
$this->payload = $payload;
|
||||||
|
$this->destruct = $destruct;
|
||||||
|
$this->description = $description;
|
||||||
|
|
||||||
|
if (empty($this->destruct) && strstr($this->payload, "*")) {
|
||||||
|
$this->destruct = " free(resource);\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($this->payload)) {
|
||||||
|
$this->payload = "int";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function docbook_xml($base) {
|
||||||
|
return "
|
||||||
|
<section id='$base.resources.{$this->name}'>
|
||||||
|
<title><litera>{$this->name}</literal></title>
|
||||||
|
<para>
|
||||||
|
{$this->description}
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
";
|
||||||
|
}
|
||||||
|
|
||||||
|
function minit_code() {
|
||||||
|
return "
|
||||||
|
le_{$this->name} = zend_register_list_destructors_ex({$this->name}_dtor,
|
||||||
|
NULL,
|
||||||
|
\"{$this->name}\",
|
||||||
|
module_number);
|
||||||
|
|
||||||
|
";
|
||||||
|
}
|
||||||
|
|
||||||
|
function c_code() {
|
||||||
|
return "
|
||||||
|
int le_{$this->name};
|
||||||
|
|
||||||
|
void {$this->name}_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
|
||||||
|
{
|
||||||
|
{$this->payload} resource = ({$this->payload})(rsrc->ptr);
|
||||||
|
|
||||||
|
{$this->destruct}
|
||||||
|
}
|
||||||
|
";
|
||||||
|
}
|
||||||
|
|
||||||
|
function h_code() {
|
||||||
|
$upname = strtoupper($this->name);
|
||||||
|
|
||||||
|
return "
|
||||||
|
#define {$upname}_FETCH(r, z) ZEND_FETCH_RESOURCE(r, {$this->payload}, z, -1, ${$this->name}, le_{$this->name }); \
|
||||||
|
if(!r) { RETURN_FALSE; }
|
||||||
|
|
||||||
|
#define {$upname}_REGISTER(r) ZEND_REGISTER_RESOURCE(return_value, r, le_{$this->name });
|
||||||
|
";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
Loading…
Add table
Add a link
Reference in a new issue