Overview

Namespaces

  • Alpha
    • Controller
      • Front
    • Exception
    • Model
      • Type
    • Task
    • Util
      • Backup
      • Cache
      • Code
        • Highlight
        • Metric
      • Config
      • Convertor
      • Email
      • Extension
      • Feed
      • File
      • Graph
      • Helper
      • Http
        • Filter
        • Session
      • Image
      • Logging
      • Search
      • Security
    • View
      • Renderer
        • Html
        • Json
      • Widget

Classes

  • ErrorHandlers
  • InputFilter
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: 
 3: namespace Alpha\Util;
 4: 
 5: use Alpha\Exception\PHPException;
 6: use Alpha\Util\Logging\Logger;
 7: 
 8: /**
 9:  * A pair of static methods for capturing normal PHP errors and unhandled Alpha exceptions.
10:  *
11:  * @since 1.0
12:  *
13:  * @author John Collins <dev@alphaframework.org>
14:  * @license http://www.opensource.org/licenses/bsd-license.php The BSD License
15:  * @copyright Copyright (c) 2015, John Collins (founder of Alpha Framework).
16:  * All rights reserved.
17:  *
18:  * <pre>
19:  * Redistribution and use in source and binary forms, with or
20:  * without modification, are permitted provided that the
21:  * following conditions are met:
22:  *
23:  * * Redistributions of source code must retain the above
24:  *   copyright notice, this list of conditions and the
25:  *   following disclaimer.
26:  * * Redistributions in binary form must reproduce the above
27:  *   copyright notice, this list of conditions and the
28:  *   following disclaimer in the documentation and/or other
29:  *   materials provided with the distribution.
30:  * * Neither the name of the Alpha Framework nor the names
31:  *   of its contributors may be used to endorse or promote
32:  *   products derived from this software without specific
33:  *   prior written permission.
34:  *
35:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
36:  * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
37:  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
38:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39:  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
40:  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41:  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43:  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
45:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
46:  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
47:  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48:  * </pre>
49:  */
50: class ErrorHandlers
51: {
52:     /**
53:      * Handle an uncaught exception.
54:      *
55:      * @param Exception $e
56:      */
57:     public static function catchException($e)
58:     {
59:         $logger = new Logger(get_class($e));
60:         $logger->error($e->getMessage()."\n [stacktrace]: \n".$e->getTraceAsString());
61:     }
62: 
63:     /**
64:      * Catch an unhandled error and convert it to a PHPException.
65:      *
66:      * @param $error_no
67:      * @param $msg
68:      * @param $file
69:      * @param $line
70:      *
71:      * @throws PHPException
72:      */
73:     public static function catchError($error_no, $msg, $file, $line)
74:     {
75:         $e = new PHPException();
76:         $e->setMessage('[PHP error '.$error_no.'] on line ['.$line.'] of file ['.$file.']: '.$msg);
77:         $e->setFile($file);
78: 
79:         throw $e;
80:     }
81: }
82: 
Alpha Framework 2.0.4 API Documentation API documentation generated by ApiGen 2.8.0