Skip to content

Latest commit

 

History

History
134 lines (106 loc) · 3.79 KB

File metadata and controls

134 lines (106 loc) · 3.79 KB

bypassflow/text

bypassflow/text は、文字列表現、文脈別 escape、case conversion を束ねる text 基盤 package です。

上位 package で

  • 値を一貫した文字列へ寄せたい
  • HTML や JavaScript 文脈へ安全に escape したい
  • 命名や表示のために文字列様式を変換したい

ときの共通土台として使います。

Requirements

  • PHP 8.5+

Quick Start

値を文字列化したいとき:

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');

Main APIs

Stringify

  • Text::stringify()
    • 値を表示向け文字列へ正規化します
  • Text::nice()
    • stringify() の短い入口として使えます
  • TextStringifier
    • 文字列表現器を直接使いたいときに使えます
  • Niceable
    • object 側で表示向け文字列を定義したいときの契約です
  • Htmlable
    • HTML 文脈で安全な文字列を返したい object 契約です

Escaping

  • 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 式表現を返します
  • HtmlEscaper
    • HtmlTextEscaper の alias として使えます
  • HtmlTextEscaper
  • HtmlAttributeEscaper
  • JavaScriptEscaper
    • JavaScriptStringLiteralEscaper の alias として使えます
  • JavaScriptStringLiteralEscaper
  • CssEscaper
    • CssPropertyValueEscaper の alias として使えます
  • CssPropertyValueEscaper
  • UrlEscaper
    • UrlComponentEscaper の alias として使えます
  • UrlComponentEscaper
  • UrlInHtmlAttributeEscaper
  • ShellEscaper
    • EscaperInterface ベースで文脈別 escaper を使いたいときに使えます

Case Conversion

  • Text::toSnakeCase()
  • Text::toUpperSnakeCase()
  • Text::toLowerSnakeCase()
  • Text::toChainCase()
  • Text::toUpperChainCase()
  • Text::toLowerChainCase()
  • Text::toCamelCase()
  • Text::toUpperCamelCase()
  • Text::toLowerCamelCase()

Formatting

  • Text::toUnitByteSize()
    • バイトサイズを単位付き文字列へ変換します
  • Text::toUnitIecByteSize()
    • KiB / MiB / GiB / TiB 系の IEC 表記へ変換します
  • Text::fromUnitByteSize()
    • 単位付きサイズ文字列を byte 数へ戻します
  • Text::fromUnitIecByteSize()
    • IEC 単位付きサイズ文字列を byte 数へ戻します

More

もう少し具体的な使い方は USAGE.md を参照してください。