com presentations: Added InternetDagarna Talks: jump-bcn19.xml php-internetdagerna19.xml slides/intro/3018.png slides/intro/PH PUnit_Logo.svg slides/intro/composer.xml slides/intro /composer2012.jpg slides/intro/composer2019 .jpg slides/intro/ecosystem-beginning.xml slides/intro/ fig.png slides/intro/fig.xml slides/intro/frameworks. png slides/intro/frameworks.xml slides/intro/interesting- choices.xml slides/intro/msx.jpg slides/intro/msx.xml slides/in
[email protected] (Derick Rethans) Mon, 04 Nov 2019 18:27:01 +0000
| Newsgroups | php.pres |
|---|---|
| Message-ID | <[email protected]> |
Commit: 3377c1dac4de1b06782b337b3106d744715d1e4f Author: Derick Rethans <[email protected]> Mon, 4 Nov 2019 18:27:01 +0000 Parents: 7f4495bf35e78ffd1ddc81dea411de583cff67f3 Branches: master Link: http://git.php.net/?p=presentations.git;a=commitdiff;h=3377c1dac4de1b06782b337b3106d744715d1e4f Log: Added InternetDagarna Talks Changed paths: M jump-bcn19.xml A php-internetdagerna19.xml A slides/intro/3018.png A slides/intro/PHPUnit_Logo.svg A slides/intro/composer.xml A slides/intro/composer2012.jpg A slides/intro/composer2019.jpg A slides/intro/ecosystem-beginning.xml A slides/intro/fig.png A slides/intro/fig.xml A slides/intro/frameworks.png A slides/intro/frameworks.xml A slides/intro/interesting-choices.xml A slides/intro/msx.jpg A slides/intro/msx.xml A slides/intro/new-in-php74.xml A slides/intro/new-in-php80.xml A slides/intro/packagist.xml A slides/intro/packagist2011a.jpg A slides/intro/packagist2011b.jpg A slides/intro/packagist2019.jpg A slides/intro/pear-over-time.xml A slides/intro/pear2003.jpg A slides/intro/pear2019.jpg A slides/intro/php-3018.xml A slides/intro/php-at-25.xml A slides/intro/php7-dce-vld.xml A slides/intro/php7-new.xml A slides/intro/php7-prod.xml A slides/intro/phpclasses.xml A slides/intro/phpclasses2003.jpg A slides/intro/phpclasses2010.jpg A slides/intro/phpclasses2019.jpg A slides/intro/phpstan.png A slides/intro/phpstan.xml A slides/intro/phpunit.xml A slides/intro/psrs.png A slides/intro/tools.xml A slides/intro/user-groups.xml A slides/intro/var_dump.xml M slides/xdebug/infinite.xml M slides/xdebug/local-vars.xml M slides/xdebug/phpinternalsnews.xml M slides/xdebug/phpstorm.xml M slides/xdebug/pimp1-quick.xml M slides/xdebug/resources.xml M slides/xdebug/xdebug.xml M templates/default/image.ezt A templates/default/notes.ezt
diff_3377c1dac4de1b06782b337b3106d744715d1e4f.txt
(text/plain, 28.7 KB)
diff --git a/jump-bcn19.xml b/jump-bcn19.xml index 88ce4aa3..561947da 100644 --- a/jump-bcn19.xml +++ b/jump-bcn19.xml @@ -10,7 +10,7 @@ <twitter>derickr</twitter> <joindin>https://joind.in/XXXXX</joindin> -<slide>slides/mongodb/title.xml</slide> +<slide>slides/xdebug/title.xml</slide> <slide>slides/mongodb/me.xml</slide> <slide>slides/internals/title-agenda.xml</slide> diff --git a/php-internetdagerna19.xml b/php-internetdagerna19.xml new file mode 100644 index 00000000..82446c16 --- /dev/null +++ b/php-internetdagerna19.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="utf-8"?> +<presentation css="derick.css"> +<topic>PHP</topic> +<title> The state of PHP</title> +<event>InternetDagarna</event> +<location>Stockholm, Sweden</location> +<date>November 25th, 2019</date> +<speaker>Derick Rethans</speaker> +<email>[email protected]</email> +<twitter>derickr</twitter> +<url>https://derickrethans.nl/talks/php-internetdagerna19</url> +<joindin></joindin> +<slide>slides/xdebug/title.xml</slide> +<slide>slides/mongodb/me.xml</slide> + +<slide>slides/intro/msx.xml</slide> + +<slide>slides/intro/nold3.xml</slide> +<slide>slides/intro/phpannounce.xml</slide> +<slide>slides/intro/capi.xml</slide> +<slide>slides/intro/php-3018.xml</slide> + +<slide>slides/intro/ecosystem-beginning.xml</slide> +<slide>slides/intro/interesting-choices.xml</slide> + +<slide>slides/intro/php-at-25.xml</slide> + +<slide>slides/intro/tools.xml</slide> + +<slide>slides/intro/pear-over-time.xml</slide> +<slide>slides/intro/phpclasses.xml</slide> +<slide>slides/intro/packagist.xml</slide> +<slide>slides/intro/composer.xml</slide> + +<slide>slides/intro/frameworks.xml</slide> +<slide>slides/intro/fig.xml</slide> + +<slide>slides/intro/var_dump.xml</slide> +<slide>slides/xdebug/xdebug.xml</slide> +<slide>slides/xdebug/local-vars.xml</slide> +<slide>slides/xdebug/infinite.xml</slide> +<slide>slides/xdebug/pimp1-quick.xml</slide> +<slide>slides/xdebug/phpstorm.xml</slide> + +<slide>slides/intro/phpunit.xml</slide> +<slide>slides/intro/phpstan.xml</slide> + +<slide>slides/internals/stages.xml</slide> + +<slide>slides/intro/php7-new.xml</slide> +<slide>slides/intro/php7-prod.xml</slide> + +<slide>slides/intro/php7-dce-vld.xml</slide> + +<slide>slides/intro/new-in-php74.xml</slide> +<slide>slides/internals/php74-typed-properties.xml</slide> +<slide>slides/internals/php74-variance-return-ok.xml</slide> +<slide>slides/internals/php74-variance-argument-wrong.xml</slide> + +<slide>slides/internals/php74-ffi.xml</slide> +<slide>slides/internals/php74-preloading-setup.xml</slide> +<slide>slides/internals/php74-preloading-zf.xml</slide> +<slide>slides/internals/php74-preloading-with-ffi.xml</slide> +<slide>slides/internals/php74-timeline.xml</slide> +<slide>slides/xdebug/phpinternalsnews.xml</slide> + +<slide>slides/intro/new-in-php80.xml</slide> + +<slide>slides/intro/user-groups.xml</slide> + +<slide>slides/mongodb/questions.xml</slide> +<slide>slides/xdebug/resources.xml</slide> + +</presentation> diff --git a/slides/intro/3018.png b/slides/intro/3018.png new file mode 100644 index 00000000..b7a3e5a8 Binary files /dev/null and b/slides/intro/3018.png differ diff --git a/slides/intro/PHPUnit_Logo.svg b/slides/intro/PHPUnit_Logo.svg new file mode 100644 index 00000000..c46bfb0c --- /dev/null +++ b/slides/intro/PHPUnit_Logo.svg @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 23.0.5, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 56.69 22.68" style="enable-background:new 0 0 56.69 22.68;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#356388;} + .st1{fill:#39B54A;} + .st2{fill:#3C9CD7;} +</style> +<g> + <rect x="32.09" y="6.47" class="st0" width="1.97" height="1.77"/> + <rect x="40.93" y="6.47" class="st1" width="1.93" height="1.88"/> + <rect x="35.05" y="14.09" class="st1" width="1.93" height="1.88"/> + <rect x="32.09" y="8.8" class="st1" width="1.97" height="1.88"/> + <path class="st0" d="M32.09,11.24v2.22c0,0.52-0.28,0.84-0.75,0.84c-0.44,0-0.76-0.28-0.76-0.85V6.47H30.3 + c-1.18,0-1.81,0.76-1.81,2.24v4.8c0,1.8,1.03,2.61,2.73,2.61c1.6,0,2.85-0.92,2.84-2.65v-2.22H32.09z"/> + <path class="st2" d="M25.25,6.47H24c-1.18,0-1.81,0.76-1.81,2.24v7.27h2.08V12.6h0.92c1.72,0,2.45-1.2,2.45-3.19 + C27.64,7.47,26.81,6.47,25.25,6.47z M24.87,10.91h-0.6V8.18h0.61c0.49,0,0.73,0.37,0.73,1.29C25.61,10.45,25.35,10.91,24.87,10.91z + "/> + <path class="st2" d="M12.43,6.47h-1.25c-1.18,0-1.81,0.76-1.81,2.24v7.27h2.08V12.6h0.92c1.72,0,2.45-1.2,2.45-3.19 + C14.82,7.47,13.99,6.47,12.43,6.47z M12.04,10.91h-0.6V8.18h0.61c0.49,0,0.73,0.37,0.73,1.29C12.79,10.45,12.52,10.91,12.04,10.91z + "/> + <path class="st2" d="M20.89,6.47c-1.18,0-1.81,0.76-1.81,2.24v1.36v0.19H17.6v-0.19v-3.6h-0.27c-1.18,0-1.81,0.76-1.81,2.24v7.27 + h2.08v-3.65v-0.19v0h1.48v0v0.19v3.65h2.07v-9.5H20.89z"/> + <path class="st0" d="M47.18,10.36V8.87h-0.97V7.26H45.6c-0.85,0-1.31,0.55-1.31,1.61h-0.63v1.49h0.63v4.2 + c0,1.05,0.75,1.52,1.69,1.52c0.37,0,0.84-0.07,1.19-0.19v-1.53c-0.15,0.03-0.36,0.04-0.56,0.04c-0.31,0-0.4-0.15-0.4-0.41v-3.63 + H47.18z"/> + <path class="st0" d="M38.46,8.64c-0.63,0-1.13,0.27-1.48,0.77V8.8h-0.63c-0.85,0-1.31,0.55-1.31,1.61v3.12h1.93V11 + c0-0.43,0.21-0.75,0.53-0.75c0.43,0,0.52,0.33,0.52,0.63v5.09h1.92v-5.81C39.96,9.22,39.29,8.64,38.46,8.64z"/> + <path class="st0" d="M42.24,8.87c-0.85,0-1.31,0.55-1.31,1.61v5.49h1.93v-7.1H42.24z"/> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/slides/intro/composer.xml b/slides/intro/composer.xml new file mode 100644 index 00000000..b5db0e55 --- /dev/null +++ b/slides/intro/composer.xml @@ -0,0 +1,13 @@ +<slide> +<title>Composer</title> + +<div effect="fade-out"> +<blurb class="center">2012</blurb> +<image width="100%" filename="composer2012.jpg"/> +</div> + +<div effect="fade-in"> +<blurb class="center">2019</blurb> +<image width="100%" filename="composer2019.jpg"/> +</div> +</slide> diff --git a/slides/intro/composer2012.jpg b/slides/intro/composer2012.jpg new file mode 100644 index 00000000..028a4bb2 Binary files /dev/null and b/slides/intro/composer2012.jpg differ diff --git a/slides/intro/composer2019.jpg b/slides/intro/composer2019.jpg new file mode 100644 index 00000000..01766623 Binary files /dev/null and b/slides/intro/composer2019.jpg differ diff --git a/slides/intro/ecosystem-beginning.xml b/slides/intro/ecosystem-beginning.xml new file mode 100644 index 00000000..a4482838 --- /dev/null +++ b/slides/intro/ecosystem-beginning.xml @@ -0,0 +1,14 @@ +<slide> +<title>LAMP</title> + +<blurb class="centre">Linux, Apache, MySQL, PHP</blurb> +<break lines="2"/> + +<blurb>Performance:<br/><small>%mod_php%, shared-nothing, easy to scale up</small></blurb> +<blurb>Robust:<br/><small>Prefork, shared-nothing, SQL LIMIT</small></blurb> +<blurb>Security:<br/><small>%max_execution_time%, %memory_limit%, %"safe" mode%</small></blurb> + +<break lines="2"/> +<blurb class="big-centre">Perfect for shared hosting</blurb> +</slide> + diff --git a/slides/intro/fig.png b/slides/intro/fig.png new file mode 100644 index 00000000..bc90db4c Binary files /dev/null and b/slides/intro/fig.png differ diff --git a/slides/intro/fig.xml b/slides/intro/fig.xml new file mode 100644 index 00000000..b23d392b --- /dev/null +++ b/slides/intro/fig.xml @@ -0,0 +1,24 @@ +<slide> +<image filename="fig.png" width="25%"/> + +<break lines="2"/> +<image align="right" filename="psrs.png"/> + +<list> + <bullet>2009: *PHP Standards Group*</bullet> + <bullet>2011: *Framework Interoperability Group*</bullet> +</list> +<break/> + +<list> + <bullet>*PSR-0* and *PSR-4*: key enabler for Composer</bullet> + <bullet>*PSR-1* and *PSR-12*: preset in many IDEs, which makes them the default coding standard for nearly all PHP projects</bullet> +</list> +<break/> + +<list> + <bullet>2017: *FIG 3.0*</bullet> + <bullet>2018: *Symfony leaves FIG*</bullet> +</list> + +</slide> diff --git a/slides/intro/frameworks.png b/slides/intro/frameworks.png new file mode 100644 index 00000000..034a818f Binary files /dev/null and b/slides/intro/frameworks.png differ diff --git a/slides/intro/frameworks.xml b/slides/intro/frameworks.xml new file mode 100644 index 00000000..154ab421 --- /dev/null +++ b/slides/intro/frameworks.xml @@ -0,0 +1,5 @@ +<slide> +<title>Frameworks</title> + +<image filename="frameworks.png" width="100%"/> +</slide> diff --git a/slides/intro/interesting-choices.xml b/slides/intro/interesting-choices.xml new file mode 100644 index 00000000..38729e3d --- /dev/null +++ b/slides/intro/interesting-choices.xml @@ -0,0 +1,24 @@ +<slide> +<title>What Was Rasmus Thinking?</title> + +<break lines="3"/> +<div effect="fade-in-out"><blurb class="big-centre">Case insensitive<br/>function names?</blurb></div> +<div effect="fade-in-out"><blurb class="big-centre">Naming inconsistencies?</blurb></div> +<div effect="fade-in-out"><blurb class="big-centre">What's with the %$% signs?</blurb></div> +<div effect="fade-in-out"><blurb class="big-centre">Globals?</blurb></div> +<div effect="fade-in-out"><blurb class="big-centre">%register_globals%β½</blurb></div> +<div effect="fade-in-out"><blurb class="big-centre">βΈ%magic_quotes%β½</blurb></div> + +<div effect="fade-in"> +<blurb class="big-centre">OMGWTFBBQ?</blurb> +<example><![CDATA[<?php +array_search($needle, $haystack); +strstr($haystack, $needle); +in_array($needle, $haystack); +substr_count($haystack, $needle); +array_key_exists($needle, $haystack); +strchr($haystack, $needle); +?>]]></example> +</div> + +</slide> diff --git a/slides/intro/msx.jpg b/slides/intro/msx.jpg new file mode 100644 index 00000000..6c6f220c Binary files /dev/null and b/slides/intro/msx.jpg differ diff --git a/slides/intro/msx.xml b/slides/intro/msx.xml new file mode 100644 index 00000000..1a15632f --- /dev/null +++ b/slides/intro/msx.xml @@ -0,0 +1,6 @@ +<slide> +<title>My First Computer</title> + +<break lines="4"/> +<image filename="msx.jpg"/> +</slide> diff --git a/slides/intro/new-in-php74.xml b/slides/intro/new-in-php74.xml new file mode 100644 index 00000000..4344ebbc --- /dev/null +++ b/slides/intro/new-in-php74.xml @@ -0,0 +1,18 @@ +<slide> +<title>What's new in PHP 7.4?</title> + +<list> +<bullet>*Typed Properties*</bullet> +<bullet>*FFI*</bullet> +<bullet>*Preloading*</bullet> +<bullet>Variance Checking for Arguments/Return Types</bullet> +<bullet>Null Coalesce Assignment (%??=%)</bullet> +<bullet>Spread Operator:<br/>%$apples = ['π', 'π']; $fruits = ['π', ...$apples, 'π '];%</bullet> +<bullet>Hash Extension always available</bullet> +<bullet>New Custom Serialisation</bullet> +<bullet>Weak References</bullet> +<bullet>Short Arrow Functions: %$arrow = fn($x) => $x + $y;%</bullet> +<bullet>Numerical Literal Separator: %3.141_592_653_589_793_238_462_643_383%</bullet> +</list> + +</slide> diff --git a/slides/intro/new-in-php80.xml b/slides/intro/new-in-php80.xml new file mode 100644 index 00000000..7e5311a6 --- /dev/null +++ b/slides/intro/new-in-php80.xml @@ -0,0 +1,8 @@ +<slide> +<title>What's coming in PHP 8.0?</title> + +<div effect="fade-in"> +<blurb class="big-centre">JIT<br/><small>*Just In Time* Compiler</small></blurb> +</div> + +</slide> diff --git a/slides/intro/packagist.xml b/slides/intro/packagist.xml new file mode 100644 index 00000000..40a479d9 --- /dev/null +++ b/slides/intro/packagist.xml @@ -0,0 +1,18 @@ +<slide> +<title>Packagist</title> + +<div effect="fade-out"> +<blurb class="center">2011 (start)</blurb> +<image width="100%" filename="packagist2011a.jpg"/> +</div> + +<div effect="fade-in-out"> +<blurb class="center">2011 (end)</blurb> +<image width="100%" filename="packagist2011b.jpg"/> +</div> + +<div effect="fade-in"> +<blurb class="center">2019</blurb> +<image width="100%" filename="packagist2019.jpg"/> +</div> +</slide> diff --git a/slides/intro/packagist2011a.jpg b/slides/intro/packagist2011a.jpg new file mode 100644 index 00000000..439a89c5 Binary files /dev/null and b/slides/intro/packagist2011a.jpg differ diff --git a/slides/intro/packagist2011b.jpg b/slides/intro/packagist2011b.jpg new file mode 100644 index 00000000..7228272e Binary files /dev/null and b/slides/intro/packagist2011b.jpg differ diff --git a/slides/intro/packagist2019.jpg b/slides/intro/packagist2019.jpg new file mode 100644 index 00000000..ffc77fc8 Binary files /dev/null and b/slides/intro/packagist2019.jpg differ diff --git a/slides/intro/pear-over-time.xml b/slides/intro/pear-over-time.xml new file mode 100644 index 00000000..99413281 --- /dev/null +++ b/slides/intro/pear-over-time.xml @@ -0,0 +1,13 @@ +<slide> +<title>PEAR</title> + +<div effect="fade-out"> +<blurb class="center">2003</blurb> +<image width="100%" filename="pear2003.jpg"/> +</div> + +<div effect="fade-in"> +<blurb class="center">2019</blurb> +<image width="100%" filename="pear2019.jpg"/> +</div> +</slide> diff --git a/slides/intro/pear2003.jpg b/slides/intro/pear2003.jpg new file mode 100644 index 00000000..33b18ab8 Binary files /dev/null and b/slides/intro/pear2003.jpg differ diff --git a/slides/intro/pear2019.jpg b/slides/intro/pear2019.jpg new file mode 100644 index 00000000..931ecdcc Binary files /dev/null and b/slides/intro/pear2019.jpg differ diff --git a/slides/intro/php-3018.xml b/slides/intro/php-3018.xml new file mode 100644 index 00000000..ee05a96f --- /dev/null +++ b/slides/intro/php-3018.xml @@ -0,0 +1,6 @@ +<slide> +<title>My First PHP</title> + +<break lines="2"/> +<image filename="3018.png"/> +</slide> diff --git a/slides/intro/php-at-25.xml b/slides/intro/php-at-25.xml new file mode 100644 index 00000000..58d41204 --- /dev/null +++ b/slides/intro/php-at-25.xml @@ -0,0 +1,4 @@ +<slide> +<break lines="9"/> +<blurb class="big-centre">PHP at 25<br/><br/>π πΈ π° π· π» π₯ π© πΎ</blurb> +</slide> diff --git a/slides/intro/php7-dce-vld.xml b/slides/intro/php7-dce-vld.xml new file mode 100644 index 00000000..50584edb --- /dev/null +++ b/slides/intro/php7-dce-vld.xml @@ -0,0 +1,218 @@ +<slide> +<title>Dead Code Elimination (DCE)</title> + +<div effect="fade-out"> +<example><![CDATA[ +php -d opcache.optimization_level=-1 -d vld.active=1 script +]]></example> + +<example><![CDATA[ +<?php +function fn() { + $a = 1; + return 0; +} +]]></example> + +<blurb>PHP 7.1</blurb> +<example> +compiled vars: !0 = $a +line #* E I O op ext return operands + 3 0 E > QM_ASSIGN !0 1 + 4 1 > RETURN 0 +</example> + +<blurb>PHP 7.2</blurb> +<example> +compiled vars: none +line #* E I O op ext return operands + 4 0 E > > RETURN 0 +</example> +</div> + +<div effect="fade-in-out"> +<example><![CDATA[ +<?php +function foo(string $s1, string $s2, string $s3, string $s4) { + $x = ($s1 . $s2) . ($s3 . $s4); + $x = 0; + return $x; +} +]]></example> + +<example><![CDATA[ +PHP 7.1 PHP 7.2 +foo: (lines=10, args=4, vars=5, tmps=3) foo: (lines=5, args=4, vars=4, tmps=3) +L0: CV0($s1) = RECV 1 L0: CV0($s1) = RECV 1 +L1: CV1($s2) = RECV 2 L1: CV1($s2) = RECV 2 +L2: CV2($s3) = RECV 3 L2: CV2($s3) = RECV 3 +L3: CV3($s4) = RECV 4 L3: CV3($s4) = RECV 4 +L4: T6 = CONCAT CV0($s1) CV1($s2) L4: RETURN int(0) +L5: T7 = CONCAT CV2($s3) CV3($s4) +L6: T5 = CONCAT T6 T7 +L7: ASSIGN CV4($x) T5 +L8: ASSIGN CV4($x) int(0) +L9: RETURN CV4($x) +]]></example> +</div> + +<div effect="fade-in-out"> +<blurb>Try to trick it:</blurb> +<example><![CDATA[ +<?php +function foo($a) { + $b = $a += 3; + return $a; +} +]]></example> + +<blurb>PHP 7.2</blurb> +<example><![CDATA[ +compiled vars: !0 = $a, !1 = $b +line #* E I O op ext return operands + 2 0 E > RECV !0 + 3 1 ASSIGN_ADD 0 !1 !0, 3 + 4 2 > RETURN !0 +]]></example> +</div> + +<div effect="fade-in-out"> +<blurb>But...</blurb> +<example fontsize="1.05em" result='0' title="" type=""><![CDATA[ +function foo(int $x, int $y) { + $a = [$x]; + $a[1] = $y; + $a = $y; + return $a; +} +]]></example> + +<table class="two"><tr> +<td> +<blurb>PHP 7.2</blurb> +<example> +compiled vars: !0 = $x, !1 = $y, !2 = $a +line #* op return operands + 2 0 RECV !0 + 1 RECV !1 + 3 2 INIT_ARRAY !2 !0 + 4 3 ASSIGN_DIM !2, 1 + 4 OP_DATA !1 + 5 5 ASSIGN !2, !1 + 6 6 RETURN !2 +</example> +</td> +<td> +<blurb>PHP 7.3</blurb> +<example> +compiled vars: !0 = $x, !1 = $y, !2 = $a +line #* op return operands + 2 0 RECV !0 + 1 RECV !1 + 5 2 QM_ASSIGN !2 !1 + 6 3 RETURN !2 +</example> +</td> +</tr> +</table> +</div> + +<div effect="fade-in-out"> +<example fontsize="1.05em" result='0' title="" type=""><![CDATA[ +<?php +class A { } +function foo(int $x) { + $a = new A; + $a->foo = $x; + return $x; +} +]]></example> + +<blurb>PHP 7.3</blurb> +<example><![CDATA[ +compiled vars: !0 = $x +line #* op return operands + 3 0 RECV !0 + 6 1 RETURN !0 +]]></example> +</div> + +<div effect="fade-in-out"> +<example fontsize="1.05em" result='0' title="" type=""><![CDATA[ +<?php +class A { + function __destruct() {} +} +function foo(int $x) { + $a = new A; + $a->foo = $x; + return $x; +} +]]></example> + +<blurb>PHP 7.3</blurb> +<example><![CDATA[ +compiled vars: !0 = $x, !1 = $a +line #* op return operands + 5 0 RECV !0 + 6 1 NEW $2 :9 + 2 DO_FCALL + 3 ASSIGN !1, $2 + 7 4 ASSIGN_OBJ !1, 'foo' + 5 OP_DATA !0 + 8 6 RETURN !0 + 9 7* RETURN null +]]></example> +</div> + +<div effect="fade-in-out"> +<example><![CDATA[ +<?php +function foo(int $x) { + if ($x) { + $a = [0,1]; + } else { + $a = [0,2]; + } + return $a[0]; +} +]]></example> + +<blurb fontsize="1.1em" align="left">PHP 7.3</blurb> +<example><![CDATA[ +compiled vars: !0 = $x +line #* op return operands + 2 0 RECV !0 + 8 1 RETURN 0 +]]></example> +</div> + +<div effect="fade-in-out"> +<example fontsize="1.05em" result='0' title="" type=""><![CDATA[ +<?php +function foo() { + $o = new stdClass(); + $o->foo = 0; + $i = 1; + $c = $i < 2; + if ($c) { + $k = 2 * $i; + $o->foo = $i; + echo $o->foo; + } + $o->foo += 2; + $o->foo++; + return $o->foo; +} +]]></example> + +<blurb>PHP 7.4</blurb> +<example><![CDATA[ +compiled vars: none +line #* op return operands + 10 0 ECHO 1 + 14 1 RETURN 4 +]]></example> +</div> + +</slide> diff --git a/slides/intro/php7-new.xml b/slides/intro/php7-new.xml new file mode 100644 index 00000000..07851590 --- /dev/null +++ b/slides/intro/php7-new.xml @@ -0,0 +1,33 @@ +<slide><title>PHP 7</title> + +<div effect="fade-out"> +<blurb class="big-centre">Engine Improvements</blurb> + +<blurb class="center">β 100%+ performance gain on most real-world applications</blurb> +<blurb class="center">β Lower memory usage, sometimes drastically lower</blurb> +<break/> +<hr/> +<break/> +<list> + <bullet type="none">zval size reduced from 24 to 16 bytes</bullet> + <bullet type="none">Hashtable size reduced from 72 to 56 bytes</bullet> + <bullet type="none">Hashtable bucket size reduced from 72 to 32 bytes</bullet> + <bullet type="none">Immutable array optimization</bullet> +</list> +</div> + +<div effect="fade-in"> +<list> +<bullet>New memory allocator similar to jemalloc</bullet> +<bullet>Faster hashtable iteration API</bullet> +<bullet>Array duplication optimization</bullet> +<bullet>PCRE JIT enabled by default</bullet> +<bullet>Precomputed string hashes</bullet> +<bullet>Fast ZPP (ZendParseParameters) implementation</bullet> +<bullet>Faster stack-allocated zvals (instead of heap)</bullet> +<bullet>Optimized VM calling</bullet> +<bullet>Global register variables with gcc 4.8+</bullet> +<bullet>plus hundreds of micro-optimizations</bullet> +</list> +</div> +</slide> diff --git a/slides/intro/php7-prod.xml b/slides/intro/php7-prod.xml new file mode 100644 index 00000000..b8c81b35 --- /dev/null +++ b/slides/intro/php7-prod.xml @@ -0,0 +1,10 @@ +<slide> +<title>PHP 7 in production</title> + +<div effect="fade-out"> +<image width="100%" filename="perc95.png" align="center"/> +</div> +<div effect="fade-in"> +<image width="100%" filename="mem.png" align="center"/> +</div> +</slide> diff --git a/slides/intro/phpclasses.xml b/slides/intro/phpclasses.xml new file mode 100644 index 00000000..ce2dae5c --- /dev/null +++ b/slides/intro/phpclasses.xml @@ -0,0 +1,18 @@ +<slide> +<title>phpclasses</title> + +<div effect="fade-out"> +<blurb class="center">2003</blurb> +<image width="100%" filename="phpclasses2003.jpg"/> +</div> + +<div effect="fade-in-out"> +<blurb class="center">2010</blurb> +<image width="100%" filename="phpclasses2010.jpg"/> +</div> + +<div effect="fade-in"> +<blurb class="center">2019</blurb> +<image width="100%" filename="phpclasses2019.jpg"/> +</div> +</slide> diff --git a/slides/intro/phpclasses2003.jpg b/slides/intro/phpclasses2003.jpg new file mode 100644 index 00000000..a44752fb Binary files /dev/null and b/slides/intro/phpclasses2003.jpg differ diff --git a/slides/intro/phpclasses2010.jpg b/slides/intro/phpclasses2010.jpg new file mode 100644 index 00000000..8d99ecf0 Binary files /dev/null and b/slides/intro/phpclasses2010.jpg differ diff --git a/slides/intro/phpclasses2019.jpg b/slides/intro/phpclasses2019.jpg new file mode 100644 index 00000000..5d84ec5c Binary files /dev/null and b/slides/intro/phpclasses2019.jpg differ diff --git a/slides/intro/phpstan.png b/slides/intro/phpstan.png new file mode 100644 index 00000000..809f6e18 Binary files /dev/null and b/slides/intro/phpstan.png differ diff --git a/slides/intro/phpstan.xml b/slides/intro/phpstan.xml new file mode 100644 index 00000000..4b332078 --- /dev/null +++ b/slides/intro/phpstan.xml @@ -0,0 +1,4 @@ +<slide> +<break lines="1"/> +<image filename="phpstan.png" width="80%"/> +</slide> diff --git a/slides/intro/phpunit.xml b/slides/intro/phpunit.xml new file mode 100644 index 00000000..91c9a615 --- /dev/null +++ b/slides/intro/phpunit.xml @@ -0,0 +1,4 @@ +<slide> +<break lines="7"/> +<image filename="PHPUnit_Logo.svg" width="80%"/> +</slide> diff --git a/slides/intro/psrs.png b/slides/intro/psrs.png new file mode 100644 index 00000000..388ec04d Binary files /dev/null and b/slides/intro/psrs.png differ diff --git a/slides/intro/tools.xml b/slides/intro/tools.xml new file mode 100644 index 00000000..ec39f6f9 --- /dev/null +++ b/slides/intro/tools.xml @@ -0,0 +1,8 @@ +<slide> + +<break lines="2"/> +<blurb class="big-centre">Libraries and Tools</blurb> +<break lines="2"/> +<blurb class="big-centre">π π π π π π </blurb> +<blurb class="big-centre">π¨ ποΈ βοΈ βοΈ π οΈ π‘οΈ<br/>π© π§ βοΈ ποΈ π βοΈ </blurb> +</slide> diff --git a/slides/intro/user-groups.xml b/slides/intro/user-groups.xml new file mode 100644 index 00000000..49d2299c --- /dev/null +++ b/slides/intro/user-groups.xml @@ -0,0 +1,7 @@ +<slide> +<title>Usergroups</title> + +<div class="center" width="100%"> +<iframe align="center" width="1200" height="700" filename="http://php.ug/"/> +</div> +</slide> diff --git a/slides/intro/var_dump.xml b/slides/intro/var_dump.xml new file mode 100644 index 00000000..05de5c1d --- /dev/null +++ b/slides/intro/var_dump.xml @@ -0,0 +1,18 @@ +<slide> +<title>Debugging</title> + +<div effect="fade-out"> +<break lines="5"/> +<blurb class="big-centre">With<br/><br/>%echo%, %var_dump%, and %print_r%</blurb> +</div> + +<div effect="fade-in"> +<blurb class="big-centre">With helpers like *Kint*</blurb> + +<iframe zoom="2" width="1580" filename="http://whisky/test/xdebug/var_dump-kint.php"/> + +<break/> +<blurb>%https://github.com/raveren/kint.git%</blurb> +</div> + +</slide> diff --git a/slides/xdebug/infinite.xml b/slides/xdebug/infinite.xml index d653ecab..cd946514 100644 --- a/slides/xdebug/infinite.xml +++ b/slides/xdebug/infinite.xml @@ -2,7 +2,9 @@ <slide fontsize="6em"> <title>Protection</title> - <image filename="infinite.png" align="right"/> + <image filename="infinite.png" width="75%" align="center"/> + + <break lines="3" /> <example class="code_large" fontsize="1.7em"> xdebug.max_nesting_level=4</example> diff --git a/slides/xdebug/local-vars.xml b/slides/xdebug/local-vars.xml index 174536c9..0a2d8360 100644 --- a/slides/xdebug/local-vars.xml +++ b/slides/xdebug/local-vars.xml @@ -2,7 +2,7 @@ <slide fontsize="6em"> <title>Local variables</title> - <image filename="local-vars.png" align="center"/> + <image width="75%" filename="local-vars.png" align="center"/> <break lines="3" /> <example class="code_large">; enable showing local vars in error messages diff --git a/slides/xdebug/phpinternalsnews.xml b/slides/xdebug/phpinternalsnews.xml index 5ac5671c..03a5946e 100644 --- a/slides/xdebug/phpinternalsnews.xml +++ b/slides/xdebug/phpinternalsnews.xml @@ -1,5 +1,6 @@ <slide> +<break/> <iframe align="center" scrolling="no" width="1280" height="720" filename="http://phpinternals.news" attr=" "/> <break lines="2"/> -<blurb align="center">%https://phpinternals.news%</blurb> +<blurb class="big-centre">%https://phpinternals.news%</blurb> </slide> diff --git a/slides/xdebug/phpstorm.xml b/slides/xdebug/phpstorm.xml index f5e54a4a..e727e6ec 100644 --- a/slides/xdebug/phpstorm.xml +++ b/slides/xdebug/phpstorm.xml @@ -1 +1 @@ -<slide><title>PhpStorm</title><break/><image filename="phpstorm.png"/></slide> +<slide><title>PhpStorm</title><break/><image width="80%" filename="phpstorm.png"/></slide> diff --git a/slides/xdebug/pimp1-quick.xml b/slides/xdebug/pimp1-quick.xml index 6a8ae552..6728b7cb 100644 --- a/slides/xdebug/pimp1-quick.xml +++ b/slides/xdebug/pimp1-quick.xml @@ -3,11 +3,11 @@ <title>Error Messages</title> <div effect="fade-out"> - <image align="center" filename="stacktrace4.png"/> + <image width="75%" align="center" filename="stacktrace4.png"/> </div> <div effect="fade-in"> - <image align="center" filename="stacktrace4a.png"/> + <image width="75%" align="center" filename="stacktrace4a.png"/> </div> </slide> diff --git a/slides/xdebug/resources.xml b/slides/xdebug/resources.xml index c074a09c..741a0c26 100644 --- a/slides/xdebug/resources.xml +++ b/slides/xdebug/resources.xml @@ -5,6 +5,7 @@ <qrcode>https://derickrethans.nl/talks/:-:talk_id:-:</qrcode> <break line="2"/> <blurb class="center">*Slides*</blurb> + <blurb class="center">%:-:url:-:%</blurb> <blurb class="center">%:-:joindin:-:%</blurb> <break line="2"/> <blurb class="center">:-:speaker:-: β @:-:twitter:-: β :-:email:-:</blurb> diff --git a/slides/xdebug/xdebug.xml b/slides/xdebug/xdebug.xml index a6f5275c..8104590a 100644 --- a/slides/xdebug/xdebug.xml +++ b/slides/xdebug/xdebug.xml @@ -1,17 +1,9 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<slide fontsize="6em"> - <title>Xdebug</title> - <blurb> </blurb> - <blurb> </blurb> - <blurb> </blurb> - <blurb> </blurb> - <list fontsize="4.5em"> - <bullet>No more "echo' debugging"</bullet> - <bullet>Zend extension</bullet> - <bullet type="none" marginleft="2em">zend_extension=/path/to/xdebug.so</bullet> - <bullet type="none" marginleft="2em">zend_extension_ts=C:/path/to/xdebug.dll</bullet> - <bullet>Hooks into the standard error handler</bullet> - <bullet type="none" marginleft="2em">and into the execution of functions</bullet> - </list> +<slide> + +<image filename="xdebug-logo.png"/> + +<break lines="4"/> +<blurb class="big-centre">Debugging Aid</blurb> +<blurb class="big-centre">Step Debugger</blurb> </slide> diff --git a/templates/default/image.ezt b/templates/default/image.ezt index cb4e93be..acdb5a28 100644 --- a/templates/default/image.ezt +++ b/templates/default/image.ezt @@ -1,6 +1,7 @@ {use $node, $pres, $inline = false} {var $align = get_attribute( $node, 'align' )} {var $attr = get_attribute( $node, 'attr' )} +{var $width = get_attribute( $node, 'width' )} {if $attr}<div{if $align} style='float: {$align}'{/if}><div>{/if} -<img {if $inline}class='inline' {/if}{if $align}align='{$align}' class='{$align}' {/if}src='{$pres->base}{get_attribute( $node, 'filename' )}'/> +<img {if $inline}class='inline' {/if}{if $align}align='{$align}' class='{$align}' {/if}{if $width}width='{$width}' {/if}src='{$pres->base}{get_attribute( $node, 'filename' )}'/> {if $attr}<p class='attribution'>{$attr}</p></div></div>{/if} diff --git a/templates/default/notes.ezt b/templates/default/notes.ezt new file mode 100644 index 00000000..e69de29b