revolution / laravel-str-mixins
Laravel Str mixins
Installs: 13 120
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: ^8.1
- ext-mbstring: *
- illuminate/support: ^10.0||^11.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
Illuminate\Support\Str
を拡張する主に日本語用のmixin
Requirements
- PHP >= 8.1
- Laravel >= 10.0
Versioning
- 基本的にはセマンティックバージョニング。
- サポート期間はPHP本体やLaravelと同じなのでサポート終了した旧バージョンは
+0.1
のバージョンアップで躊躇なく切っていく。 - 旧メジャーバージョンは別ブランチで残す。
- v1.xはLaravel6のみ。
- v2.xはFluent StringsのためにLaravel7以上のみ対応。
Installation
composer require revolution/laravel-str-mixins
Uninstall
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
に変更。動作が違うので削除せず残し。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あいう___
LICENSE
MIT