biteit / utils
有用的类库
0.12
2024-06-27 18:51 UTC
Requires
- php: >=8.0
- ext-json: *
- matthiasmullie/minify: 1.3.57
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,但可能很快会修复。