Example #1
0
 /**
  * 开启调试输出
  * @method _initDebug
  * @author NewFuture
  */
 public function _initDebug()
 {
     if (Config::get('isdebug')) {
         /*加载 PHP Console Debug模块*/
         Yaf_Loader::import('PhpConsole/__autoload.php');
         $connector = PhpConsole\Connector::getInstance();
         if ($connector->isActiveClient()) {
             Log::write('PHP Console 已经链接', 'INFO');
             $handler = PhpConsole\Handler::getInstance();
             $dispatcher = $connector->getDebugDispatcher();
             $handler->start();
             $connector->setSourcesBasePath(APP_PATH);
             $connector->setServerEncoding('utf8');
             $dispatcher->detectTraceAndSource = true;
             //跟踪信息
             if ($pwd = Config::get('debug.auth')) {
                 $connector->setPassword($pwd);
                 $evalProvider = $connector->getEvalDispatcher()->getEvalProvider();
                 // $evalProvider->disableFileAccessByOpenBaseDir();             // means disable functions like include(), require(), file_get_contents() & etc
                 // $evalProvider->addSharedVar('uri', $_SERVER['REQUEST_URI']); // so you can access $_SERVER['REQUEST_URI'] just as $uri in terminal
                 // $evalProvider->addSharedVarReference('post', $_POST);
                 $connector->startEvalRequestsListener();
             }
         }
         PhpConsole\Helper::register();
     }
 }
Example #2
0
 public static function debug($var, $tags)
 {
     //$buffer = ob_get_contents();
     //ob_end_clean();
     //ob_start();
     PhpConsole\Connector::getInstance()->getDebugDispatcher()->dispatchDebug($var, $tags, 1);
     //ob_end_clean();
     //ob_start();
     //echo $buffer;
 }
 private function configureEvalProvider()
 {
     $connector = PhpConsole\Connector::getInstance();
     $connector->setPassword('123');
     // Configure eval provider
     $evalProvider = $connector->getEvalDispatcher()->getEvalProvider();
     $evalProvider->addSharedVar('post', $_POST);
     // so "return $post" code will return $_POST
     $evalProvider->setOpenBaseDirs(array(__DIR__));
     // see http://php.net/open-basedir
     $connector->startEvalRequestsListener();
     // must be called in the end of all configurations
 }
Example #4
0
function gafa($var, $tags = null)
{
    PhpConsole\Connector::getInstance()->getDebugDispatcher()->dispatchDebug($var, $tags, 1);
}
<?php

$connector = PhpConsole\Connector::getInstance();
$connector->setSourcesBasePath(PhpConsole\Test\getClientEmulator()->getScriptsBaseDir());
Example #6
0
 function _debug($var, $tags = null)
 {
     if (PhpConsole\Connector::getInstance()->isActiveClient()) {
         PhpConsole\Connector::getInstance()->getDebugDispatcher()->dispatchDebug($var, $tags, 1);
     }
 }
Example #7
0
/**
 *
 * @author Moshe Brevda mbrevda => gmail ~ com
 */
function dbug_write($txt, $check = false)
{
    global $amp_conf;
    // dbug can be used prior to bootstrapping and initialization, so we set
    // it if not defined here to a default.
    //
    if (!isset($amp_conf['FPBXDBUGFILE'])) {
        $amp_conf['FPBXDBUGFILE'] = '/var/log/asterisk/freepbx_debug';
    }
    // If not check set max size just under 2G which is the php limit before it gets upset
    if ($check) {
        $max_size = 52428800;
    } else {
        $max_size = 2000000000;
    }
    //optionaly ensure that dbug file is smaller than $max_size
    $size = file_exists($amp_conf['FPBXDBUGFILE']) ? sprintf("%u", filesize($amp_conf['FPBXDBUGFILE'])) + strlen($txt) : 0;
    if ($size > $max_size) {
        file_put_contents($amp_conf['FPBXDBUGFILE'], $txt);
    } else {
        file_put_contents($amp_conf['FPBXDBUGFILE'], $txt, FILE_APPEND);
    }
    if ($amp_conf['PHP_CONSOLE']) {
        PhpConsole\Connector::getInstance()->getDebugDispatcher()->dispatchDebug($txt, 'dbug');
    }
}
<?php

require_once __DIR__ . '/../../src/PhpConsole/__autoload.php';
if (PhpConsole\Connector::getInstance()->isActiveClient()) {
    // ... any PHP Console initialization & configuration code
}
// if you're calling PC::debug() or any other PC class methods in your code, so PhpConsole\Helper::register() must be called anyway
PhpConsole\Helper::register();
echo 'If you want to make PHP Console initialization more lightweight on your server, then you should execute initialization code only if <code>PhpConsole\\Connector->getInstance()->isActiveClient()</code> returns <code>true</code>';
<?php

require_once __DIR__ . '/../../src/PhpConsole/__autoload.php';
PhpConsole\OldVersionAdapter::register();
// register PhpConsole class emulator
// Call old PhpConsole v1 methods as is
PhpConsole::start(true, true, $_SERVER['DOCUMENT_ROOT']);
PhpConsole::debug('Debug using old method PhpConsole::debug()', 'some,tags');
debug('Debug using old function debug()', 'some,tags');
echo $undefinedVar;
PhpConsole::getInstance()->handleException(new Exception('test'));
// Call new PhpConsole methods, if you need :)
PhpConsole\Connector::getInstance()->setServerEncoding('cp1251');
PhpConsole\Helper::register();
PC::debug('Debug using new methods');
echo 'So there is an easy way to migrate from PhpConsole v1.x to v3.x without any code changes';
<?php

$_SERVER['REMOTE_ADDR'] = $clientIp;
PhpConsole\Connector::getInstance()->setAllowedIpMasks($ipMasks);
// Debug some mixed variable
class DebugExample
{
    private $privateProperty = 1;
    protected $protectedProperty = 2;
    public $publicProperty = 3;
    public $selfProperty;
    public function __construct()
    {
        $this->selfProperty = $this;
    }
    public function someMethod()
    {
    }
}
PhpConsole\Connector::getInstance()->getDebugDispatcher()->setDumper(new PhpConsole\Dumper(2, 10, 40));
$s = new stdClass();
$s->asd = array(array(123));
PC::debug(array('null' => null, 'boolean' => true, 'longString' => '11111111112222222222333333333344444444445', 'someObject' => new DebugExample(), 'someCallback' => array(new DebugExample(), 'someMethod'), 'someClosure' => function () {
}, 'someResource' => fopen(__FILE__, 'r'), 'manyItemsArray' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), 'deepLevelArray' => array(1 => array(2 => array(3)))));
// Trace debug call
PC::getConnector()->getDebugDispatcher()->detectTraceAndSource = true;
function a()
{
    b();
}
function b()
{
    PC::debug('Message with source & trace detection');
}
a();
<?php

if (extension_loaded('mbstring')) {
    ini_set('mbstring.internal_encoding', $encoding);
    ini_set('mbstring.http_output', $encoding);
    ini_set('mbstring.func_overload', 2);
}
PhpConsole\Connector::getInstance()->setServerEncoding($encoding);
<?php

$_SERVER['REMOTE_ADDR'] = $clientIp;
PhpConsole\Connector::getInstance()->setPassword($password, $publicKeyByIp);
<?php

PhpConsole\Connector::getInstance()->enableSslOnlyMode();
 /**
  * Initialize PHP Console.
  *
  * @since   1.0.0
  */
 public function init()
 {
     if (!class_exists('PhpConsole\\Connector')) {
         return;
     }
     $options = $this->options;
     $password = isset($options['password']) ? $options['password'] : '';
     // Display admin notice and abort if no password
     if (!$password) {
         add_action('admin_notices', array($this, 'password_notice'));
         return;
         // abort
     }
     // Selectively remove slashes added by WordPress as expected by PhpConsole
     if (isset($_POST[PhpConsole\Connector::POST_VAR_NAME])) {
         $_POST[PhpConsole\Connector::POST_VAR_NAME] = stripslashes_deep($_POST[PhpConsole\Connector::POST_VAR_NAME]);
     }
     $connector = PhpConsole\Connector::getInstance();
     $connector->setPassword($password);
     $handler = PhpConsole\Handler::getInstance();
     if (PhpConsole\Handler::getInstance()->isStarted() != true) {
         $handler->start();
     }
     $enableSslOnlyMode = isset($options['ssl']) ? !empty($options['ssl']) ? $options['ssl'] : '' : '';
     if ($enableSslOnlyMode == true) {
         $connector->enableSslOnlyMode();
     }
     $allowedIpMasks = isset($options['ip']) ? !empty($options['ip']) ? explode(',', $options['ip']) : '' : '';
     if (is_array($allowedIpMasks) && !empty($allowedIpMasks)) {
         $connector->setAllowedIpMasks((array) $allowedIpMasks);
     }
     $evalProvider = $connector->getEvalDispatcher()->getEvalProvider();
     $evalProvider->addSharedVar('uri', $_SERVER['REQUEST_URI']);
     $evalProvider->addSharedVarReference('post', $_POST);
     // $evalProvider->disableFileAccessByOpenBaseDir();
     $openBaseDirs = array(ABSPATH, get_template_directory());
     $evalProvider->addSharedVarReference('dirs', $openBaseDirs);
     $evalProvider->setOpenBaseDirs($openBaseDirs);
     $connector->startEvalRequestsListener();
 }
<?php

PhpConsole\Connector::getInstance()->getDebugDispatcher()->dispatchDebug($data, isset($tags) ? $tags : null, !empty($withTraceAndSource), isset($skipTraceCalls) ? $skipTraceCalls : 1);