Document the that PHP DDL now requires the `$name` parameter
authorTim Düsterhus <duesterhus@woltlab.com>
Thu, 6 Oct 2022 13:59:07 +0000 (15:59 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Thu, 6 Oct 2022 13:59:07 +0000 (15:59 +0200)
Resolves #307

docs/migration/wsc55/php.md

index 05b6da9f7c78abf2c304a954cb347af6ac422060..b9ec97f304adb404833f485c8b1955ec140762c1 100644 (file)
@@ -31,6 +31,18 @@ Any packages with a `<compatibility>` tag in their package.xml are assumed to no
 Furthermore any packages without an explicit requirement for `com.woltlab.wcf` in at least version `5.4.22` are also assumed to not have been updated for WoltLab Suite 6.0 and will also be rejected.
 The latter check is intended to reject old and most likely incompatible packages where the author forgot to add either an `<excludedpackage>` or a `<compatibility>` tag before releasing it.
 
+### Package Installation Plugins
+
+#### Database
+
+The `$name` parameter of `DatabaseTableIndex::create()` is no longer optional.
+Relying on the auto-generated index name is strongly discouraged, because of unfixable inconsistent behavior between the SQL PIP and the PHP DDL API.
+See [WoltLab/WCF#4505](https://github.com/WoltLab/WCF/issues/4505) for further background information.
+
+The autogenerated name can still be requested by passing an empty string as the `$name`.
+This should only be done for backwards compatibility purposes and to migrate an index with an autogenerated name to an index with an explicit name.
+An example script can be found in [WoltLab/com.woltlab.wcf.conversation@a33677ca051f](https://github.com/WoltLab/com.woltlab.wcf.conversation/commit/a33677ca051f76e1ddda1de7f8dc62a5484de16e).
+
 ## Indicating parameters that hold sensitive information
 
 PHP 8.2 adds native support for redacting parameters holding sensitive information in stack traces.