[PRES] [presentations] master: Den Haag PHP talk
| From: | Derick Rethans | Date: | Tue, 19 Nov 2024 11:19:54 +0000 |
| Subject: | [PRES] [presentations] master: Den Haag PHP talk | ||
| Groups: | php.pres | ||
| Request: | Send a blank email to pres+get-2459@lists.php.net to get a copy of this message | ||
Author: Derick Rethans (derickr)
Date: 2024-11-19T12:15:21+01:00
Commit: https://github.com/php/presentations/commit/970dd352dc3f567e8b1eeb5a68080bedbfa9f58d
Raw diff: https://github.com/php/presentations/commit/970dd352dc3f567e8b1eeb5a68080bedbfa9f58d.diff
Den Haag PHP talk
Changed paths:
A php-denhaag24.xml
A slides/internals/timeline-2024-11.png
M slides/internals/php84-deprecate-implicitly-nullable-types.xml
M slides/internals/php84-pdo-subclass.xml
M slides/internals/php84-property-hooks-example-1.xml
M slides/internals/php84-property-hooks-example-3.xml
M slides/internals/php84-property-hooks-example-4.xml
M slides/internals/php84-release-cycle.xml
Diff:
diff --git a/php-denhaag24.xml b/php-denhaag24.xml
new file mode 100644
index 00000000..8db51272
--- /dev/null
+++ b/php-denhaag24.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>What's New in PHP 8.4!</title>
+<event>Den Haag PHP</event>
+<location>'s-Gravenhage, The Netherlands</location>
+<date>Nov 21st, 2024</date>
+<speaker>Derick Rethans</speaker>
+<email>derick@php.net</email>
+<twitter>derickr</twitter>
+<mastodon>@derickr@phpc.social</mastodon>
+<url>https://derickrethans.nl/talks/php-denhaag24</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/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>
+
+
+
+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/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>
+
+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-deprecate-implicitly-nullable-types.xml
b/slides/internals/php84-deprecate-implicitly-nullable-types.xml
index 7f448f17..8918dbe2 100644
--- a/slides/internals/php84-deprecate-implicitly-nullable-types.xml
+++ b/slides/internals/php84-deprecate-implicitly-nullable-types.xml
@@ -1,10 +1,10 @@
<slide>
<title>PHP 8.4: Deprecate Implicit Nullability</title>
-<example><![CDATA[<?php
+<example inline="2"><![CDATA[<?php
class Rst
{
- public function __construct( RstOptions $options = null )
+ public function __construct( RstOptions $options *= null* )
{
}
}]]></example>
@@ -15,16 +15,6 @@ Deprecated: Rst::__construct(): Implicitly marking parameter $options as nullabl
</example>
</div>
-<div effect="fade-in-out">
-<example inline="2"><![CDATA[<?php
-class Rst
-{
- public function __construct( RstOptions $options *= null* )
- {
- }
-}]]></example>
-</div>
-
<div effect="fade-in">
<example inline="2"><![CDATA[<?php
class Rst
diff --git a/slides/internals/php84-pdo-subclass.xml b/slides/internals/php84-pdo-subclass.xml
index ace89c94..fe1d7094 100644
--- a/slides/internals/php84-pdo-subclass.xml
+++ b/slides/internals/php84-pdo-subclass.xml
@@ -1,19 +1,22 @@
<slide>
<title>PHP 8.4: PDO Subclasses</title>
-<blurb>Each PDO driver now has it's own class, containing driver specific
elements</blurb>
-<break lines="2"/>
+<blurb>Each PDO driver now has it's own class, extending %\PDO%, containing (a copy of)
driver specific elements</blurb>
+<break/>
-<blurb>%PDODBLib%, %PDOFirebird%, %PDOOCI%, %PDOODBC% are just children, without any
changes.</blurb>
-<blurb>%PDOMySQL% has %getWarningCount()% defined on it</blurb>
-<blurb>%PDOPgSQL% and %PDOSQLite% have a whole bunch of constants and methods</blurb>
-<break lines="2"/>
+<list>
+<bullet>%Pdo\Dblib%, %Pdo\Firebird%, and %Pdo\Odbc% are just children, without any
changes.</bullet>
+<bullet>%Pdo\Mysql% has %getWarningCount()% defined on it</bullet>
+<bullet>%Pdo\Pgsql% and %Pdo\Sqlite% have a whole bunch of constants and
methods</bullet>
+<bullet>%pdo_oci% has been moved to PECL: %https://github.com/php/pecl-database-pdo_oci%</bullet>
+</list>
+<break/>
<blurb>A new factory method, %PDO::connect% returns an object representing one of the new
subclasses:</blurb>
-<example><![CDATA[<?php
+<example inline="2"><![CDATA[<?php
$db = PDO::connect('sqlite::memory:');
-if (!$db instanceof PDOSQLite) {
- /* ERROR ZONE */
+if (!$db instanceof Pdo\Sqlite) {
+ *// ERROR ZONE*
}]]></example>
</slide>
diff --git a/slides/internals/php84-property-hooks-example-1.xml
b/slides/internals/php84-property-hooks-example-1.xml
index 4d2e0bb7..b9aa8841 100644
--- a/slides/internals/php84-property-hooks-example-1.xml
+++ b/slides/internals/php84-property-hooks-example-1.xml
@@ -23,18 +23,7 @@ class ezcMailImapTransportOptions
}
}
- public function __isset( $propertyName )
- {
- return array_key_exists( $propertyName, $this->properties );
- }
-
- public function __get( $propertyName )
- {
- if ( $this->__isset( $propertyName ) === true ) {
- return $this->properties[$propertyName];
- }
- throw new ezcBasePropertyNotFoundException( $propertyName );
- }
+ // …
}
?>]]></example>
diff --git a/slides/internals/php84-property-hooks-example-3.xml
b/slides/internals/php84-property-hooks-example-3.xml
index e953cdc6..c5c4f696 100644
--- a/slides/internals/php84-property-hooks-example-3.xml
+++ b/slides/internals/php84-property-hooks-example-3.xml
@@ -23,18 +23,7 @@ class ezcMailImapTransportOptions
}
}
- public function __isset( $propertyName )
- {
- return array_key_exists( $propertyName, $this->properties );
- }
-
- public function __get( $propertyName )
- {
- if ( $this->__isset( $propertyName ) === true ) {
- return $this->properties[$propertyName];
- }
- throw new ezcBasePropertyNotFoundException( $propertyName );
- }
+ // …
}
?>]]></example>
diff --git a/slides/internals/php84-property-hooks-example-4.xml
b/slides/internals/php84-property-hooks-example-4.xml
index be7ae6f5..8f4120c4 100644
--- a/slides/internals/php84-property-hooks-example-4.xml
+++ b/slides/internals/php84-property-hooks-example-4.xml
@@ -7,7 +7,7 @@ class ezcMailImapTransportOptions
public int $listLimit {
set {
if ( $value < 0 ) {
- throw new ValueError( "listLimit was set to <{$value}>, but must be
>= 0" );
+ throw new ValueError( "listLimit set to <{$value}>, but must be >=
0" );
}
}
}
diff --git a/slides/internals/php84-release-cycle.xml b/slides/internals/php84-release-cycle.xml
index f67e82aa..6f6d4914 100644
--- a/slides/internals/php84-release-cycle.xml
+++ b/slides/internals/php84-release-cycle.xml
@@ -29,7 +29,7 @@
<break lines="2"/>
<blurb class="center">Effective Immediately</blurb>
<break/>
-<image filename="timeline-2024-05.png"/>
+<image filename="timeline-2024-11.png"/>
</div>
</slide>
diff --git a/slides/internals/timeline-2024-11.png b/slides/internals/timeline-2024-11.png
new file mode 100644
index 00000000..ec002fd3
Binary files /dev/null and b/slides/internals/timeline-2024-11.png differ