[presentations] master: New PHP/Xdebug talks for IPC, and PHP SW
| From: | Derick Rethans | Date: | Wed, 11 Jan 2023 11:24:18 +0000 |
| Subject: | [presentations] master: New PHP/Xdebug talks for IPC, and PHP SW | ||
| Groups: | php.pres | ||
| Request: | Send a blank email to pres+get-2419@lists.php.net to get a copy of this message | ||
Author: Derick Rethans (derickr)
Date: 2023-01-11T11:11:41Z
Commit: https://github.com/php/presentations/commit/becac80828de644de62e60380b78c0093f99f584
Raw diff: https://github.com/php/presentations/commit/becac80828de644de62e60380b78c0093f99f584.diff
New PHP/Xdebug talks for IPC, and PHP SW
Changed paths:
A php-ipc22.xml
A php-phpsw23.xml
A slides/internals/php82-random.xml
A slides/xdebug/breakpoint_not_resolving.xml
A slides/xdebug/breakpoint_resolving.xml
A slides/xdebug/return_value.xml
A slides/xdebug/xdebug_connect_to_client.xml
A slides/xdebug/xdebug_file_link_format.xml
A slides/xdebug/xdebug_info-2.xml
A slides/xdebug/xdebug_info.xml
A slides/xdebug/xdebug_notify.xml
A slides/xdebug/xdebug_pseudo_hosts.xml
A xdebug-ipc22.xml
M slides/mongodb/me.xml
M slides/xdebug/business-support.xml
Diff:
diff --git a/php-ipc22.xml b/php-ipc22.xml
new file mode 100644
index 00000000..aeb880c3
--- /dev/null
+++ b/php-ipc22.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>What's New in PHP 8</title>
+<event>International PHP Conference</event>
+<location>Munich, Germany</location>
+<date>October 27th, 2022</date>
+<speaker>Derick Rethans</speaker>
+<email>derick@php.net</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/php-ipc22</url>
+<joindin></joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/internals/php80-union-types.xml</slide>
+<slide>slides/internals/php80-union-types-phpdoc.xml</slide>
+<slide>slides/internals/php80-union-types-new.xml</slide>
+<slide>slides/internals/php80-union-types-examples.xml</slide>
+<slide>slides/internals/php80-union-types-law.xml</slide>
+<!--<s lide>slides/internals/php80-union-types-coercive.xml</slide> -->
+
+Readonly properties 2.0 (https://wiki.php.net/rfc/readonly_properties_v2)
+<slide>slides/internals/php81-readonly.xml</slide>
+
+https://wiki.php.net/rfc/readonly_classes
+<slide>slides/internals/php82-readonly.xml</slide>
+
+Mixed Type v2
+<slide>slides/internals/php80-mixed-types.xml</slide>
+
+PHP 8.0:
+https://wiki.php.net/rfc/static_return_type
+static return type
+<!-- <s lide>slides/internals/php80-static-return.xml</slide> -->
+
+Constructor Property Promotion
+<slide>slides/internals/php80-cpp-without.xml</slide>
+<slide>slides/internals/php80-cpp-with.xml</slide>
+
+<slide>slides/internals/php80-named-without.xml</slide>
+<slide>slides/internals/php80-named-with.xml</slide>
+
+<!-- BIG NEW FEATURES -->
+Enumerations (https://wiki.php.net/rfc/enumerations)
+<slide>slides/internals/php81-enums-1.xml</slide>
+<slide>slides/internals/php81-enums-2.xml</slide>
+<slide>slides/internals/php81-enums-3.xml</slide>
+<slide>slides/internals/php81-enums-4.xml</slide>
+<slide>slides/internals/php81-enums-5.xml</slide>
+<slide>slides/internals/php81-enums-6.xml</slide>
+<slide>slides/internals/php81-enums-7.xml</slide>
+
+https://wiki.php.net/rfc/fetch_property_in_const_expressions
+<slide>slides/internals/php82-enums-1.xml</slide>
+
+Noreturn type (https://wiki.php.net/rfc/noreturn_type) (never)
+<slide>slides/internals/php81-never-type.xml</slide>
+
+Pure Intersection Types (https://wiki.php.net/rfc/pure-intersection-types)
+<slide>slides/internals/php81-pure-intersection.xml</slide>
+
+Array unpacking with string keys (https://wiki.php.net/rfc/array_unpacking_string_keys)
+<slide>slides/internals/php81-array-unpacking.xml</slide>
+
+Fibers (https://wiki.php.net/rfc/fibers)
+<slide>slides/internals/php81-fibers.xml</slide>
+
+First Class Callable (https://wiki.php.net/rfc/first_class_callable_syntax)
+<slide>slides/internals/php81-fcc.xml</slide>
+
+PHP 8.2:
+
+https://wiki.php.net/rfc/null-false-standalone-types
+'null' and 'false' as standalone
+<slide>slides/internals/php82-null-false-standalone.xml</slide>
+
+https://wiki.php.net/rfc/true-type
+'true' type
+<slide>slides/internals/php82-true.xml</slide>
+
+https://wiki.php.net/rfc/dnf_types
+? Disjunctive Normal Form Types
+<slide>slides/internals/php82-dnf-types.xml</slide>
+
+https://wiki.php.net/rfc/deprecate_dynamic_properties
+<slide>slides/internals/php82-deprecate-dynamic-properties.xml</slide>
+
+https://wiki.php.net/rfc/redact_parameters_in_back_traces
+<slide>slides/internals/php82-redact-parameters.xml</slide>
+
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+
+<slide>slides/internals/questions-new.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>
diff --git a/php-phpsw23.xml b/php-phpsw23.xml
new file mode 100644
index 00000000..e2c10013
--- /dev/null
+++ b/php-phpsw23.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>What's New in PHP 8</title>
+<event>PHP South West</event>
+<location>Bristol, UK</location>
+<date>January 11th, 2023</date>
+<speaker>Derick Rethans</speaker>
+<email>derick@php.net</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/php-phpsw23</url>
+<joindin></joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/internals/php80-union-types.xml</slide>
+<slide>slides/internals/php80-union-types-phpdoc.xml</slide>
+<slide>slides/internals/php80-union-types-new.xml</slide>
+<slide>slides/internals/php80-union-types-examples.xml</slide>
+<slide>slides/internals/php80-union-types-law.xml</slide>
+<!--<s lide>slides/internals/php80-union-types-coercive.xml</slide> -->
+
+Readonly properties 2.0 (https://wiki.php.net/rfc/readonly_properties_v2)
+<slide>slides/internals/php81-readonly.xml</slide>
+
+https://wiki.php.net/rfc/readonly_classes
+<slide>slides/internals/php82-readonly.xml</slide>
+
+Mixed Type v2
+<slide>slides/internals/php80-mixed-types.xml</slide>
+
+PHP 8.0:
+https://wiki.php.net/rfc/static_return_type
+static return type
+<!-- <s lide>slides/internals/php80-static-return.xml</slide> -->
+
+Constructor Property Promotion
+<slide>slides/internals/php80-cpp-without.xml</slide>
+<slide>slides/internals/php80-cpp-with.xml</slide>
+
+<slide>slides/internals/php80-named-without.xml</slide>
+<slide>slides/internals/php80-named-with.xml</slide>
+
+<!-- BIG NEW FEATURES -->
+Enumerations (https://wiki.php.net/rfc/enumerations)
+<slide>slides/internals/php81-enums-1.xml</slide>
+<slide>slides/internals/php81-enums-2.xml</slide>
+<slide>slides/internals/php81-enums-3.xml</slide>
+<slide>slides/internals/php81-enums-4.xml</slide>
+<slide>slides/internals/php81-enums-5.xml</slide>
+<slide>slides/internals/php81-enums-6.xml</slide>
+<slide>slides/internals/php81-enums-7.xml</slide>
+
+https://wiki.php.net/rfc/fetch_property_in_const_expressions
+<slide>slides/internals/php82-enums-1.xml</slide>
+
+Noreturn type (https://wiki.php.net/rfc/noreturn_type) (never)
+<slide>slides/internals/php81-never-type.xml</slide>
+
+Pure Intersection Types (https://wiki.php.net/rfc/pure-intersection-types)
+<slide>slides/internals/php81-pure-intersection.xml</slide>
+
+Array unpacking with string keys (https://wiki.php.net/rfc/array_unpacking_string_keys)
+<slide>slides/internals/php81-array-unpacking.xml</slide>
+
+Fibers (https://wiki.php.net/rfc/fibers)
+<slide>slides/internals/php81-fibers.xml</slide>
+
+First Class Callable (https://wiki.php.net/rfc/first_class_callable_syntax)
+<slide>slides/internals/php81-fcc.xml</slide>
+
+PHP 8.2:
+
+https://wiki.php.net/rfc/null-false-standalone-types
+'null' and 'false' as standalone
+<slide>slides/internals/php82-null-false-standalone.xml</slide>
+
+https://wiki.php.net/rfc/true-type
+'true' type
+<slide>slides/internals/php82-true.xml</slide>
+
+https://wiki.php.net/rfc/dnf_types
+? Disjunctive Normal Form Types
+<slide>slides/internals/php82-dnf-types.xml</slide>
+
+https://wiki.php.net/rfc/rng_extension
+<slide>slides/internals/php82-random.xml</slide>
+
+https://wiki.php.net/rfc/deprecate_dynamic_properties
+<slide>slides/internals/php82-deprecate-dynamic-properties.xml</slide>
+
+https://wiki.php.net/rfc/redact_parameters_in_back_traces
+<slide>slides/internals/php82-redact-parameters.xml</slide>
+
+<!-- <s lide>slides/xdebug/phpinternalsnews.xml</slide> -->
+
+<slide>slides/internals/questions-new.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>
diff --git a/slides/internals/php82-random.xml b/slides/internals/php82-random.xml
new file mode 100644
index 00000000..0f807907
--- /dev/null
+++ b/slides/internals/php82-random.xml
@@ -0,0 +1,21 @@
+<slide>
+<title>New Random extension</title>
+
+<example result="3"><![CDATA[
+<?php
+$engine = new \Random\Engine\Xoshiro256StarStar( /* 42 */ );
+$r = new \Random\Randomizer($engine);
+
+echo bin2hex( $r->getBytes( 8 ) ), "\n";
+
+echo $r->getInt(1, 100), "\n";
+echo $r->nextInt(), "\n";
+
+$fruits = [ 'red' => 'π', 'green' => 'π',
'pink' => 'π' ];
+echo "Keys: ", join( ', ', $r->pickArrayKeys( $fruits, 2 ) ),
"\n";
+
+echo "Salad: ", join( ', ', $r->shuffleArray( $fruits ) ), "\n";
+
+echo $r->shuffleBytes( "PHP is great!" ), "\n";
+?>]]></example>
+</slide>
diff --git a/slides/mongodb/me.xml b/slides/mongodb/me.xml
index c80d3f80..516c8cb9 100644
--- a/slides/mongodb/me.xml
+++ b/slides/mongodb/me.xml
@@ -7,11 +7,12 @@
<blurb>Derick Rethans</blurb>
<list>
<bullet>I'm European, living in London</bullet>
- <bullet>PHP 7.4 *Release Manager*</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 β₯π maps, I β₯πΊ beer, I β₯π₯ whisky</bullet>
+ <bullet>mastodon: @derickr​@phpc.social</bullet>
<bullet>twitter: @derickr</bullet>
</list>
</slide>
diff --git a/slides/xdebug/breakpoint_not_resolving.xml b/slides/xdebug/breakpoint_not_resolving.xml
new file mode 100644
index 00000000..7d1e9c92
--- /dev/null
+++ b/slides/xdebug/breakpoint_not_resolving.xml
@@ -0,0 +1,11 @@
+<slide>
+<title>Breakpoint Resolving β Revised</title>
+
+<break lines="5"/>
+<blurb class="centre">The IDE can set breakpoints on non-existing
files...</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/breakpoint_resolving.xml b/slides/xdebug/breakpoint_resolving.xml
new file mode 100644
index 00000000..f514e826
--- /dev/null
+++ b/slides/xdebug/breakpoint_resolving.xml
@@ -0,0 +1,22 @@
+<slide>
+<title>Breakpoint Resolving</title>
+
+<break lines="4"/>
+<blurb class="centre">Xdebug now finds the closest breakpoint line</blurb>
+
+<div effect="fade-in">
+<break lines="2"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="centre">How does this work?</blurb>
+</div>
+
+<div effect="fade-in">
+<break lines="2"/>
+<blurb class="centre">Let's check the logβ¦</blurb>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/business-support.xml b/slides/xdebug/business-support.xml
index 103a8144..a86cfcf5 100644
--- a/slides/xdebug/business-support.xml
+++ b/slides/xdebug/business-support.xml
@@ -8,8 +8,7 @@
<break/>
<blurb class="centre">
-Intracto β Private Packagist β Edmonds Commerce β
Find My Electric β Tideways β TYPO3 GmbH β
-Seravo β CHECK24 β Supermetrics
+Tideways β Real Estate Learning Center β Find My Electric β Xdebug Cloud β Seiden Group β
Offers.com β Private Packagist β VEMA eG β iO β Supermetrics
</blurb>
</slide>
diff --git a/slides/xdebug/return_value.xml b/slides/xdebug/return_value.xml
new file mode 100644
index 00000000..9d2c479b
--- /dev/null
+++ b/slides/xdebug/return_value.xml
@@ -0,0 +1,9 @@
+<slide>
+<break lines="5"/>
+<blurb class="big-centre">Return Values?</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/xdebug_connect_to_client.xml b/slides/xdebug/xdebug_connect_to_client.xml
new file mode 100644
index 00000000..bc418258
--- /dev/null
+++ b/slides/xdebug/xdebug_connect_to_client.xml
@@ -0,0 +1,10 @@
+<slide>
+<break lines="5"/>
+<blurb class="big-centre">%xdebug_connect_to_client()%</blurb>
+<blurb class="centre">Prods Xdebug to try to make a debug connection
again</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/xdebug_file_link_format.xml b/slides/xdebug/xdebug_file_link_format.xml
new file mode 100644
index 00000000..753acafc
--- /dev/null
+++ b/slides/xdebug/xdebug_file_link_format.xml
@@ -0,0 +1,10 @@
+<slide>
+<break lines="5"/>
+<blurb class="big-centre">%xdebug_file_link_format% setting</blurb>
+<blurb class="centre">Make file name/line number combinations
clickable</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/xdebug_info-2.xml b/slides/xdebug/xdebug_info-2.xml
new file mode 100644
index 00000000..6fde1fb6
--- /dev/null
+++ b/slides/xdebug/xdebug_info-2.xml
@@ -0,0 +1,10 @@
+<slide>
+<break lines="5"/>
+<blurb class="big-centre">%xdebug_info( string $category )%</blurb>
+<blurb class="centre">Obtain information about Xdebug programatically</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/xdebug_info.xml b/slides/xdebug/xdebug_info.xml
new file mode 100644
index 00000000..db19b48a
--- /dev/null
+++ b/slides/xdebug/xdebug_info.xml
@@ -0,0 +1,10 @@
+<slide>
+<break lines="5"/>
+<blurb class="big-centre">%xdebug_info()%</blurb>
+<blurb class="centre">Like %phpinfo()%, but then for Xdebug</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/xdebug_notify.xml b/slides/xdebug/xdebug_notify.xml
new file mode 100644
index 00000000..6fc38f3e
--- /dev/null
+++ b/slides/xdebug/xdebug_notify.xml
@@ -0,0 +1,10 @@
+<slide>
+<break lines="5"/>
+<blurb class="big-centre">%xdebug_notify( mixed $data )%</blurb>
+<blurb class="centre">Send data over debugging protocol</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="big-centre">DEMO</blurb>
+</div>
+</slide>
diff --git a/slides/xdebug/xdebug_pseudo_hosts.xml b/slides/xdebug/xdebug_pseudo_hosts.xml
new file mode 100644
index 00000000..1a0d04c8
--- /dev/null
+++ b/slides/xdebug/xdebug_pseudo_hosts.xml
@@ -0,0 +1,15 @@
+<slide>
+<title>"Smart" Host Names</title>
+<break lines="5"/>
+<blurb class="centre">Helping with the configuration madnessβ¦</blurb>
+
+<div effect="fade-in">
+<break lines="5"/>
+<blurb class="centre">%xdebug.client_host=%</blurb>
+<blurb class="big-centre">%xdebug://gateway%</blurb>
+</div>
+
+<div effect="fade-in">
+<blurb class="big-centre">%xdebug://nameserver%</blurb>
+</div>
+</slide>
diff --git a/xdebug-ipc22.xml b/xdebug-ipc22.xml
new file mode 100644
index 00000000..3e9cfeaa
--- /dev/null
+++ b/xdebug-ipc22.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>Debugging</topic>
+<title>Xdebug 3</title>
+<event>International PHP Conference</event>
+<location>Munich, Germany</location>
+<date>October 26th, 2022</date>
+<speaker>Derick Rethans</speaker>
+<email>derick@xdebug.org</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/xdebug-ipc22</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)
+<slide>slides/xdebug/code-reorgnisation.xml</slide>
+<slide>slides/xdebug/modes.xml</slide>
+<slide>slides/xdebug/config-settings-3.xml</slide>
+<slide>slides/xdebug/config-settings-3b.xml</slide>
+<slide>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)
+
+<slide>slides/xdebug/xdebug_file_link_format.xml</slide>
+
+
+ -> ticket
+
+<!--<s lide>slides/xdebug/diagnostic-log.xml</slide> (Also console output) -->
+
+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)
+
+<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-cloud-announcement.xml</slide>
+
+<slide>slides/xdebug/donate.xml</slide>
+<slide>slides/xdebug/business-support.xml</slide>
+<slide>slides/xdebug/transparency.xml</slide>
+
+
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>