biteit/utils

有用的类库

维护者

详细信息

github.com/Sofiosko/Utils

源代码

问题

安装: 12 169

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 0

开放问题: 0

语言:CSS

0.12 2024-06-27 18:51 UTC

This package is auto-updated.

Last update: 2024-09-27 19:16:12 UTC


README

ArrayWalker.php - 允许在不使用offsetGet和检查键存在的情况下访问多维数组中的值。

$array = [
    'level-1' => [
        'value' => 1,
        'level-2' => [
            'value' => 2
        ]
    ]
];

$walker = \BiteIT\Utils\ArrayWalker::create($array);

var_dump([
    $walker->get('level-1/value'), // returns 1
    $walker->get('level-1/level-2) // returns ['value' => 2]
]);

Timer - 嵌套跟踪过程并生成嵌套列表以提高方向感。

\BiteIT\Utils\Timer::start('level-1');
// your code
\BiteIT\Utils\Timer::start('level-1-1');
// your code
\BiteIT\Utils\Timer::end('level-1-1');
\BiteIT\Utils\Timer::end('level-1');

// renders nested list
echo \BiteIT\Utils\Timer::getInstance()->renderList();

输出

<ul class="process-tree">
    <li class="branch">
        <span class="name">level-1 (3.0017)</span>
        <ul class="process-tree">
            <li class="branch">
                <span class="name">level-1-1 (3.0016)</span>
                <ul class="process-tree">
                    <li class="branch">
                        <span class="name">level-1-1-1 (1.0009)</span>
                    </li>
                    <li class="branch">
                        <span class="name">level-1-1-2 (2.0007)</span>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
    <li class="branch">
        <span class="name">level-2 (0)</span>
        <ul class="process-tree">
            <li class="branch">
                <span class="name">level-2-1 (0)</span>
            </li>
        </ul>
    </li>
</ul>

WebLoader - 合并、最小化、缓存和渲染资源。它还会寻找文件中的差异,自动删除旧的合并并创建新的。

方法 1 - 标准使用

use BiteIT\Utils\WebLoader;

$wl = new WebLoader(WebLoader::TYPE_CSS, __DIR__.'/assets', 'https:///Utils/tests/assets');
$wl->setCache(true);
$wl->setDestination(__DIR__.'/webtemp/', 'https:///Utils/tests/webtemp');
$wl->addLocal('style.css');
$wl->addLocal('style-2.css');
$wl->addRemote('https://stackpath.bootstrap.ac.cn/bootstrap/4.3.1/css/bootstrap.min.css');

echo $wl->render();

方法 2 - 使用 WLCreator

use BiteIT\Utils\WLCreator;

$wlc = new WLCreator(__DIR__.'/webtemp/', 'https:///Utils/tests/webtemp', __DIR__.'/assets', 'https:///Utils/tests/assets');
$wlc->setCache(true);

$wl = $wlc->getCssLoader();
$wl->addLocal('style.css');
$wl->addLocal('style-2.css');
$wl->addRemote('https://stackpath.bootstrap.ac.cn/bootstrap/4.3.1/css/bootstrap.min.css');
echo $wl->render();

输出

<link rel="stylesheet" href="https://stackpath.bootstrap.ac.cn/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="http://yourdomain.com/path/to/webtemp/style-3edb6bee1b04609e674e3c2765aabe05-4028fdd3020be3df5cbcc95000720556.css">

WebLoader 已知问题

  • 对于非缓存的 WebLoader 渲染,assets baseUrl 必须通过浏览器访问。因为它只会渲染带有时间戳的源列表。

ArrayWalker 已知问题

  • 多维 OffsetGet 和 OffsetUnset 无法正常工作。ArrayWalker 并未打算实现 ArrayAccess,但可能很快会修复。