1. Go to this page and download the library: Download semhoun/slim-tracy library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
semhoun / slim-tracy example snippets
// Twig
return [
Twig::class => static function (Settings $settings, \Twig\Profiler\Profile $profile): Twig {
$view = Twig::create($settings->get('view.template_path'), $settings->get('view.twig'));
if ($settings->get('debug')) {
// Add extensions
$view->addExtension(new \Twig\Extension\ProfilerExtension($profile));
$view->addExtension(new \Twig\Extension\DebugExtension());
}
return $view;
},
// Doctrine DBAL and ORM
\Doctrine\DBAL\Connection::class => static function (Settings $settings, Doctrine\ORM\Configuration $conf): Doctrine\DBAL\Connection {
return \Doctrine\DBAL\DriverManager::getConnection($settings->get('doctrine.connection'), $conf);
},
// Doctrine Config used by entity manager and Tracy
\Doctrine\ORM\Configuration::class => static function (Settings $settings): Doctrine\ORM\Configuration {
if ($settings->get('debug')) {
$queryCache = new ArrayAdapter();
$metadataCache = new ArrayAdapter();
} else {
$queryCache = new PhpFilesAdapter('queries', 0, $settings->get('cache_dir'));
$metadataCache = new PhpFilesAdapter('metadata', 0, $settings->get('cache_dir'));
}
$config = new \Doctrine\ORM\Configuration();
$config->setMetadataCache($metadataCache);
$driverImpl = new \Doctrine\ORM\Mapping\Driver\AttributeDriver($settings->get('doctrine.entity_path'), true);
$config->setMetadataDriverImpl($driverImpl);
$config->setQueryCache($queryCache);
$config->setProxyDir($settings->get('cache_dir') . '/proxy');
$config->setProxyNamespace('App\Proxies');
if ($settings->get('debug')) {
$config->setAutoGenerateProxyClasses(true);
} else {
$config->setAutoGenerateProxyClasses(false);
}
return $config;
},
// Doctrine EntityManager.
EntityManager::class => static function (\Doctrine\ORM\Configuration $config, \Doctrine\DBAL\Connection $connection): EntityManager {
return new EntityManager($connection, $config);
},
EntityManagerInterface::class => DI\get(EntityManager::class),
]
// Register Eloquent single connection
$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($cfg['settings']['db']['connections']['mysql']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
$capsule::connection()->enableQueryLog();
use Tracy\Debugger;
Debugger::enable(Debugger::DEVELOPMENT);
return [
'settings' => [
'addContentLengthHeader' => false// debugbar possible not working with true
... // ...
... // ...
'tracy' => [
'showPhpInfoPanel' => 0,
'showSlimRouterPanel' => 0,
'showSlimEnvironmentPanel' => 0,
'showSlimRequestPanel' => 1,
'showSlimResponsePanel' => 1,
'showSlimContainer' => 0,
'showEloquentORMPanel' => 0,
'showTwigPanel' => 0,
'showDoctrinePanel' => 0,
'showProfilerPanel' => 0,
'showVendorVersionsPanel' => 0,
'showXDebugHelper' => 0,
'showIncludedFiles' => 0,
'showConsolePanel' => 0,
'configs' => [
// XDebugger IDE key
'XDebugHelperIDEKey' => 'PHPSTORM',
// Activate the console
'ConsoleEnable' => 1,
// Disable login (don't ask for credentials, be careful) values( 1 || 0 )
'ConsoleNoLogin' => 0,
// Multi-user credentials values( ['user1' => 'password1', 'user2' => 'password2'] )
'ConsoleAccounts' => [
'dev' => '34c6fceca75e456f25e7e99531e2425c6c1de443'// = sha1('dev')
],
// Password hash algorithm (password must be hashed) values('md5', 'sha256' ...)
'ConsoleHashAlgorithm' => 'sha1',
// Home directory (multi-user mode supported) values ( var || array )
// '' || '/tmp' || ['user1' => '/home/user1', 'user2' => '/home/user2']
'ConsoleHomeDirectory' => DIR,
// terminal.js full URI
'ConsoleTerminalJs' => '/assets/js/jquery.terminal.min.js',
// terminal.css full URI
'ConsoleTerminalCss' => '/assets/css/jquery.terminal.min.css',
'ConsoleFromEncoding' => 'CP866', // or false
'ProfilerPanel' => [
// Memory usage 'primaryValue' set as Profiler::enable() or Profiler::enable(1)
// 'primaryValue' => 'effective', // or 'absolute'
'show' => [
'memoryUsageChart' => 1, // or false
'shortProfiles' => true, // or false
'timeLines' => true // or false
]
],
'Container' => [
// Container entry name
'Doctrine' => \Doctrine\ORM\Configuration::class, // must be a configuration DBAL or ORM
'Twig' => \Twig\Profiler\Profile::class,
],
]
]
use App\Services\Settings;
use DI\ContainerBuilder;
// Set the absolute path to the root directory.
$rootPath = realpath(__DIR__ . '/..');
// Include the composer autoloader.
include_once $rootPath . '/vendor/autoload.php';
SlimTracy\Helpers\Profiler\Profiler::enable();
SlimTracy\Helpers\Profiler\Profiler::start('App');
// At this point the container has not been built. We need to load the settings manually.
SlimTracy\Helpers\Profiler\Profiler::start('loadSettings');
$settings = Settings::load();
SlimTracy\Helpers\Profiler\Profiler::finish('loadSettings');
// DI Builder
$containerBuilder = new ContainerBuilder();
if (! $settings->get('debug')) {
// Compile and cache container.
$containerBuilder->enableCompilation($settings->get('cache_dir').'/container');
}
// Set up dependencies
SlimTracy\Helpers\Profiler\Profiler::start('initDeps');
$containerBuilder->addDefinitions($rootPath.'/config/dependencies.php');
SlimTracy\Helpers\Profiler\Profiler::finish('initDeps');
// Build PHP-DI Container instance
SlimTracy\Helpers\Profiler\Profiler::start('diBuild');
$container = $containerBuilder->build();
SlimTracy\Helpers\Profiler\Profiler::finish('diBuild');
// Instantiate the app
$app = \DI\Bridge\Slim\Bridge::create($container);
// Register middleware
SlimTracy\Helpers\Profiler\Profiler::start('initMiddleware');
$middleware =
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.