[presentations] master: New PHP/Xdebug talks for IPC, and PHP SW
[email protected] (Derick Rethans) Wed, 11 Jan 2023 11:24:18 +0000
| Newsgroups | php.pres |
|---|---|
| Message-ID | <[email protected]> |
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>[email protected]</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>[email protected]</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>[email protected]</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>