<?php declare(strict_types=1);
namespace DuckPhp;
use DuckPhp\Core\App;
use DuckPhp\Ext\Cache;
use DuckPhp\Ext\Console;
use DuckPhp\Ext\DbManager;
use DuckPhp\Ext\EventManager;
use DuckPhp\Ext\Pager;
use DuckPhp\Ext\RouteHookPathInfoCompat;
use DuckPhp\Ext\RouteHookRouteMap;
class DuckPhp extends App
{
protected $core_options = [
'default_exception_do_log' => true,
'default_exception_self_display' => true,
'close_resource_at_output' => false,
'injected_helper_map' => '',
'error_404' => null, 'error_500' => null, 'error_debug' => null,
'ext' => [
DbManager::class => true,
RouteHookPathInfoCompat::class => true,
RouteHookRouteMap::class => true,
Console::class => true,
],
'database_auto_method_extend' => true,
'route_map_auto_extend_method' => true,
];
public function _Cache($object = null)
{
return Cache::G($object);
}
public function _Pager($object = null)
{
$pager = Pager::G($object);
$pager->options['pager_context_class'] = static::class;
return $pager;
}
public function _Db($tag)
{
return DbManager::G()->_Db($tag);
}
public function _DbCloseAll()
{
return DbManager::G()->_CloseAll();
}
public function _DbForRead()
{
return DbManager::G()->_DbForRead();
}
public function _DbForWrite()
{
return DbManager::G()->_DbForWrite();
}
public function _Event()
{
return EventManager::G();
}
public function _FireEvent($event, ...$args)
{
return EventManager::G()->fire($event, ...$args);
}
public function _OnEvent($event, $callback)
{
return EventManager::G()->on($event, $callback);
}
}