DPC Extensions Tutorial

This commit is contained in:
Derick Rethans
2024-03-12 16:12:07 +00:00
parent cc449535d1
commit 3a8fa4b8dc
4 changed files with 84 additions and 2 deletions

64
phpext-dpc24.xml Normal file
View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<presentation css="derick.css">
<topic>PHP</topic>
<title>Writing A PHP Extension</title>
<event>Dutch PHP Conference</event>
<location>Amsterdam, The Netherlands</location>
<date>March 14th, 2024</date>
<speaker>Derick Rethans</speaker>
<email>derick@php.net</email>
<twitter>derickr</twitter>
<mastodon>@derickr@phpc.social</mastodon>
<url>https://derickrethans.nl/talks/phpext-dpc24</url>
<joindin></joindin>
<slide>slides/xdebug/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/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-part1-arginfo.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/internals/debug.xml</slide>
<slide>slides/mongodb/questions.xml</slide>
<slide>slides/internals/live-coding.xml</slide>
<slide>slides/mongodb/resources.xml</slide>
</presentation>

View File

@@ -5,7 +5,7 @@
<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>%lib/algorithm.c%<br/>C implementation of algorithms</bullet>
<bullet>%tests/*.phpt%<br/>Tests written in PHP</bullet>
</list>
</slide>

View File

@@ -0,0 +1,18 @@
<slide>
<title>Let's Get Practical</title>
<blurb>*Directory:*<br/>%mkdir tutorial-geospatial &amp;&amp; cd tutorial-geospatial &amp;&amp; git init%</blurb>
<blurb>*Algorithms:*<br/>%wget https://derickrethans.nl/files/dump/rdp.tgz -O /tmp/rdp.tgz%<br/><br/>%mkdir lib &amp;&amp; cd lib &amp;&amp; tar xvzf /tmp/rdp.tgz &amp;&amp; cd -%</blurb>
<blurb>*Skeleton:*<br/>%php ~/dev/php/php-src.git/ext/ext_skel.php%<br/>%&#160;&#160;&#160;&#160;--ext geospatial --author "Your Name" --dir . --onlyunix%</blurb>
<blurb>*Test File:*<br/>%https://derickrethans.nl/files/dump/geojson-belgium.json%</blurb>
<break lines="2"/>
<div effect="fade-in">
<blurb>*PDF with Code as Diffs:*<br/>%https://derickrethans.nl/files/dump/tutorial-geospatial.pdf%</blurb>
<blurb>*GIT repository:*<br/>%https://github.com/derickr/tutorial-geospatial%</blurb>
</div>
</slide>

View File

@@ -15,7 +15,7 @@
</table>
<break lines="2"/>
<blurb class="centre">%docs/parameter-parsing-api.md%</blurb>
<blurb class="centre">%https://wiki.php.net/rfc/fast_zpp%</blurb>
<break lines="2"/>
<image filename="inputs.jpg" attr="Clive Darra - https://www.flickr.com/photos/fsse-info/3414368958/ - CC-BY-SA"/>