protected function bindContracts()
    {
        $dir        = dirname((new ReflectionClass(get_called_class()))->getFileName());
        $configPath = $dir . '/../resources/config/config.php';
        if (!file_exists($configPath)) {
            return false;
        }
        if (empty($di = require $configPath)) {
            return false;
        }

        foreach (array_get($di, 'di', []) as $contract => $class) {
            $this->app->bind($contract, $class);
        }
    }