inanepain/inane

此包已被弃用且不再维护。作者建议使用 inanepain/stdlib 包。

提供:文件元数据、支持断点续传的 http 文件服务器、枚举、zf2 配置读取器、观察者模式、zf3 自定义配置自动加载和字符串工具、数组合并

0.30.2 2023-05-03 11:16 UTC

README

$Id$ ($Date$)

有关 Inane 类的简要说明,请查看 InaneClasses Wiki。随着时间的推移,将逐步完善。但不要抱有太大的期望。如果您需要特定内容...请提出!

如果您想查看迄今为止走过的道路,请查看 CHANGELOG

安装 Inane Classes

要求

  • PHP >= 8.0
  • laminas/laminas-http >= 2.8

安装

php composer.phar require inanepain/inane

或者

添加到 composer.json 中的内容

"require": {
    "inanepain/inane" : ">=0",
}

然后简单地运行

php composer.phar update

配置

LogTrait

数据库

CREATE TABLE `logs` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `priority` int(11) unsigned DEFAULT NULL,
    `priorityName` varchar(10) DEFAULT NULL,
    `timestamp` datetime DEFAULT NULL,
    `message` text,
    `extra_route` varchar(100) DEFAULT NULL,
    `extra_user_id` int(11) unsigned DEFAULT NULL,
    `extra_session` varchar(15) DEFAULT NULL,
    `extra_ip_address` varchar(20) DEFAULT NULL,
    `extra_file` varchar(200) DEFAULT NULL,
    `extra_line` int(11) unsigned DEFAULT NULL,
    `extra_class` varchar(45) DEFAULT NULL,
    `extra_function` varchar(20) DEFAULT NULL,
    `extra_options` text,
    PRIMARY KEY (`id`)
);

module.php

'factories' => [
    'LogService' => function ($sm) {
        $logger = new Logger();
        $priority = new Priority(getenv('LOG_LEVEL') ?: $logger::WARN);

        $fileWriterGeneral = new Stream('log/general.log');

        $dbWriter = new Db(GlobalAdapterFeature::getStaticAdapter(), 'logs');
        $dbWriter->setFormatter(new \Laminas\Log\Formatter\Db('Y-m-d H:i:s'));

        $fileWriterGeneral->addFilter($priority);
        $dbWriter->addFilter($priority);

        $logger->addWriter($fileWriterGeneral);
        $logger->addWriter($dbWriter);

        return $logger;
    },
]

Dumper

一个简单的转储工具,其折叠的转储整齐地堆叠在页面底部。

选项:Dumper::enabled

将其设置为 false 以停止 Dumper 的所有输出。立即安静。

快速 & 简单

当 Dumper 启动时,它会注册一个全局函数 dd,这是 Dumper::dump 的快捷方式。在应用的生命周期早期调用一次 Dumper::dumper() 意味着您可以从那时起使用 dd

或者,您可以在最适合您的地方创建自己的 dd 函数。

/**
 * Dumper shortcut
 *
 * @param mixed $data
 * @param string|null $label
 * @param array $options
 *
 * @return \Inane\Debug\Dumper
 */
function dd(mixed $data = null, ?string $label = null, array $options = []): \Inane\Debug\Dumper {
    return \Inane\Debug\Dumper::dump($data, $label, $options);
}

链式调用

Dumper::dump 一次只能处理一组转储:要转储的项目、可选的标签和选项。要转储多个变量,只需在第一组之后用括号括起来。

例如:

$var1 = someFunction();
$var2 = another($var1);
$var3 = again($var1);

dd($var1, 'someFunction')($var2, 'another')($var3, 'again');
静默属性

Dumper 有一个可以应用于类和方法的静默属性,以...在类/方法内静默 Dumper。静默类会阻止任何 Dumper 输出,无论类中是否有静默方法。

参数

  • on: 默认 - true。设置静默开或关。

提示

使用全局常量,您可以轻松地从中心点设置状态。

例如:简化代码

// some central place: config.php
define('DUMPER_SILENCE_CLASS', false);
define('DUMPER_SILENCE_METHOD', true);

// IndexDemo.php
#[Silence(DUMPER_SILENCE_CLASS)]
class IndexDemo {
    protected function logSilence(): void {
		dd(DUMPER_SILENCE_CLASS, 'This WILL show since DUMPER_SILENCE_CLASS == false');
	}

    #[Silence(DUMPER_SILENCE_METHOD)]
	public function indexAction() {
		$this->logSilence();
        dd(DUMPER_SILENCE_METHOD, 'This will NOT show since DUMPER_SILENCE_METHOD == true');
    }
}

反馈

嘿,有什么想法或建议吗。

给我发邮件 philip@inane.co.za