[PRES] [presentations] master: DPC talk, and PHP talks for phpDay and IPC
[email protected] (Derick Rethans) Sun, 4 May 2025 17:45:03 +0000
| Newsgroups | php.pres |
|---|---|
| Message-ID | <[email protected]> |
Author: Derick Rethans (derickr) Date: 2025-05-04T18:34:16+01:00 Commit: https://github.com/php/presentations/commit/6380e3233b2c687aff5f1deaab807b990adf7791 Raw diff: https://github.com/php/presentations/commit/6380e3233b2c687aff5f1deaab807b990adf7791.diff DPC talk, and PHP talks for phpDay and IPC Changed paths: A php-ipc25.xml A php-phpday25.xml A slides/internals/php85-asymmetric-visibility-static.xml A slides/internals/php85-attributes-on-constants.xml A slides/internals/php85-closures-in-constant-expressions.xml A slides/internals/php85-fcc-in-constant-expressions.xml A slides/internals/php85-grapheme-levenstein.xml A slides/internals/php85-grapheme-levenstein2.xml A slides/internals/php85-nodiscard-attribute.xml A slides/internals/timeline-2025-05.png A xdebug-dpc25.xml M slides/internals/php84-policy-repository.xml M slides/internals/php84-release-cycle.xml M slides/mongodb/me.xml Diff: diff --git a/php-ipc25.xml b/php-ipc25.xml new file mode 100644 index 00000000..b62777c9 --- /dev/null +++ b/php-ipc25.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<presentation css="derick.css"> +<topic>PHP</topic> +<title>What's New in PHP 8.[45]</title> +<event>International PHP Conference</event> +<location>Berlin, Germany</location> +<date>June 4th, 2025</date> +<speaker>Derick Rethans</speaker> +<email>[email protected]</email> +<twitter>derickr</twitter> +<mastodon>@[email protected]</mastodon> +<url>https://derickrethans.nl/talks/php-ipc25</url> +<joindin></joindin> +<slide>slides/xdebug/title.xml</slide> +<slide>slides/mongodb/me.xml</slide> + + +Syntax: + +https://wiki.php.net/rfc/asymmetric-visibility-v2 +<slide>slides/internals/php84-asymmetric-visibility.xml</slide> +<slide>slides/internals/php84-asymmetric-visibility-2.xml</slide> + +https://wiki.php.net/rfc/static-aviz +<slide>slides/internals/php85-asymmetric-visibility-static.xml</slide> + +https://wiki.php.net/rfc/property-hooks +<slide>slides/internals/php84-property-hooks.xml</slide> +<slide>slides/internals/php84-property-hooks-example-1.xml</slide> +<slide>slides/internals/php84-property-hooks-example-2.xml</slide> +<slide>slides/internals/php84-property-hooks-example-3.xml</slide> +<slide>slides/internals/php84-property-hooks-example-4.xml</slide> + +https://wiki.php.net/rfc/new_without_parentheses +<slide>slides/internals/php84-new-without-parentheses.xml</slide> + +https://wiki.php.net/rfc/closures_in_const_expr +<slide>slides/internals/php85-closures-in-constant-expressions.xml</slide> + +https://wiki.php.net/rfc/fcc_in_const_expr +<slide>slides/internals/php85-fcc-in-constant-expressions.xml</slide> + +Major additions: + +https://wiki.php.net/rfc/domdocument_html5_parser +<slide>slides/internals/php84-dom-html5.xml</slide> + +<!-- +https://wiki.php.net/rfc/improve_callbacks_dom_and_xsl +<sl ide>slides/internals/php84-dom-callbacks.xml</slide> + +https://wiki.php.net/rfc/lazy-objects +<slide>slides/internals/php84-lazy-objects.xml</slide> +--> + +https://wiki.php.net/rfc/jit-ir +<slide>slides/internals/php80-jit.xml</slide> +<slide>slides/internals/php84-jit.xml</slide> + +Minor additions: + +https://wiki.php.net/rfc/deprecated_attribute +<slide>slides/internals/php84-deprecated-attribute.xml</slide> + +https://wiki.php.net/rfc/attributes-on-constants +<slide>slides/internals/php85-attributes-on-constants.xml</slide> + +https://wiki.php.net/rfc/marking_return_value_as_important +<slide>slides/internals/php85-nodiscard-attribute.xml</slide> + +https://wiki.php.net/rfc/pdo_driver_specific_subclasses +<slide>slides/internals/php84-pdo-subclass.xml</slide> + +<!-- +https://wiki.php.net/rfc/new_rounding_modes_to_round_function +<slide>slides/internals/php84-round-modes.xml</slide> +--> + +https://wiki.php.net/rfc/bcrypt_cost_2023 +<slide>slides/internals/php84-bcrypt-cost.xml</slide> + +https://wiki.php.net/rfc/grapheme_str_split +<slide>slides/internals/php84-grapheme-str-split.xml</slide> +<slide>slides/internals/php84-grapheme-str-split-2.xml</slide> +<slide>slides/internals/php84-grapheme-str-split-3.xml</slide> + +https://wiki.php.net/rfc/grapheme_levenshtein +<slide>slides/internals/php85-grapheme-levenstein.xml</slide> +<slide>slides/internals/php85-grapheme-levenstein2.xml</slide> + +Deprecations: + +https://wiki.php.net/rfc/deprecate-implicitly-nullable-types +<slide>slides/internals/php84-deprecate-implicitly-nullable-types.xml</slide> + +https://wiki.php.net/rfc/unbundle_imap_pspell_oci8 + + +Policy: + +https://wiki.php.net/rfc/policy-repository +<slide>slides/internals/php84-policy-repository.xml</slide> + +https://wiki.php.net/rfc/release_cycle_update +<slide>slides/internals/php84-release-cycle.xml</slide> + +<slide>slides/internals/questions-new.xml</slide> +<slide>slides/xdebug/resources.xml</slide> + +</presentation> diff --git a/php-phpday25.xml b/php-phpday25.xml new file mode 100644 index 00000000..b8cfddca --- /dev/null +++ b/php-phpday25.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<presentation css="derick.css"> +<topic>PHP</topic> +<title>What's New in PHP 8.4 (and PHP 8.5)!</title> +<event>phpDay</event> +<location>Verona, Italy</location> +<date>May 15th, 2025</date> +<speaker>Derick Rethans</speaker> +<email>[email protected]</email> +<twitter>derickr</twitter> +<mastodon>@[email protected]</mastodon> +<url>https://derickrethans.nl/talks/php-phpday25</url> +<joindin></joindin> +<slide>slides/xdebug/title.xml</slide> +<slide>slides/mongodb/me.xml</slide> + + +Syntax: + +https://wiki.php.net/rfc/asymmetric-visibility-v2 +<slide>slides/internals/php84-asymmetric-visibility.xml</slide> +<slide>slides/internals/php84-asymmetric-visibility-2.xml</slide> + +https://wiki.php.net/rfc/static-aviz +<slide>slides/internals/php85-asymmetric-visibility-static.xml</slide> + +https://wiki.php.net/rfc/property-hooks +<slide>slides/internals/php84-property-hooks.xml</slide> +<slide>slides/internals/php84-property-hooks-example-1.xml</slide> +<slide>slides/internals/php84-property-hooks-example-2.xml</slide> +<slide>slides/internals/php84-property-hooks-example-3.xml</slide> +<slide>slides/internals/php84-property-hooks-example-4.xml</slide> + +https://wiki.php.net/rfc/new_without_parentheses +<slide>slides/internals/php84-new-without-parentheses.xml</slide> + +https://wiki.php.net/rfc/closures_in_const_expr +<slide>slides/internals/php85-closures-in-constant-expressions.xml</slide> + +https://wiki.php.net/rfc/fcc_in_const_expr +<slide>slides/internals/php85-fcc-in-constant-expressions.xml</slide> + +Major additions: + +https://wiki.php.net/rfc/domdocument_html5_parser +<slide>slides/internals/php84-dom-html5.xml</slide> + +<!-- +https://wiki.php.net/rfc/improve_callbacks_dom_and_xsl +<sl ide>slides/internals/php84-dom-callbacks.xml</slide> + +https://wiki.php.net/rfc/lazy-objects +<slide>slides/internals/php84-lazy-objects.xml</slide> +--> + +https://wiki.php.net/rfc/jit-ir +<slide>slides/internals/php80-jit.xml</slide> +<slide>slides/internals/php84-jit.xml</slide> + +Minor additions: + +https://wiki.php.net/rfc/deprecated_attribute +<slide>slides/internals/php84-deprecated-attribute.xml</slide> + +https://wiki.php.net/rfc/attributes-on-constants +<slide>slides/internals/php85-attributes-on-constants.xml</slide> + +https://wiki.php.net/rfc/marking_return_value_as_important +<slide>slides/internals/php85-nodiscard-attribute.xml</slide> + +https://wiki.php.net/rfc/pdo_driver_specific_subclasses +<slide>slides/internals/php84-pdo-subclass.xml</slide> + +<!-- +https://wiki.php.net/rfc/new_rounding_modes_to_round_function +<slide>slides/internals/php84-round-modes.xml</slide> +--> + +https://wiki.php.net/rfc/bcrypt_cost_2023 +<slide>slides/internals/php84-bcrypt-cost.xml</slide> + +https://wiki.php.net/rfc/grapheme_str_split +<slide>slides/internals/php84-grapheme-str-split.xml</slide> +<slide>slides/internals/php84-grapheme-str-split-2.xml</slide> +<slide>slides/internals/php84-grapheme-str-split-3.xml</slide> + +https://wiki.php.net/rfc/grapheme_levenshtein +<slide>slides/internals/php85-grapheme-levenstein.xml</slide> +<slide>slides/internals/php85-grapheme-levenstein2.xml</slide> + +Deprecations: + +https://wiki.php.net/rfc/deprecate-implicitly-nullable-types +<slide>slides/internals/php84-deprecate-implicitly-nullable-types.xml</slide> + +https://wiki.php.net/rfc/unbundle_imap_pspell_oci8 + + +Policy: + +https://wiki.php.net/rfc/policy-repository +<slide>slides/internals/php84-policy-repository.xml</slide> + +https://wiki.php.net/rfc/release_cycle_update +<slide>slides/internals/php84-release-cycle.xml</slide> + +<slide>slides/internals/questions-new.xml</slide> +<slide>slides/xdebug/resources.xml</slide> + +</presentation> diff --git a/slides/internals/php84-policy-repository.xml b/slides/internals/php84-policy-repository.xml index 781f632d..27fa0025 100644 --- a/slides/internals/php84-policy-repository.xml +++ b/slides/internals/php84-policy-repository.xml @@ -11,14 +11,4 @@ <div effect="fade-in"> <blurb class="big-centre">%https://github.com/php/policies%</blurb> </div> - -<break lines="4"/> -<div effect="fade-in"> -<blurb>Still to do:</blurb> - -<list> - <bullet>Rewrite documents to be statements of facts instead of intent</bullet> - <bullet>Figure out which information isn't written down authoritativily yet</bullet> -</list> -</div> </slide> diff --git a/slides/internals/php84-release-cycle.xml b/slides/internals/php84-release-cycle.xml index 6f6d4914..fa64e347 100644 --- a/slides/internals/php84-release-cycle.xml +++ b/slides/internals/php84-release-cycle.xml @@ -2,7 +2,7 @@ <title>Release Cycle Update</title> <div effect="fade-out"> -<blurb>Current:</blurb> +<blurb>Before:</blurb> <list> <bullet>2 + 1 years of support</bullet> @@ -26,10 +26,8 @@ </div> <div effect="fade-in"> -<break lines="2"/> -<blurb class="center">Effective Immediately</blurb> -<break/> -<image filename="timeline-2024-11.png"/> +<break lines="3"/> +<image filename="timeline-2025-05.png"/> </div> </slide> diff --git a/slides/internals/php85-asymmetric-visibility-static.xml b/slides/internals/php85-asymmetric-visibility-static.xml new file mode 100644 index 00000000..4e8fe84b --- /dev/null +++ b/slides/internals/php85-asymmetric-visibility-static.xml @@ -0,0 +1,26 @@ +<slide> +<title>PHP 8.5: Asymmetric Visibility for Constants</title> + +<blurb>Was missing in PHP 8.4, but turned out to be easy.</blurb> + +<example><![CDATA[<?php +class Example +{ + public private(set) static string $classTitle = 'Example class'; + + // Implicitly public-read, just like object properties. + protected(set) static int $counter = 0; + + public static function changeName(string $name): void + { + // From private scope, so this is allowed. + self::$classTitle = $name; + } +} + +print Example::$classTitle; // Allowed. + +Example::$classTitle = 'Nope'; // Disallowed. +?>]]> +</example> +</slide> diff --git a/slides/internals/php85-attributes-on-constants.xml b/slides/internals/php85-attributes-on-constants.xml new file mode 100644 index 00000000..1a150764 --- /dev/null +++ b/slides/internals/php85-attributes-on-constants.xml @@ -0,0 +1,54 @@ +<slide> +<title>PHP 8.5: Attributes on Constants</title> + +<div effect="fade-out"> +<blurb>Since PHP 8.0, attributes can be set on:</blurb> + +<list> + <bullet>functions ~(including closures and short closures)~</bullet> + <bullet>classes ~(including anonymous classes), interfaces, traits~</bullet> + <bullet>class constants</bullet> + <bullet>class properties</bullet> + <bullet>class methods</bullet> + <bullet>function/method parameters</bullet> +</list> +</div> + +<div effect="fade-in"> +<blurb>PHP 8.5 adds:</blurb> +<list> + <bullet>non-class constants:</bullet> +</list> + +<example><![CDATA[<?php +#[\MyAttribute] +const Example1 = 1; +?>]]></example> + +</div> + +<div effect="fade-in"> +<blurb>Not allowed:</blurb> + +<example><![CDATA[<?php +#[\MyAttribute] +const Example2 = 2, + Example3 = 3; + +#[\MyAttribute] +define('Example1', 1); +?>]]></example> + +</div> + +<div effect="fade-in"> +<blurb>This also adds:</blurb> + +<example><![CDATA[ +\Attribute::TARGET_CONSTANT +]]></example> + +</div> + + +</slide> diff --git a/slides/internals/php85-closures-in-constant-expressions.xml b/slides/internals/php85-closures-in-constant-expressions.xml new file mode 100644 index 00000000..f8bd4d00 --- /dev/null +++ b/slides/internals/php85-closures-in-constant-expressions.xml @@ -0,0 +1,31 @@ +<slide> +<title>PHP 8.5: Closures in Constant Expressions</title> + +<example><![CDATA[<?php +function slugger( + string $input, + array $callbacks = [ + static function ($value) { return \strtolower($value); }, + static function ($value) { return \preg_replace('/[^a-z]/', '-', $value); }, + static function ($value) { return \trim($value, '-'); }, + static function ($value) { return \preg_replace('/-+/', '-', $value); }, + ] +) { + foreach ($callbacks as $callback) { + $input = $callback($input); + } + return $input; +} + +var_dump(slugger('Hello, World!')); // string(11) "hello-world" +?>]]></example> + +<div effect="fade-in"> +<list> + <bullet>They must be %static%</bullet> + <bullet>They may not include variables from the surrounding scope<br/>no: +%use($foo)%, nor: short closures (%fn … =>%)</bullet> +</list> +</div> + +</slide> diff --git a/slides/internals/php85-fcc-in-constant-expressions.xml b/slides/internals/php85-fcc-in-constant-expressions.xml new file mode 100644 index 00000000..c7e0d661 --- /dev/null +++ b/slides/internals/php85-fcc-in-constant-expressions.xml @@ -0,0 +1,31 @@ +<slide> +<title>PHP 8.5: First Class Callables in Constant Expressions</title> + +<example><![CDATA[<?php +function slugger( + string $input, + array $callbacks = [ + \strtolower(...), + static function ($value) { return \preg_replace('/[^a-z]/', '-', $value); }, + static function ($value) { return \trim($value, '-'); }, + static function ($value) { return \preg_replace('/-+/', '-', $value); }, + ] +) { + foreach ($callbacks as $callback) { + $input = $callback($input); + } + return $input; +} + +var_dump(slugger('Hello, World!')); // string(11) "hello-world" +?>]]></example> + +<div effect="fade-in"> +<list> + <bullet>They must be free-standing functions or %static% methods</bullet> + <bullet>%__callStatic()% methods,<br/>or % [ClassName::class, 'methodName'](...)% is not supported</bullet> +</list> +</div> + +</slide> + diff --git a/slides/internals/php85-grapheme-levenstein.xml b/slides/internals/php85-grapheme-levenstein.xml new file mode 100644 index 00000000..e0cce810 --- /dev/null +++ b/slides/internals/php85-grapheme-levenstein.xml @@ -0,0 +1,58 @@ +<slide> +<title>PHP 8.5: Levenstein</title> + +<div effect="fade-out"> +<example result="0"><![CDATA[<?php +$myName = 'Derick'; +$notMyName = 'Derrick'; +$alsoNotMyName = 'Dirk'; + +echo levenshtein($myName, $notMyName), "\n"; +echo levenshtein($myName, $alsoNotMyName, 100, 10, 1), "\n"; +?>]]></example> + +<example inline="2"><![CDATA[ +% 1% +%|000099|0||009900|1||990000|2|% +%┃┃┗━ deletion% +%┃┗━━ replacement% +%┗━━━ insertion% + +D|990000|er|i|009900|c|k +Di|009900|r|k +]]></example> +</div> + +<div effect="fade-in"> +<example result="0"><![CDATA[<?php +$flagUA = '🇺🇦'; +$flagPS = '🇵🇸'; + +echo levenshtein($flagUA, $flagPS, 1, 10, 100), "\n"; +?>]]></example> +</div> + +<div effect="fade-in"> +<example>20</example> + +<example inline="2"><![CDATA[ +%|cccccc|0||009900|2||000099|0|% +%┃┃┗━ insertion% +%┃┗━━ replacement% +%┗━━━ deletion% +]]></example> +</div> + +<div effect="fade-in"> +<example><![CDATA[<?php +echo bin2hex($flagUA), "\n"; +echo bin2hex($flagPS), "\n"; +?>]]></example> + +<example inline="2"> +f09f87|009900|ba|f09f87|009900|a6| +f09f87|009900|b5|f09f87|009900|b8| +</example> +</div> + +</slide> diff --git a/slides/internals/php85-grapheme-levenstein2.xml b/slides/internals/php85-grapheme-levenstein2.xml new file mode 100644 index 00000000..a614c174 --- /dev/null +++ b/slides/internals/php85-grapheme-levenstein2.xml @@ -0,0 +1,23 @@ +<slide> +<title>PHP 8.5: grapheme_levenstein</title> + +<example result="0"><![CDATA[<?php +$flagUA = '🇺🇦'; +$flagPS = '🇵🇸'; + +echo grapheme_levenshtein($flagUA, $flagPS, 1, 10, 100), "\n"; +?>]]></example> + +<div effect="fade-in"> +<example>10</example> + +<example inline="2"><![CDATA[ +%|cccccc|0||009900|1||000099|0|% +%┃┃┗━ insertion% +%┃┗━━ replacement% +%┗━━━ deletion% +]]></example> + +</div> + +</slide> diff --git a/slides/internals/php85-nodiscard-attribute.xml b/slides/internals/php85-nodiscard-attribute.xml new file mode 100644 index 00000000..6e15b52b --- /dev/null +++ b/slides/internals/php85-nodiscard-attribute.xml @@ -0,0 +1,40 @@ +<slide> +<title>PHP 8.5: #[NoDiscard] Attribute</title> + +<blurb>A new attribute for functions (%TARGET_FUNCTION%) and methods (%TARGET_METHOD%).</blurb> + +<blurb>It enforces that the calling function consumes the return value.</blurb> + +<div effect="fade-in-out"> +<example><![CDATA[<?php +$a = new DateTimeImmutable(); +$a->setDate(2025, 5, 4); +?>]]></example> + +<example class="result"> +Warning: The return value of method DateTimeImmutable::setDate() + should either be used or intentionally ignored by casting it as + (void), as DateTimeImmutable::setDate() does not modify the + object itself in /tmp/discard.php on line 3 +</example> +</div> + +<div effect="fade-in"> +<blurb>A %(void)% cast disables it:</blurb> +<example inline="2"><![CDATA[<?php +$a = new DateTimeImmutable(); +*(void)* $a->setDate(2025, 5, 4); +?>]]></example> + +<break/> +<blurb>You can't use %#[Discard]% when:</blurb> + +<list> + <bullet>The function is typed with %: void% or %: never%</bullet> + <bullet>For magic methods (including the constructor) that require %: void%, or have no return type at all</bullet> + <bullet>For property hooks</bullet> +</list> +</div> + +</slide> + diff --git a/slides/internals/timeline-2025-05.png b/slides/internals/timeline-2025-05.png new file mode 100644 index 00000000..86f745c0 Binary files /dev/null and b/slides/internals/timeline-2025-05.png differ diff --git a/slides/mongodb/me.xml b/slides/mongodb/me.xml index 4c7fe8ce..92b310ef 100644 --- a/slides/mongodb/me.xml +++ b/slides/mongodb/me.xml @@ -7,10 +7,9 @@ <blurb>Derick Rethans</blurb> <list> <bullet>I'm European, living in London</bullet> - <bullet>---PHP 7.4 *Release Manager*---</bullet> <bullet>*PHP Foundation*</bullet> <bullet>*Xdebug* & PHP's Date/Time support</bullet> -<!-- <bullet>Host of *https://phpinternals.news* podcast</bullet> --> + <bullet>I am |999999|g|root!</bullet> <bullet>I ♥🌍 maps, I ♥🍺 beer, I ♥🥃 whisky</bullet> <bullet>mastodon: :-:mastodon:-:</bullet> </list> diff --git a/xdebug-dpc25.xml b/xdebug-dpc25.xml new file mode 100644 index 00000000..f350d274 --- /dev/null +++ b/xdebug-dpc25.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<presentation css="derick.css"> +<topic>Debugging</topic> +<title>Better Debugging with Xdebug</title> +<event>Dutch PHP Conference</event> +<location>Amsterdam, The Netherlands</location> +<date>March 21st, 2025</date> +<speaker>Derick Rethans</speaker> +<email>[email protected]</email> +<mastodon>@[email protected]</mastodon> +<twitter>derickr</twitter> +<url>https://derickrethans.nl/talks/xdebug-dpc25</url> +<joindin>https://xdebug.org</joindin> +<slide>slides/xdebug/title.xml</slide> +<slide>slides/mongodb/me.xml</slide> + +Code reorganisation +Modes +- only do what is needed +Reduce Configuration Options +Code Improvements (algorithms, memory, etc) +<!--<s lide>slides/xdebug/code-reorgnisation.xml</slide>--> +<!--< slide>slides/xdebug/modes.xml</slide>--> +<!--<s lide>slides/xdebug/config-settings-3.xml</slide>--> +<!--<s lide>slides/xdebug/config-settings-3b.xml</slide>--> +<!--<s lide>slides/xdebug/xdebug-3-speedup-1.xml</slide>--> + +- xdebug_info() (demo, VS Code or PhpStorm) + + - an API through xdebug_info() for mode detection (VS Code or PhpStorm) + 'mode' + 'extension-flags' + +<slide>slides/xdebug/xdebug_info.xml</slide> +<slide>slides/xdebug/xdebug_info-2.xml</slide> + +- xdebug_notify() (demo, VS Code) + +<slide>slides/xdebug/xdebug_notify.xml</slide> + +- file_link_format (demo, PhpStorm) + +<!-- <s lide>slides/xdebug/xdebug_file_link_format.xml</slide>--> + + + -> ticket + +<!--<s lide>slides/xdebug/diagnostic-log.xml</slide> (Also console output) --> + +<slide>slides/xdebug/xdebug-recent-new-features.xml</slide> +Step debugging improvements +Step debugging improvements + +<slide>slides/xdebug/breakpoint_resolving.xml</slide> +- breakpoint resolving (demo, PhpStorm) + +<slide>slides/xdebug/return_value.xml</slide> +- return value debugging (demo, VS Code or PhpStorm) + +<slide>slides/xdebug/breakpoint_not_resolving.xml</slide> +- Xdebug will now also log a warning if an IDE attempts to set a breakpoint on + a file that does not exist on the file system. (demo, PhpStorm) + +<slide>slides/xdebug/xdebug_connect_to_client.xml</slide> +- xdebug_connect_to_client() (demo, PhpStorm) + +<slide>slides/xdebug/xdebug_pseudo_hosts.xml</slide> +- xdebug://gateway and xdebug://nameserver (explain) + +<slide>slides/xdebug/xdebug-recent-new-features.xml</slide> + +<slide>slides/xdebug/xdebug-control-socket.xml</slide> + +<slide>slides/xdebug/xdebug-future-features.xml</slide> + +<slide>slides/xdebug/xdebug-native-path-mapping.xml</slide> +<slide>slides/xdebug/restaurant.xml</slide> + +<slide>slides/xdebug/xdebug-cloud-announcement.xml</slide> + +<slide>slides/xdebug/donate.xml</slide> +<slide>slides/xdebug/business-support.xml</slide> +<slide>slides/xdebug/transparency.xml</slide> + + +<!-- <s lide>slides/xdebug/phpinternalsnews.xml</slide> --> +<slide>slides/mongodb/questions.xml</slide> +<slide>slides/xdebug/resources.xml</slide> + +</presentation>