backbee / utils
BackBee 工具库,适用于php
此包的官方仓库似乎已不存在,因此该包已被冻结。
v2.0.1
2015-11-13 11:00 UTC
Requires
- php: >=5.4.4
Requires (Dev)
- symfony/yaml: ~2.7
This package is not auto-updated.
Last update: 2024-07-14 16:16:43 UTC
README
utils 库是从 BackBee 核心项目中提取出来的。它包含许多用于操作文件、数组和字符串的有用方法。
- 集合
尽管API不一致,PHP仍然是处理数组较为方便的程序设计语言之一。
我们已经实现了一些方法,以简化XML和CSV中数组的转换。我们还提供了一些在处理关联数组时可能需要的有用方法。
示例
require_once('some_autoloader.php'); use BackBee\Utils\Collection\Collection; $users = [0 => ['name' => 'Charles', 'role' => 'lead developper'], 1 => ['name' => 'Eric', 'role' => 'developper'], ]; echo Collection::toCsv($users, ';'); /** * Will return: * Charles;lead developper * Eric;developper */ $users = ['users' => [ 0 => ['name' => 'Charles', 'role' => 'lead developper'], 1 => ['name' => 'Eric', 'role' => 'developper'], ], ]; echo Collection::toBasicXml($users, ';'); /** * <users> * <0> * <name>Eric</name> * <role>developper</role> * </0> * <1> * <name>Charles</name> * <role>lead developper</role> * </1> * </users> */ $tree = [ 'root' => [ 'child' => [ 'subchild' => 'value', ], ], ]; Collection::has($tree, 'root:child:subchild'); // return true Collection::has($tree, 'root::child::subchild', '::'); // return true Collection::has($tree, 'root:child:foo'); // return false
- 字符串
我们为此库添加了一些简化编码操作的方法。我们还提供了一些处理具有特定含义的字符串的有用函数,如文件大小、路径、URL。
示例
require_once('some_autoloader.php'); use BackBee\Utils\String; /** * Some helpers for encoding operations */ mb_detect_encoding(String::toASCII('BackBee')); // "ASCII" mb_detect_encoding(String::toUTF8('w�ird')); // "UTF-8" /** * Some normalizers for filepaths and urls */ $options = ['extension' => '.txt', 'spacereplace' => '_']; String::toPath('test path', $options)); // "test_path.txt" $options = ['extension' => '.com', 'spacereplace' => '_']; String::urlize('test`s url', $options); // "tests_url.com" /** * Convenients formatters for file size */ String::formatBytes(2000, 3); // "1.953 kb" String::formatBytes(567000, 5); // "553.71094 kb" String::formatBytes(567000); // "553.71 kb" String::formatBytes(5670008902); // "5.28 gb"
- 目录 & 文件
我们为此库添加了一些用于目录操作的方法。目前我们提供了4种方法:copy()
、delete()
、getContent()
和 move()
。
示例
require_once('some_autoloader.php'); use BackBee\Utils\File\Dir; /** * /src * foo/ * bar.txt * baz.xml */ $fooPath = __DIR__.DIRECTORY_SEPARATOR.'foo'; $fooFooPath = $fooPath.DIRECTORY_SEPARATOR.'foo'; $fooBazPath = $fooPath.DIRECTORY_SEPARATOR.'baz'; Dir::copy($fooPath, $fooFooPath); /** * /src * foo/ * bar.txt * baz.xml * foo/ * bar.txt * baz.xml * baz/ * bar.txt * baz.xml */ Dir::delete($fooFooPath); /** * /src * foo/ * bar.txt * baz.xml * baz/ * bar.txt * baz.xml */ Dir::getContent(__DIR__); /** * ['foo' => * ['bar.txt', 'bar.xml', 'baz' => * ['bar.txt', 'bar.xml'] * ] * ] */ $backbeePath =$fooPath.DIRECTORY_SEPARATOR.'backbee'; Dir::move($fooBazPath, $backbeePath, 000); /** * /src * foo/ * bar.txt * baz.xml * backbee/ * bar.txt * baz.xml */ Dir::getContent($backbeePath); // throw Exception()