Illuminate\Support\Str
を拡張する主に日本語用のmixin
- PHP >= 8.1
- Laravel >= 10.0
- 基本的にはセマンティックバージョニング。
- サポート期間はPHP本体やLaravelと同じなのでサポート終了した旧バージョンは
+0.1
のバージョンアップで躊躇なく切っていく。 - 旧メジャーバージョンは別ブランチで残す。
ver | PHP | Laravel |
---|---|---|
1.x | ^7.2 | 6 |
2.x | ^8.1 | 10/11 |
- v1.xはLaravel6のみ。
- v2.xはFluent StringsのためにLaravel7以上のみ対応。
composer require revolution/laravel-str-mixins
composer remove revolution/laravel-str-mixins
指定の文字数で改行。単純に改行なので禁則処理などはない。
$text = Str::textwrap(str: 'abcde', width: 3);
// abc
// de
元々はOGP画像の幅に収めるための強引な改行が目的。
Laravel 10.19.0で同名のStr::wordWrap()
が追加されたのでtextwrap
に変更。動作が違うので削除せず残し。Str::wordWrap()
は日本語では期待した動作にならない。
mb_convert_kana()
と同じ。
$text = Str::kana(str: 'abcあいうアイウ', option: 'KVa');
// abcあいうアイウ
Str::limit()
は半角は1、全角は2でカウントされて切り捨て。マルチバイト関数を使っているけど文字の幅でカウントしている。
$text = Str::limit('abcあいうえお', 7);
// abcあい...
日本語だと期待した動作ではないので文字数でカウントして切り捨てるStr::truncate()
$text = Str::truncate(str: 'abcあいうえお', limit: 7);
// abcあいうえ...
$text = Str::of('abcde')->textwrap(width: 3)->value();
// abc
// de
$text = Str::of('abcあいうアイウ')->kana(option: 'KVa')->value();
// abcあいうアイウ
繋げて使う用。
$text = Str::of('abcあいうアイウ')->kana(option: 'KVa')->textwrap(3)->value();
// abc
// あいう
// アイウ
$text = Str::of('abcあいうえお')->truncate(limit: 6, end: '___')->value();
// abcあいう___
MIT