darling / php-text-types
一组表示不同文本类型的类。
v1.1.8
2023-12-20 02:17 UTC
Requires
- php: ^8.1
- darling/php-darling-dev-tools: ^1.0
- darling/php-unit-test-utilities: ^1.0
Requires (Dev)
README
一组表示不同文本类型的类。
-
- Darling\PHPTextTypes\classes\strings\Text
- Darling\PHPTextTypes\classes\strings\ClassString
- Darling\PHPTextTypes\classes\strings\UnknownClass
- Darling\PHPTextTypes\classes\strings\SafeText
- Darling\PHPTextTypes\classes\strings\AlphanumericText
- Darling\PHPTextTypes\classes\strings\Name
- Darling\PHPTextTypes\classes\strings\Id
安装
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