darling/php-text-types

一组表示不同文本类型的类。

v1.1.8 2023-12-20 02:17 UTC

README

一组表示不同文本类型的类。

安装

composer require darling/php-text-types

以下是对 PHPTextTypes 库提供的类的概述。

这些类可以直接使用,也可以扩展以定义新的文本类型。

Darling\PHPTextTypes\classes\strings\Text

Text 表示一个字符串,可以转换为它所表示的字符串,并且可以提供有关它所表示的字符串的信息。

注意:Darling\PHPTextTypes\classes\strings\Text 类是本库中定义的所有其他类的父类。

示例

https://github.com/sevidmusic/PHPTextTypes/blob/main/TextExample.php

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPTextTypes\classes\strings\classes\strings\Text;

$text = new Text('Foo bar baz.');

echo $text;
// example output: Foo bar baz.

echo strval($text->length());
// example output: 12

echo ($text->contains($text) ? 'True' : 'False');
// example output: True

echo ($text->contains('Foo') ? 'True' : 'False');
// example output: True

echo ($text->contains('foo') ? 'True' : 'False');
// example output: False

Darling\PHPTextTypes\classes\strings\ClassString

ClassString 是一个以它所属命名空间前缀的现有类的名称。

示例

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPTextTypes\classes\strings\classes\strings\ClassString;

$obj = (object) array('propertyName' => 'value');

$classString = new ClassString($obj);

echo $classString;
// example output: stdClass

$classString = new ClassString($classString);

echo $classString;
// example output: Darling\PHPTextTypes\classes\strings\classes\strings\ClassString

Darling\PHPTextTypes\classes\strings\UnknownClass

UnknownClass 是一个表示未知类的 ClassString。

示例

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPTextTypes\classes\strings\classes\strings\ClassString;
use \Darling\PHPTextTypes\classes\strings\classes\strings\UnknownClass;

$unknownClass = new UnknownClass();

echo $unknownClass;
// example output: Darling\PHPTextTypes\classes\strings\classes\strings\UnknownClass

/**
 * Note:
 *
 * UnknownClass::class will be returned by a ClassString instance's
 * __toString() method if the class represented by the ClassString
 * instance does not actually exist.
 *
 * For Example:
 *
 */

$classString = new ClassString('Class\That\Does\Not\Exist');

echo $classString;
// example output: Darling\PHPTextTypes\classes\strings\classes\strings\UnknownClass

$classString = new ClassString('a string');

echo $classString;
// example output: Darling\PHPTextTypes\classes\strings\classes\strings\UnknownClass

Darling\PHPTextTypes\classes\strings\SafeText

SafeText 用于提供包含可能不安全的字符的 Text 的安全形式。

以下字符被认为是安全的:

  • 字母数字字符:A-Z,a-z 和 0-9
  • 下划线:_
  • 连字符:-
  • 点:.

原始 Text 中的不安全字符将被下划线替换。

连续两个或更多不安全字符的序列将被单个下划线替换。

连续两个或更多下划线的序列将被单个下划线替换。

连续两个或更多连字符的序列将被单个连字符替换。

连续两个或更多点的序列将被单个点替换。

SafeText 从不为空,如果原始 Text 为空,则 SafeText 将是数字字符 0。

示例

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPTextTypes\classes\strings\classes\strings\SafeText;
use \Darling\PHPTextTypes\classes\strings\classes\strings\Text;

$safeText = new SafeText(new Text('Foo Bar Baz'));

echo $safeText;
// example output: Foo_Bar_Baz

Darling\PHPTextTypes\classes\strings\AlphanumericText

AlphanumericText 是只包含字母数字字符的 SafeText。

示例

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPTextTypes\classes\strings\classes\strings\AlphanumericText;
use \Darling\PHPTextTypes\classes\strings\classes\strings\Text;

$alphanumericText = new AlphanumericText(
    new Text('Foo_Bar baz-bazzer')
);

echo $alphanumericText;
// example output: FooBarBazBazzer

Darling\PHPTextTypes\classes\strings\Name

Name 是以字母数字字符开头、长度至少为 1、长度最多为 70 的 SafeText,并且只包含以下字符:

  • 字母数字字符:A-Z,a-z 和 0-9
  • 下划线:_
  • 连字符:-
  • 点:.

示例

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPTextTypes\classes\strings\classes\strings\Name;
use \Darling\PHPTextTypes\classes\strings\classes\strings\Text;

$name = new Name(new Text('Foo Bar Baz. Bin Bar-Foo Bazzer'));

echo $name;
// example output: Foo_Bar_Baz.Bin_Bar-Foo_Bazzer

Darling\PHPTextTypes\classes\strings\Id

Id 是长度在 60 到 80 个字符之间的 AlphanumericText。

示例

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPTextTypes\classes\strings\classes\strings\Id;

$id = new Id();

echo $id;

// example output:
// U7ok0eYte87rfdhl2nbMtLghqSQxRQH2FdOBUvjRQG5U99rEfV7m9CNiNLRMd