コード例 #1
0
 public static function load()
 {
     if (!class_exists('Tideways\\Profiler')) {
         return;
     }
     \Tideways\Profiler::watchCallback('Cake\\Controller\\Controller::invokeAction', function ($context) {
         $controller = $context['object'];
         if (!$controller->request || !$controller->isAction($controller->request->params['action'])) {
             return;
         }
         $title = get_class($controller) . '::' . $controller->request->params['action'];
         $span = \Tideways\Profiler::createSpan('php.ctrl');
         $span->annotate(['title' => $title]);
         return $span->getId();
     });
     \Tideways\Profiler::watchCallback('Cake\\View\\View::render', function ($context) {
         $view = $context['args'][0] ?: get_class($context['object']);
         $span = \Tideways\Profiler::createSpan('view');
         $span->annotate(['title' => $view]);
         return $span->getId();
     });
     \Tideways\Profiler::watchCallback('Cake\\Event\\EventManager::dispatch', function ($context) {
         $event = is_object($context['args'][0]) ? $context['args'][0]->name() : $context['args'][0];
         $span = \Tideways\Profiler::createSpan('event');
         $span->annotate(['title' => $event]);
         return $span->getId();
     });
     \Tideways\Profiler::watchCallback('Cake\\Event\\EventManager::_callListener', function ($context) {
         $listener = $context['args'][0];
         if (is_array($listener)) {
             $title = get_class($listener[0]) . '::' . $listener[1];
         } else {
             return;
             // only support object listeners
         }
         $span = \Tideways\Profiler::createSpan('php');
         $span->annotate(['title' => $title]);
         return $span->getId();
     });
     \Tideways\Profiler::watch('Cake\\ORM\\Table::schema');
 }
コード例 #2
0
ファイル: Tideways.php プロジェクト: jdlx/docker-phpapp
     * @return bool
     */
    private static function requiresDelegateToOriginalPrependFile()
    {
        return ini_get('tideways.auto_prepend_library') && tideways_prepend_overwritten() && ini_get("auto_prepend_file") && file_exists(stream_resolve_include_path(ini_get("auto_prepend_file")));
    }
}
/**
 * Tidways Profiler
 *
 * LICENSE
 *
 * This source file is subject to the MIT license that is bundled
 * with this package in the file LICENSE.txt.
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to kontakt@beberlei.de so I can send you a copy immediately.
 */
namespace QafooLabs;

/**
 * Backwards compatibility layer
 *
 * @deprecated use \Tideways\Profiler instead.
 */
class Profiler extends \Tideways\Profiler
{
}
// auto-starts the profiler if that is configured
\Tideways\Profiler::autoStart();
コード例 #3
0
<?php

use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
$app->before(function (Request $req) {
    if (!class_exists('Tideways\\Profiler')) {
        return;
    }
    $actionName = $req->get('_route');
    if (strpos($actionName, '__') === 0) {
        $actionName = $req->get('_controller');
    }
    \Tideways\Profiler::setTransactionName($req->getMethod() . ' ' . $actionName);
}, 8);
$app->get('/', function () use($app) {
    $logos = glob(__DIR__ . '/../web/img/logo-composer-transparent*.png');
    $logo = basename($logos[array_rand($logos)]);
    return $app['twig']->render('index.html.twig', array('logo' => $logo));
})->bind('home');
$app->get('/download/', function () use($app) {
    $versions = array();
    foreach (glob(__DIR__ . '/../web/download/*', GLOB_ONLYDIR) as $version) {
        $versions[basename($version)] = new \DateTime('@' . filemtime($version . '/composer.phar'));
    }
    uksort($versions, 'version_compare');
    $versions = array_reverse($versions);
    $data = array('page' => 'download', 'versions' => $versions, 'windows' => false !== strpos($app['request']->headers->get('User-Agent'), 'Windows'));
    return $app['twig']->render('download.html.twig', $data);
})->bind('download');
コード例 #4
0
ファイル: test.php プロジェクト: Flyingmana/tidegauge
<?php

require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../src/FileDumperBackend.php';
\Tideways\Profiler::setBackend(new \Cotya\TideGauge\FileDumperBackend());
\Tideways\Profiler::start(['api_key' => 'random_api_key', 'sample_rate' => 100]);
\Tideways\Profiler::setTransactionName("cli:" . basename($_SERVER['argv'][0]));
\Tideways\Profiler::watch('TestClass::FooBar');
\Tideways\Profiler::watch('Composer\\Autoload\\ClassLoader::loadClass');
class TestClass
{
    public function __construct()
    {
    }
    public function FooBar()
    {
    }
}
function createRandomString()
{
    $test = new TestClass();
    $test->FooBar();
    return "42";
}
//ld('start test');
$strings = [];
for ($i = 0; $i < 3; $i++) {
    $strings[] = createRandomString();
}
\Tideways\Profiler::stop();