revolution/laravel-str-mixins

Laravel Str 混合扩展

2.6.0 2024-02-20 05:18 UTC

This package is auto-updated.

Last update: 2024-08-29 06:12:48 UTC


README

Build Status Maintainability Test Coverage

Illuminate\Support\Str 扩展,主要是针对日语的mixin

要求

  • PHP >= 8.1
  • Laravel >= 10.0

版本控制

  • 基本上是语义版本控制。
  • 支持期间与PHP本体或Laravel相同,因此对于已停止支持的旧版本,可以毫不犹豫地通过+0.1的版本升级来删除。
  • 旧主版本将保留在单独的分支中。
  • v1.x 仅适用于 Laravel6。
  • v2.x 仅适用于 Laravel7以上,因为需要支持 Fluent Strings。

安装

composer require revolution/laravel-str-mixins

卸载

composer remove revolution/laravel-str-mixins

Str

Str::textwrap(string $str, int $width = 10, string $break = PHP_EOL): string

指定文字数进行换行。只是简单地换行,没有禁则处理等。

$text = Str::textwrap(str: 'abcde', width: 3);

// abc
// de

最初是为了适应 OGP 图片宽度而进行强制换行的目的。

由于 Laravel 10.19.0 中增加了同名的 Str::wordWrap(),因此将 textwrap 改为 textwrap。由于操作不同,因此没有删除而保留。Str::wordWrap() 在日语中可能不会产生预期的效果。

Str::kana(string $str, string $option = 'KV', string $encoding = 'UTF-8'): string

mb_convert_kana() 相同。

$text = Str::kana(str: 'abcあいうアイウ', option: 'KVa');

// abcあいうアイウ

Str::truncate(string $str, int $limit = 100, string $end = '...'): string

Str::limit() 以半角1、全角2进行计数并截断。使用多字节函数,但按字符宽度进行计数。

$text = Str::limit('abcあいうえお', 7);

// abcあい...

由于日语中可能不会产生预期的效果,因此使用字数进行计数并截断的 Str::truncate()

$text = Str::truncate(str: 'abcあいうえお', limit: 7);

// abcあいうえ...

Fluent Strings

textwrap(int $width = 10, string $break = PHP_EOL): Stringable

$text = Str::of('abcde')->textwrap(width: 3)->value();

// abc
// de

kana(string $option = 'KV', string $encoding = 'UTF-8'): Stringable

$text = Str::of('abcあいうアイウ')->kana(option: 'KVa')->value();

// abcあいうアイウ

用于连接使用。

$text = Str::of('abcあいうアイウ')->kana(option: 'KVa')->textwrap(3)->value();

// abc
// あいう
// アイウ

truncate(int $limit = 100, string $end = '...'): Stringable

$text = Str::of('abcあいうえお')->truncate(limit: 6, end: '___')->value();

// abcあいう___

许可

MIT