serger / cake-utility
CakePHP 3.x 实用类,如Inflector、String和Hash,无需依赖Cake/Core
v3.0.2
2023-04-27 00:09 UTC
Requires
- php: >=8.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^9
- vimeo/psalm: >=5.9.0
Suggests
- ext-ctype: To use Text::parseFileSize()
- ext-dom: To use Xml
- ext-intl: To use Text::transliterate() or Text::slug()
- ext-libxml: To use Xml
- ext-simplexml: To use Xml
- lib-ICU: To use Text::transliterate() or Text::slug()
README
CakePHP 实用类
这是对提供一系列CakePHP框架实用类的库的分支,但无需框架核心依赖。
为什么?
我喜欢 CakePHP,这是一个强大、美观且灵活的PHP框架。但我不能在工作的每一个项目中都使用它 :( 。所以我把这个非常实用的工具箱克隆出来,移除了对 Cake/Core 的任何依赖,以便单独使用这个库。
版本策略
- 1.x.x — PHP 5.6-7.3,当我的项目运行在这些PHP版本上时,接收代码回滚
- 2.x.x — PHP 7.4,接收代码和测试回滚
- 3.x.x — PHP 8.0 目前在master分支
工具箱中有什么?
Hash
一个Hash(如PHP数组)类,能够使用直观的DSL提取数据
$things = [ ['name' => 'Mark', 'age' => 15], ['name' => 'Susan', 'age' => 30], ['name' => 'Lucy', 'age' => 25] ]; $bigPeople = Hash::extract($things, '{n}[age>21].name'); // $bigPeople will contain ['Susan', 'Lucy']
Inflector
Inflector类可以接受一个字符串,并可以对其进行操作以处理单词变化,如复数化或驼峰化。
echo Inflector::pluralize('Apple'); // echoes Apples echo Inflector::singularize('People'); // echoes Person
Text
Text类包括创建和操作字符串的便利方法。
Text::insert( 'My name is :name and I am :age years old.', ['name' => 'Bob', 'age' => '65'] ); // Returns: "My name is Bob and I am 65 years old." $text = 'This is the song that never ends.'; $result = Text::wrap($text, 22); // Returns This is the song that never ends.
Xml
Xml类允许你轻松地将数组转换为SimpleXMLElement或DOMDocument对象,反之亦然。
$data = [ 'post' => [ 'id' => 1, 'title' => 'Best post', 'body' => ' ... ' ] ]; $xml = Xml::build($data);
查看官方Xml类文档