Pada PHPMaker 2025 dan versi-versi major sebelumnya, kita bisa meng-assign global function CurrentDateTime() dengan kode berikut, misalnya di server event Row_Inserting dan/atau Row_Updating:
$newRow["Last_Updated"] = CurrentDateTime();
Sejak versi 2026, kode tersebut akan menghasilkan error seperti ini (asumsi mode Debug sedang diaktifkan):
PHPMaker2026\Demo2026\Db\Entity\Help::setLastUpdated(): Argument #1 ($value) must be of type ?DateTimeInterface, string given, called in D:\wamp\www\demo2026_masinoextensions\src\Entity.php on line 189
Arti dari error tersebut adalah, sejak versi 2026, PHPMaker akan memperlakukan output dari fungsi global CurrentDateTime() tadi sebagai tipe String, sementara yang diharapkan adalah tipe DateTimeInterface.
Oleh karena itu, untuk menghindari error tersebut, maka kode di atas harus diubah menjadi seperti ini pada PHPMaker 2026:
$newRow["Last_Updated"] = new \DateTime(CurrentDateTime());
Jadi, jangan lupa lagi ya, sejak versi 2026, kita wajib mengubah output tipe String tadi menjadi tipe DateTimeInterface lewat pemakaian object DateTime seperti pada contoh kode barusan.
Ini salah satu perubahan yang cukup fundamental sejak PHPMaker 2026. Lama-lama kita akan terbiasa dengan perubahan kode tadi.
Semoga dapat membantu!
Tinggalkan Balasan