2017 © Pedro PelΓ‘ez
 

library bedoved

Easy error handling

image

mekras/bedoved

Easy error handling

  • Friday, April 25, 2014
  • by Mekras
  • Repository
  • 1 Watchers
  • 0 Stars
  • 68 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

Bedoved

Π‘Π΅Π΄ΠΎΠ²Π΅Π΄ β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, Π² Ρ‚ΠΎΠΌ числС Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ…., (*1)

Latest Stable Version License Build Status Coverage Status, (*2)

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚:, (*3)

  • ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ошибки;
  • ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ошибки Π² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° основС Π·Π°Π΄Π°Π½Π½ΠΎΠΉ маски;
  • ΠΎΡ‚ΡΡ‹Π»Π°Ρ‚ΡŒ извСщСния ΠΏΠΎ ΠΏΠΎΡ‡Ρ‚Π΅ Π² случаС ошибок ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ;
  • Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ содСрТимоС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° вмСсто стандартного сообщСния ΠΎΠ± ошибкС ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ;
  • Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ошибкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:, (*4)

require 'Bedoved.php';
$bedoved = new Bedoved()
// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ошибок Π² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации
$bedoved->enableErrorConversion();
// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
$bedoved->enableExceptionHandling();
// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок
$bedoved->enableFatalErrorHandling();
// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΈΠ·Π²Π΅Ρ‰Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΠΎ e-mail
$bedoved->setNotifyEmails('admin@example.org');
// ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ»
$bedoved->setMessageFile('/path/to/file.html');

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок

Π’ PHP Π½Π΅Ρ‚ стандартных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ошибок (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ E_PARSE ΠΈΠ»ΠΈ E_ERROR), ΠΎΠ΄Π½Π°ΠΊΠΎ способ всё ΠΆΠ΅ Π΅ΡΡ‚ΡŒ β€” Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· ob_start. НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ CLI., (*5)

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘Π΅Π΄ΠΎΠ²Π΅Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° enableFatalErrorHandling. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‚ΡŒ свой собствСнный ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setFatalErrorHandler., (*6)

<?php
require 'Bedoved.php';
$bedoved = new Bedoved();
$bedoved->enableFatalErrorHandling();
$bedoved->setFatalErrorHandler(
    /**
     * Π’Π°Ρˆ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок
     *
     * Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ return.
     *
     * @param ErrorException $e       ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, содСрТащСС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ошибкС
     * @param string         $output  Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ сообщСниС ΠΎΠ± ошибкС
     *
     * @return string  Π²Ρ‹Π²ΠΎΠ΄ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°
     */
    function (ErrorException $e, $output)
    {
        return 'ERROR: ' . $e->getMessage();
    }
);

$x = new Foo;

ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ошибок Π² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

<?php
require 'Bedoved.php';
$bedoved = new Bedoved();
$bedoved->enableErrorConversion();

try
{
    $x = 1 / 0;
}
catch (ErrorException $e)
{
    echo 'ERROR: ' . $e->getMessage() . PHP_EOL;
}

ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ дСйствия Π² случаС ошибки

НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ошибок, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² Π‘Π΅Π΄ΠΎΠ²Π΅Π΄Π΅ дСйствия: ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ извСщСния ΠΏΠΎ ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈ ΠΏΠΎΠΊΠ°Π· Ρ„Π°ΠΉΠ»Π°., (*7)

$bedoved = new Bedoved();
$bedoved
    ->enableErrorConversion()
    ->enableExceptionHandling()
    ->enableFatalErrorHandling()
    ->setNotifyEmails('admin@example.org')
    ->setMessageFile('/path/to/file.html');

ΠœΠ΅Ρ‚ΠΎΠ΄ setNotifyEmails позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ список адрСсов e-mail (ΠΎΠ΄Π½ΠΎΠΉ строкой Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. Π’ сообщСнии указываСтся тСкст ошибки, мСсто Π΅Ρ‘ возникновСния, стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ URI, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ хост ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π°Π³Π΅Π½Ρ‚. Π’ Ρ‚Π΅ΠΌΠ΅ сообщСния указываСтся Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя сайта (ΠΈΠ· $_SERVER['HTTP_HOST']) ΠΈΠ»ΠΈ имя сСрвСра, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ php_uname('n')., (*8)

ΠœΠ΅Ρ‚ΠΎΠ΄ setMessageFile позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² случаС возникновСния ошибки., (*9)

Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Π’ вСрсии 1.2.0 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ:, (*10)

  • сообщСния ΠΏΠΎ e-mail Π½Π΅ ΠΎΡ‚ΡΡ‹Π»Π°ΡŽΡ‚ΡΡ;
  • игнорируСтся Π·Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ setMessageFile()
  • Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ выводится ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ошибки.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² конструкторС ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ true:, (*11)

$bedoved = new Bedoved(true);

ЗамСчания

  • ВстроСнный ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок всСгда записываСт Π² ΠΆΡƒΡ€Π½Π°Π» ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ ошибки ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ error_log.
  • Если Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ошибки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ HTTP Π΅Ρ‰Ρ‘ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ с ΠΊΠΎΠ΄ΠΎΠΌ 500.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ HTML-ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ добавляСт ΠΊ Π½ΠΈΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€.

The Versions

25/04 2014

dev-master

9999999-dev

Easy error handling

  Sources   Download

Apache-2.0

The Requires

  • php >=5.1.0

 

The Development Requires

by ΠœΠΈΡ…Π°ΠΈΠ» ΠšΡ€Π°ΡΠΈΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

25/04 2014

dev-develop

dev-develop

Easy error handling

  Sources   Download

Apache-2.0

The Requires

  • php >=5.1.0

 

The Development Requires

by ΠœΠΈΡ…Π°ΠΈΠ» ΠšΡ€Π°ΡΠΈΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

25/04 2014

v1.3.0

1.3.0.0

Easy error handling

  Sources   Download

Apache-2.0

The Requires

  • php >=5.1.0

 

The Development Requires

by ΠœΠΈΡ…Π°ΠΈΠ» ΠšΡ€Π°ΡΠΈΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

13/01 2014

v1.2.0

1.2.0.0

Easy error handling

  Sources   Download

Apache-2.0

The Requires

  • php >=5.1.0

 

17/10 2012

0.1.1

0.1.1.0

Easy error handling

  Sources   Download

Apache-2.0

The Requires

  • php >=5.1.0

 

12/10 2012

v0.1.0

0.1.0.0

Easy error handling

  Sources   Download

Apache-2.0

The Requires

  • php >=5.1.0