gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

Xdebug.php (3519B)


      1 <?php
      2 /**
      3  * PHP_CodeCoverage
      4  *
      5  * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
      6  * All rights reserved.
      7  *
      8  * Redistribution and use in source and binary forms, with or without
      9  * modification, are permitted provided that the following conditions
     10  * are met:
     11  *
     12  *   * Redistributions of source code must retain the above copyright
     13  *     notice, this list of conditions and the following disclaimer.
     14  *
     15  *   * Redistributions in binary form must reproduce the above copyright
     16  *     notice, this list of conditions and the following disclaimer in
     17  *     the documentation and/or other materials provided with the
     18  *     distribution.
     19  *
     20  *   * Neither the name of Sebastian Bergmann nor the names of his
     21  *     contributors may be used to endorse or promote products derived
     22  *     from this software without specific prior written permission.
     23  *
     24  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     25  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     26  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     27  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     28  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     29  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     30  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     31  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     32  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     34  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     35  * POSSIBILITY OF SUCH DAMAGE.
     36  *
     37  * @category   PHP
     38  * @package    CodeCoverage
     39  * @author     Sebastian Bergmann <sebastian@phpunit.de>
     40  * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
     41  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
     42  * @link       http://github.com/sebastianbergmann/php-code-coverage
     43  * @since      File available since Release 1.0.0
     44  */
     45 
     46 /**
     47  * Driver for Xdebug's code coverage functionality.
     48  *
     49  * @category   PHP
     50  * @package    CodeCoverage
     51  * @author     Sebastian Bergmann <sebastian@phpunit.de>
     52  * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
     53  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
     54  * @link       http://github.com/sebastianbergmann/php-code-coverage
     55  * @since      Class available since Release 1.0.0
     56  * @codeCoverageIgnore
     57  */
     58 class PHP_CodeCoverage_Driver_Xdebug implements PHP_CodeCoverage_Driver
     59 {
     60     /**
     61      * Constructor.
     62      */
     63     public function __construct()
     64     {
     65         if (!extension_loaded('xdebug')) {
     66             throw new PHP_CodeCoverage_Exception('Xdebug is not loaded.');
     67         }
     68 
     69         if (version_compare(phpversion('xdebug'), '2.2.0-dev', '>=') &&
     70             !ini_get('xdebug.coverage_enable')) {
     71             throw new PHP_CodeCoverage_Exception(
     72               'You need to set xdebug.coverage_enable=On in your php.ini.'
     73             );
     74         }
     75     }
     76 
     77     /**
     78      * Start collection of code coverage information.
     79      */
     80     public function start()
     81     {
     82         xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
     83     }
     84 
     85     /**
     86      * Stop collection of code coverage information.
     87      *
     88      * @return array
     89      */
     90     public function stop()
     91     {
     92         $codeCoverage = xdebug_get_code_coverage();
     93         xdebug_stop_code_coverage();
     94 
     95         return $codeCoverage;
     96     }
     97 }