serger/cake-utility

CakePHP 3.x 实用类,如Inflector、String和Hash,无需依赖Cake/Core

v3.0.2 2023-04-27 00:09 UTC

This package is auto-updated.

Last update: 2024-09-27 03:23:43 UTC


README

License

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']

查看官方Hash类文档

Inflector

Inflector类可以接受一个字符串,并可以对其进行操作以处理单词变化,如复数化或驼峰化。

echo Inflector::pluralize('Apple'); // echoes Apples

echo Inflector::singularize('People'); // echoes Person

查看官方Inflector类文档

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.

查看官方Text类文档

Xml

Xml类允许你轻松地将数组转换为SimpleXMLElement或DOMDocument对象,反之亦然。

$data = [
    'post' => [
        'id' => 1,
        'title' => 'Best post',
        'body' => ' ... '
    ]
];
$xml = Xml::build($data);

查看官方Xml类文档