bypassflow/text は、文字列表現、文脈別 escape、case conversion を束ねる text 基盤 package です。
上位 package で
- 値を一貫した文字列へ寄せたい
- HTML や JavaScript 文脈へ安全に escape したい
- 命名や表示のために文字列様式を変換したい
ときの共通土台として使います。
- PHP 8.5+
値を文字列化したいとき:
use bypassflow\Text\Text;
$value = ['name' => 'alice', 'active' => true];
echo Text::stringify($value);HTML 文脈で escape したいとき:
use bypassflow\Text\Text;
echo Text::escapeHtml('<strong>alice</strong>');文字列様式を変換したいとき:
use bypassflow\Text\Text;
echo Text::toSnakeCase('PrimaryOwner');
echo Text::toLowerCamelCase('primary_owner');Text::stringify()- 値を表示向け文字列へ正規化します
Text::nice()stringify()の短い入口として使えます
TextStringifier- 文字列表現器を直接使いたいときに使えます
Niceable- object 側で表示向け文字列を定義したいときの契約です
Htmlable- HTML 文脈で安全な文字列を返したい object 契約です
Text::escape()- escape type を指定して文脈別に escape します
- generic dispatcher として使えます
Text::escapeHtml()- 値を HTML 文脈向けに escape します
Text::htmlEscape()Text::htmlTextEscape()の alias として使えます
Text::htmlTextEscape()- HTML 本文向けに escape します
Text::htmlAttributeEscape()- HTML 属性値向けに escape します
Text::jsEscape()Text::javaScriptStringLiteralEscape()の alias として使えます
Text::javaScriptStringLiteralEscape()- JavaScript 文字列リテラル向けに escape します
Text::cssEscape()Text::cssPropertyValueEscape()の alias として使えます
Text::cssPropertyValueEscape()- CSS property value 向けに escape します
Text::urlEncode()- URL component 向けに encode します
Text::urlInHtmlAttributeEscape()- URL を HTML 属性値へ入れる用途向けに encode/escape します
Text::shellEscape()- shell の単一引数向けに escape します
Text::toJson()- HTML 安全な JSON 文字列を返します
Text::toJsExpression()- 型に応じた JavaScript 式表現を返します
HtmlEscaperHtmlTextEscaperの alias として使えます
HtmlTextEscaperHtmlAttributeEscaperJavaScriptEscaperJavaScriptStringLiteralEscaperの alias として使えます
JavaScriptStringLiteralEscaperCssEscaperCssPropertyValueEscaperの alias として使えます
CssPropertyValueEscaperUrlEscaperUrlComponentEscaperの alias として使えます
UrlComponentEscaperUrlInHtmlAttributeEscaperShellEscaperEscaperInterfaceベースで文脈別 escaper を使いたいときに使えます
Text::toSnakeCase()Text::toUpperSnakeCase()Text::toLowerSnakeCase()Text::toChainCase()Text::toUpperChainCase()Text::toLowerChainCase()Text::toCamelCase()Text::toUpperCamelCase()Text::toLowerCamelCase()
Text::toUnitByteSize()- バイトサイズを単位付き文字列へ変換します
Text::toUnitIecByteSize()KiB/MiB/GiB/TiB系の IEC 表記へ変換します
Text::fromUnitByteSize()- 単位付きサイズ文字列を byte 数へ戻します
Text::fromUnitIecByteSize()- IEC 単位付きサイズ文字列を byte 数へ戻します
もう少し具体的な使い方は USAGE.md を参照してください。