(PHP 8 >= 8.4.0)
Pdo\Pgsql::setNoticeCallback β Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ callback-ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π±ΡΠΊΠ΅Π½Π΄Π°
ΠΠ΅ΡΠΎΠ΄ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ callback-ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π±ΡΠΊΠ΅Π½Π΄.
Π ΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π°ΡΡ ΡΠ°ΠΌΠ° Π‘Π£ΠΠ PostgreSQL,
ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ SQL-ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ RAISE.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΡ
ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° client_min_messages Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
Π±ΡΠΊΠ΅Π½Π΄Π°.
callbacknull ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ callback-ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ:
messageΠ€ΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Pdo\Pgsql::setNoticeCallback()
<?php
$pdo = new Pdo\Pgsql('pgsql:dbname=test host=localhost', $user, $pass);
$pdo->exec('CREATE TABLE parent(id int primary key)');
$pdo->exec('CREATE TABLE child(id int references parent)');
$pdo->setNoticeCallback(function ($message) {
echo $message;
});
$pdo->exec('TRUNCATE parent CASCADE');
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
NOTICE: truncate cascades to table "child"