PHP London (UG) Extensions talk

This commit is contained in:
Derick Rethans
2018-01-04 15:13:00 +00:00
parent ea24aec088
commit 018a7afb60
12 changed files with 83 additions and 13 deletions

59
php-ext-phpldn18.xml Normal file
View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<presentation css="10gen-strict.css">
<topic>PHP</topic>
<title>Introduction into PHP Extensions</title>
<event>PHP London UG</event>
<location>London UK</location>
<date>January 4th, 2018</date>
<speaker>Derick Rethans</speaker>
<email>derick@php.net</email>
<twitter>derickr</twitter>
<url>http://derickrethans.nl/talks.html</url>
<joindin>http://derickrethans.nl/talks/php-ext-phpldn18</joindin>
<slide>slides/mongodb/title.xml</slide>
<slide>slides/mongodb/me.xml</slide>
<slide>slides/internals/extension-agenda.xml</slide>
<slide>slides/internals/extension-agenda2.xml</slide>
<slide>slides/internals/extension-what1.xml</slide>
<slide>slides/internals/extension-why1.xml</slide>
<slide>slides/internals/extension-why-wrap.xml</slide>
<slide>slides/internals/extension-why-not-possible.xml</slide>
<slide>slides/internals/extension-why-speed.xml</slide>
<slide>slides/internals/extension-why-not1.xml</slide>
<slide>slides/internals/rdp-intro.xml</slide>
<slide>slides/internals/rdp-intro2.xml</slide>
<slide>slides/internals/rdp-intro3.xml</slide>
<slide>slides/internals/rdp-intro4.xml</slide>
<slide>slides/internals/extension-parts.xml</slide>
<slide>slides/internals/extension-on-a-slide.xml</slide>
<slide>slides/internals/config.m4.xml</slide>
<slide>slides/internals/config.w32.xml</slide>
<slide>slides/internals/phpize.xml</slide>
<slide>slides/internals/extension.h.xml</slide>
<slide>slides/internals/extension.c-part1.xml</slide>
<slide>slides/internals/extension.c-part2.xml</slide>
<slide>slides/internals/extension.c-part3.xml</slide>
<slide>slides/internals/function.xml</slide>
<slide>slides/internals/rdp_simplify-part1.xml</slide>
<slide>slides/internals/rdp_simplify-zedval.xml</slide>
<slide>slides/internals/rdp_simplify-part1b.xml</slide>
<slide>slides/internals/rdp_simplify-convert-data.xml</slide>
<slide>slides/internals/rdp_simplify-run-algorithm.xml</slide>
<slide>slides/internals/rdp_simplify-php.xml</slide>
<slide>slides/internals/rdp_simplify-c.xml</slide>
<slide>slides/internals/rdp_simplify-return-result.xml</slide>
<slide>slides/internals/rdp_simplify-return-scalars.xml</slide>
<slide>slides/internals/memory-management.xml</slide>
<slide>slides/internals/tests.xml</slide>
<slide>slides/internals/rdp-test.xml</slide>
<slide>slides/mongodb/questions.xml</slide>
<slide>slides/mongodb/resources.xml</slide>
</presentation>

View File

@@ -4,7 +4,6 @@
<blurb>Comments:</blurb>
<example><![CDATA[
dnl $Id$
dnl config.m4 for extension geospatial
]]></example>

View File

@@ -4,7 +4,6 @@
<blurb>Comments:</blurb>
<example><![CDATA[
// $Id$
// vim:ft=javascript
]]></example>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 KiB

After

Width:  |  Height:  |  Size: 267 KiB

View File

@@ -2,12 +2,10 @@
<title>What makes up an Extension?</title>
<list>
<bullet>%config.m4%: configure options and build instructions</bullet>
<bullet>%php_extension.h%: header files and glue</bullet>
<bullet>%extension.c%: extension definition and function implementation</bullet>
</list>
<break/>
<list>
<bullet>%algorithms.c%: C implementation of algorithms</bullet>
<bullet>%config.m4% / %config.w32%<br/>configure options and build instructions</bullet>
<bullet>%php_extension.h%<br/>header files and glue</bullet>
<bullet>%extension.c%<br/>extension definition and function implementation</bullet>
<bullet>%algorithms.c%<br/>C implementation of algorithms</bullet>
<bullet>%tests/*.phpt%<br/>Tests written in PHP</bullet>
</list>
</slide>

View File

@@ -0,0 +1,12 @@
<slide>
<title>Why not implement something in an extension?</title>
<list>
<bullet>It takes a lot more time to write</bullet>
<bullet>It takes a lot more time to debug</bullet>
<bullet>It takes a lot more time to maintain</bullet>
</list>
<break lines="3"/>
<image filename="time.png"/>
</slide>

View File

@@ -1,5 +1,6 @@
<slide>
<title>The Meat</title>
<title>Extension Set-Up</title>
<subtitle>Headers and Function Definition</subtitle>
<blurb>Header inclusions:</blurb>
<example><![CDATA[

View File

@@ -1,5 +1,6 @@
<slide>
<title>The Meat</title>
<title>Extension Set-Up</title>
<subtitle>Module Definition</subtitle>
<blurb>Module (Extension) definition:</blurb>
<example><![CDATA[

View File

@@ -1,11 +1,12 @@
<slide>
<title>The Meat</title>
<title>Extension Set-Up</title>
<subtitle>Auxiliary Init and Info sections</subtitle>
<blurb>Module INITialisation</blurb>
<example><![CDATA[
PHP_MINIT_FUNCTION(geospatial)
{
REGISTER_DOUBLE_CONSTANT("GEO_DEG_TO_RAD", GEO_DEG_TO_RAD, CONST_CS|CONST_PERSISTENT);
REGISTER_DOUBLE_CONSTANT("GEO_DIAMETER", GEO_DIAMETER, CONST_CS|CONST_PERSISTENT);
return SUCCESS;
}
]]></example>

BIN
slides/internals/time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 KiB

After

Width:  |  Height:  |  Size: 512 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB