PHP London (UG) Extensions talk
59
php-ext-phpldn18.xml
Normal 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>
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
<blurb>Comments:</blurb>
|
||||
<example><![CDATA[
|
||||
dnl $Id$
|
||||
dnl config.m4 for extension geospatial
|
||||
]]></example>
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
<blurb>Comments:</blurb>
|
||||
<example><![CDATA[
|
||||
// $Id$
|
||||
// vim:ft=javascript
|
||||
]]></example>
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 254 KiB After Width: | Height: | Size: 267 KiB |
@@ -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>
|
||||
|
||||
12
slides/internals/extension-why-not1.xml
Normal 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>
|
||||
|
||||
@@ -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[
|
||||
|
||||
@@ -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[
|
||||
|
||||
@@ -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
|
After Width: | Height: | Size: 834 KiB |
|
Before Width: | Height: | Size: 422 KiB After Width: | Height: | Size: 512 KiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 2.6 MiB |