الترجمات : الاسبانية
مكتبة PHP للتعامل مع الاستثناءات.
للتعامل مع الاستثناءات، يمكنك استخدام مكتبة معالج الاستثناءات.
نظام التشغيل: لينكس | ويندوز.
إصدارات PHP: 8.1.
الطريقة المفضلة لتثبيت هذا الامتداد هي من خلال Composer.
لتثبيت مكتبة PHP ErrorHandler ، ببساطة:
composer require josantonius/error-handler
سيقوم الأمر السابق بتثبيت الملفات الضرورية فقط، إذا كنت تفضل تنزيل كود المصدر بأكمله، يمكنك استخدامه:
composer require josantonius/error-handler --prefer-source
يمكنك أيضًا استنساخ المستودع الكامل باستخدام Git:
git clone https://github.com/josantonius/php-error-handler.git
يقوم JosantoniusErrorHandlerErrorException
بتوسيع ErrorException
يحصل على ملف الخطأ:
public function getFile(): string ;
الحصول على مستوى الخطأ:
public function getLevel(): int ;
يحصل على سطر ملف الخطأ:
public function getLine(): int ;
يحصل على رسالة خطأ:
public function getMessage(): string ;
يحصل على اسم الخطأ:
public function getName(): string ;
JosantoniusErrorHandlerErrorHandled
يحصل على ملف الخطأ:
public function getFile(): string ;
الحصول على مستوى الخطأ:
public function getLevel(): int ;
يحصل على سطر ملف الخطأ:
public function getLine(): int ;
يحصل على رسالة خطأ:
public function getMessage(): string ;
يحصل على اسم الخطأ:
public function getName(): string ;
JosantoniusErrorHandlerErrorHandler
تحويل الأخطاء إلى استثناءات:
/**
* The errors will be thrown from the ErrorException instance.
*
* @param int[] $errorLevel Define the specific error levels that will become exceptions.
*
* @throws WrongErrorLevelException if error level is not valid.
*
* @see https://www.php.net/manual/en/errorfunc.constants.php to view available error levels.
*/
public function convertToExceptions( int ... $ errorLevel ): ErrorHandler ;
تحويل الأخطاء إلى استثناءات باستثناء بعضها:
/**
* The errors will be thrown from the ErrorException instance.
*
* @param int[] $errorLevel Define the specific error levels that will become exceptions.
*
* @throws WrongErrorLevelException if error level is not valid.
*
* @see https://www.php.net/manual/en/errorfunc.constants.php to view available error levels.
*/
public function convertToExceptionsExcept( int ... $ errorLevel ): ErrorHandler ;
تسجيل وظيفة معالج الأخطاء:
/**
* The error handler will receive the ErrorHandled object.
*
* @see https://www.php.net/manual/en/functions.first_class_callable_syntax.php
*/
public function register( callable $ callback ): ErrorHandler ;
استخدم الإبلاغ عن الأخطاء لتحديد الأخطاء التي تتم معالجتها:
/**
* If the setting value in error_reporting() is used to determine which errors are handled.
*
* If this method is not used, all errors will be sent to the handler.
*
* @see https://www.php.net/manual/en/function.error-reporting.php
*/
public function useErrorReportingLevel(): ErrorHandler ;
use Josantonius ErrorHandler Exceptions WrongErrorLevelException ;
أمثلة على استخدام هذه المكتبة:
use Josantonius ErrorHandler ErrorHandler ;
$ errorHandler = new ErrorHandler ();
$ errorHandler -> convertToExceptions ();
// All errors will be converted to exceptions.
use Josantonius ErrorHandler ErrorHandler ;
$ errorHandler = new ErrorHandler ();
$ errorHandler -> convertToExceptions ( E_USER_ERROR , E_USER_WARNING );
// Only E_USER_ERROR and E_USER_WARNING will be converted to exceptions.
use Josantonius ErrorHandler ErrorHandler ;
$ errorHandler = new ErrorHandler ();
$ errorHandler -> convertToExceptionsExcept ( E_USER_DEPRECATED , E_USER_NOTICE );
// All errors except E_USER_DEPRECATED and E_USER_NOTICE will be converted to exceptions.
use Josantonius ErrorHandler ErrorHandler ;
error_reporting ( E_USER_ERROR );
$ errorHandler = new ErrorHandler ();
$ errorHandler -> convertToExceptions ()-> useErrorReportingLevel ();
// Only E_USER_ERROR will be converted to exception.
use ErrorException ;
use Josantonius ErrorHandler ErrorHandler ;
set_exception_handler ( function ( ErrorException $ exception ) {
var_dump ([
' level ' => $ exception -> getLevel (),
' message ' => $ exception -> getMessage (),
' file ' => $ exception -> getFile (),
' line ' => $ exception -> getLine (),
' name ' => $ exception -> getName (),
]);
});
$ errorHandler = new ErrorHandler ();
$ errorHandler -> convertToExceptions ();
// All errors will be converted to exceptions.
use Josantonius ErrorHandler ErrorHandled ;
use Josantonius ErrorHandler ErrorHandler ;
function handler ( Errorhandled $ errorHandled ): void {
var_dump ([
' level ' => $ errorHandled -> getLevel (),
' message ' => $ errorHandled -> getMessage (),
' file ' => $ errorHandled -> getFile (),
' line ' => $ errorHandled -> getLine (),
' name ' => $ errorHandled -> getName (),
]);
}
$ errorHandler = new ErrorHandler ();
$ errorHandler -> register (
callback: handler (...)
);
// All errors will be converted to exceptions.
use Josantonius ErrorHandler ErrorHandled ;
use Josantonius ErrorHandler ErrorHandler ;
class Handler {
public static function errors ( Errorhandled $ exception ): void { /* do something */ }
}
$ errorHandler = new ErrorHandler ();
$ errorHandler -> register (
callback: Handler:: errors (...)
)-> convertToExceptions ();
// The error will be sent to the error handler and then throw the exception.
error_reporting ( E_USER_ERROR );
class Handler {
public function errors ( Errorhandled $ exception ): void { /* do something */ }
}
$ handler = new Handler ();
$ errorHandled -> register (
callback: $ handler -> errors (...),
)-> convertToExceptions ()-> useErrorReportingLevel ();
// Only E_USER_ERROR will be passed to the handler and converted to exception.
لإجراء الاختبارات، تحتاج فقط إلى الملحن وتنفيذ ما يلي:
git clone https://github.com/josantonius/php-error-handler.git
cd php-error-handler
composer install
تشغيل اختبارات الوحدة باستخدام PHPUnit:
composer phpunit
قم بتشغيل اختبارات التعليمات البرمجية القياسية باستخدام PHPCS:
composer phpcs
قم بإجراء اختبارات PHP Mess Detector للكشف عن التناقضات في نمط التعليمات البرمجية:
composer phpmd
إجراء جميع الاختبارات السابقة:
composer tests
تم توثيق التغييرات التفصيلية لكل إصدار في ملاحظات الإصدار.
يرجى التأكد من قراءة دليل المساهمة، قبل تقديم طلب سحب، أو بدء مناقشة أو الإبلاغ عن مشكلة.
شكرا لجميع المساهمين! ❤️
إذا كان هذا المشروع يساعدك على تقليل وقت التطوير، هل يمكنك رعايتي لدعم عملي مفتوح المصدر؟
هذا المستودع مرخص بموجب ترخيص MIT.
حقوق الطبع والنشر © 2016 إلى الوقت الحاضر، جوسانتونيوس