الفرق بين المراجعتين ل"PHP/register shutdown function"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
(إضافة دالة)
 
 
(مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
 +
<noinclude>{{DISPLAYTITLE:الدالة <code>register_shutdown_function()</code>‎ في PHP}}</noinclude>
 
(PHP 4, PHP 5, PHP 7)
 
(PHP 4, PHP 5, PHP 7)
  
تُسجل الدالة register_shutdown_function()‎ دالة لتُنفّذ عند إنهاء التشغيل.
+
تُسجل الدالة <code>register_shutdown_function()‎</code> دالة لتُنفّذ عند إنهاء التشغيل.
  
 
== الوصف ==
 
== الوصف ==
----<syntaxhighlight lang="php">
+
<syntaxhighlight lang="php">
 
  void register_shutdown_function ( callable $callback [, mixed $parameter [,  mixed $... ]] )
 
  void register_shutdown_function ( callable $callback [, mixed $parameter [,  mixed $... ]] )
</syntaxhighlight>تُسجل الدالة register_shutdown_function()‎ دالة رد النداء ليتم تنفيذها بعد الانتهاء من تنفيذ السكربت أو بعد استدعاء الدالة exit()‎.
+
</syntaxhighlight>تُسجل الدالة <code>register_shutdown_function()‎</code> دالة [[PHP/callable|رد النداء]] ليتم تنفيذها بعد الانتهاء من تنفيذ السكربت أو بعد استدعاء الدالة <code>[[PHP/exit|exit()‎]]</code>.
  
من الممكن إجراء استدعاءات متعددة للدالة register_shutdown_function()‎، وستُستدعى كلٌ منها بالترتيب الذي سُجِّلَت به. فإذا استدعيت الدالة exit()‎ داخل دالة إيقاف تشغيل مُسجلة، فستتوقف المعالجة بالكامل ولن تُستدعى أية دالة إيقاف تشغيل أخرى مسجّلة.
+
من الممكن إجراء استدعاءات متعددة للدالة <code>register_shutdown_function()‎</code>، وستُستدعى كلٌ منها بالترتيب الذي سُجِّلَت به. فإذا استدعيت الدالة <code>[[PHP/exit|exit()‎]]</code> داخل دالة إيقاف تشغيل مُسجلة، فستتوقف المعالجة بالكامل ولن تُستدعى أية دالة إيقاف تشغيل أخرى مسجّلة.
  
 
== المعاملات ==
 
== المعاملات ==
----
 
  
=== callback ===
+
=== <code>callback</code> ===
 
لتسجيل دالة رد النداء التي ستُنفذ عند إنهاء التشغيل.
 
لتسجيل دالة رد النداء التي ستُنفذ عند إنهاء التشغيل.
  
 
تُنفّذ دالة رد نداء إنهاء التشغيل كجزء من الطلب، لذلك فمن الممكن إرسال خرجها والوصول إلى مخازن الخرج الموقتة (output buffers).
 
تُنفّذ دالة رد نداء إنهاء التشغيل كجزء من الطلب، لذلك فمن الممكن إرسال خرجها والوصول إلى مخازن الخرج الموقتة (output buffers).
  
=== parameter ===
+
=== <code>parameter</code> ===
 
من الممكن تمرير المعاملات إلى دالة إيقاف التشغيل من خلال تمرير معاملات إضافية.
 
من الممكن تمرير المعاملات إلى دالة إيقاف التشغيل من خلال تمرير معاملات إضافية.
  
...
+
<code>...</code>
  
بقية المعاملات
+
بقية المعاملات.
  
 
== القيم المعادة ==
 
== القيم المعادة ==
----لا توجد قيم معادة
+
لا توجد قيم معادة.
  
 
== الأخطاء والاستثناءات ==
 
== الأخطاء والاستثناءات ==
----إذا كانت دالة رد النداء الممرّرة غير قابلة للاستدعاء، فسيُولّد خطأ ذو مستوى E_WARNING.
+
إذا كانت [[PHP/callable|دالة رد النداء]] الممرّرة غير قابلة للاستدعاء، فسيُولّد خطأ ذو المستوى <code>E_WARNING</code>.
  
 
== أمثلة ==
 
== أمثلة ==
مثال 1: مثال عن استخدام الدالة register_shutdown_function()‎<syntaxhighlight lang="php">
+
المثال 1: مثال عن استخدام الدالة <code>register_shutdown_function()‎</code><syntaxhighlight lang="php">
 
<?php
 
<?php
 
function shutdown()
 
function shutdown()
سطر 49: سطر 49:
  
 
== ملاحظات ==
 
== ملاحظات ==
----من الممكن تغيير مجلد العمل الحالي في دالة إنهاء التشغيل في بعض خوادم الويب، مثل أباتشي.
+
من الممكن تغيير مجلد العمل الحالي في دالة إنهاء التشغيل في بعض خوادم الويب، مثل أباتشي.
  
لن تُنفَّذ دوال إيقاف التشغيل إذا أُنهيت العملية بإشارة SIGTERM أو SIGKILL. صحيحٌ أننا لا نستطيع اعتراض SIGKILL، لكن يمكننا استخدام الدالة pcntl_signal()‎ لمعالجة الإشارة SIGTERM الذي يستخدم الدالة exit()‎ لإنهاء السكربت بشكل سليم.
+
لن تُنفَّذ دوال إيقاف التشغيل إذا أُنهيت العملية بإشارة <code>SIGTERM</code> أو <code>SIGKILL</code>. صحيحٌ أننا لا نستطيع اعتراض <code>SIGKILL</code>، لكن يمكننا استخدام الدالة <code>[[PHP/pcntl signal|pcntl_signal()‎]]</code> لمعالجة الإشارة <code>SIGTERM</code> الذي يستخدم الدالة <code>[[PHP/exit|exit()‎]]</code> لإنهاء السكربت بشكل سليم.
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
----
+
* الدالة <code>[[PHP/exit|exit()‎]]</code>: إخراج رسالة و إنهاء السكربت الحالي.
* الدالة exit()‎: إخراج رسالة و إنهاء السكربت الحالي.
 
  
 
== مصادر ==
 
== مصادر ==
----[http://php.net/manual/en/function.register-shutdown-function.php ●        صفحة الدالة register_shutdown_function في توثيق PHP الرسمي.]
+
* [http://php.net/manual/en/function.register-shutdown-function.php صفحة الدالة register_shutdown_function في توثيق PHP الرسمي.]
 +
[[تصنيف:PHP]]
 +
[[تصنيف:PHP Function]]
 +
[[تصنيف:PHP Function Handling]]

المراجعة الحالية بتاريخ 13:41، 15 أبريل 2018

(PHP 4, PHP 5, PHP 7)

تُسجل الدالة register_shutdown_function()‎ دالة لتُنفّذ عند إنهاء التشغيل.

الوصف

 void register_shutdown_function ( callable $callback [, mixed $parameter [,  mixed $... ]] )

تُسجل الدالة register_shutdown_function()‎ دالة رد النداء ليتم تنفيذها بعد الانتهاء من تنفيذ السكربت أو بعد استدعاء الدالة exit()‎.

من الممكن إجراء استدعاءات متعددة للدالة register_shutdown_function()‎، وستُستدعى كلٌ منها بالترتيب الذي سُجِّلَت به. فإذا استدعيت الدالة exit()‎ داخل دالة إيقاف تشغيل مُسجلة، فستتوقف المعالجة بالكامل ولن تُستدعى أية دالة إيقاف تشغيل أخرى مسجّلة.

المعاملات

callback

لتسجيل دالة رد النداء التي ستُنفذ عند إنهاء التشغيل.

تُنفّذ دالة رد نداء إنهاء التشغيل كجزء من الطلب، لذلك فمن الممكن إرسال خرجها والوصول إلى مخازن الخرج الموقتة (output buffers).

parameter

من الممكن تمرير المعاملات إلى دالة إيقاف التشغيل من خلال تمرير معاملات إضافية.

...

بقية المعاملات.

القيم المعادة

لا توجد قيم معادة.

الأخطاء والاستثناءات

إذا كانت دالة رد النداء الممرّرة غير قابلة للاستدعاء، فسيُولّد خطأ ذو المستوى E_WARNING.

أمثلة

المثال 1: مثال عن استخدام الدالة register_shutdown_function()‎

<?php
function shutdown()
{
    // هذه دالة إيقاف التشغيل 
    // داخلها نستطيع القيام بأية عمليات أخيرة
    // قبل اتمام السكربت


    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

ملاحظات

من الممكن تغيير مجلد العمل الحالي في دالة إنهاء التشغيل في بعض خوادم الويب، مثل أباتشي.

لن تُنفَّذ دوال إيقاف التشغيل إذا أُنهيت العملية بإشارة SIGTERM أو SIGKILL. صحيحٌ أننا لا نستطيع اعتراض SIGKILL، لكن يمكننا استخدام الدالة pcntl_signal()‎ لمعالجة الإشارة SIGTERM الذي يستخدم الدالة exit()‎ لإنهاء السكربت بشكل سليم.

انظر أيضًا

  • الدالة exit()‎: إخراج رسالة و إنهاء السكربت الحالي.

مصادر