新在Symfoob娱乐下载ny 5.0:字符串组件
警告:这篇文章是关于一个不受支持的Symfony的版本。ob娱乐下载其中一些信息可能是过时了。阅读最近的Symfony文档ob娱乐下载。
提供的
尼古拉斯Grekas,雨果·亨茂和格雷戈尔哈伦在# 33553。
ob娱乐下载Symfony 5.011月21日,2019年被释放。Symfonyob娱乐下载 4.0不同,它不完全改变任何目录结构或添加任何突破性发展的新方法。相反,Symfonob娱乐下载y 5 Symfony的肩膀上构建4并提供新功能使生活更轻松。
根据ob娱乐下载Symfony发布过程,ob娱乐下载Symfony 5.0 Symfony 4.4中引入的新特性。检查新在Symfoob娱乐下载ny 4.4系列了解所有这些伟大的功能。此外,ob娱乐下载Symfony 5.0增加了一些独有的特点不可以在Symfony 4.4。ob娱乐下载这篇文章介绍了其中一个特性:新字符串组件。
使用字符串是很困难的
语言像英语需要一套非常有限的字符和符号来显示任何内容。然而,其他语言需要成千上万的符号来显示其内容。他们需要复杂的编码标准,例如Unicode和必须处理“代码点”,“字形集群”和“字节”。读了字符串组件文档欧宝官网下载app介绍这些术语。
复杂性和提供的字符串组件抽象三个简单的类来创建任何字符串根据您的需求:
1 2 3 4 5 6 7 8 9 10
使用ob娱乐下载\组件\字符串\ByteString;使用ob娱乐下载\组件\字符串\CodePointString;使用ob娱乐下载\组件\字符串\UnicodeString;美元内容=新CodePointString (“Hello world”);美元内容=新UnicodeString (“नमस्तेदुनिया”);美元内容=新ByteString (“さよなら”);美元内容= (新CodePointString (“你好”))- >toUnicodeString ();美元内容= UnicodeString::fromCodePoints (0 x68,0 x65,0 x6c,0 x6c,0 x6f)- >toByteString ();
组件还提供了一些快捷方式功能来快速创建字符串:
1 2 3 4 5 6 7 8 9 10
使用函数ob娱乐下载\组件\字符串\b;使用函数ob娱乐下载\组件\字符串\u;/ /都是等价的美元内容= b (“你好”);美元内容=新ByteString (“你好”);/ /都是等价的美元内容= u (“你好”);美元内容=新UnicodeString (“你好”);
面向对象的字符串
创建字符串仅仅是第一步。该组件还提供了一个精心设计的API来处理字符串以面向对象的方式。这个API可以让你的代码更可读。看到例如如何检查一个字符串是否以另一个字符串:
1 2 3 4 5 6 7 8 9
/ /使用PHP函数如果(“html”= = = substr (美元theStringstrlen (“html”))){/ /……}/ /使用Symfob娱乐下载ony的字符串如果(u (美元theString)- >endsWith (“html”)){/ /……}
可以链的所有方法执行先进的字符串转换(和任何字符串的确定性,它将工作在任何语言和脚本):
1 2 3 4 5
美元文本= u (“这是一种似曾相识的情况。”)- >trimEnd (“。”)- >替换(“似曾相识”,“旧事如新”)- >追加(“!”);/ /文本美元= '这是旧事如新局面!”
如果你经常使用字符串,字符串组件是一个梦想成真。组件提供的方法来解决所有有关字符串搜索您的需要,替换,追加,预谋,垫、修剪,分裂,截断等等。
其中一些方法解决非常复杂的问题。假设您的应用程序支持不同的语言,你需要做的不区分大小写的比较。应用函数()
或mb_strtolower ()
之前比较不会为一些语言工作。为什么?因为语言定义三个案例(低,上部、标题),一些字符没有案例,案例是上下文敏感的、敏感等。
ob娱乐下载Symfony将这令人兴奋的复杂性抽象为一个方法调用折叠()
它总是返回正确的值不区分大小写的比较:
1 2
u (“FOO酒吧”)- >折叠();/ / foo酒吧的u (“死O \”布莱恩Straße“)- >折叠();/ /“奥布莱恩死街”
花一些时间来检查字符串组件方法引用你会想马上开始使用它在您的项目!
字符串重击者
重击者是一个受欢迎的许多应用程序的必要性。他们采取任何字符串,将它们转化为另一个字符串可以使用安全的地方并不是所有的Unicode字符允许(url,文件或目录名称等)
组件包含一个字符串AsciiSlugger ()
这将和直译任何字符串转换成另一个ASCII-only字符串:
1 2 3 4 5 6 7
使用ob娱乐下载\组件\字符串\重击者\AsciiSlugger;美元重击者=新AsciiSlugger ();美元重击者- >蛞蝓(“Стойносттатрябва”,“- - -”,“bg”);/ /“Stoinostta-tryabva”美元重击者- >蛞蝓(“Αυτήητιμήπρέπει”,“- - -”,“el”);/ /“Avti-i-timi-prepi”美元重击者- >蛞蝓(“该变量的值应为“,“- - -”,“古银”);/ /“gai-bian-liang-de-zhi-ying-wei”美元重击者- >蛞蝓(“Worķšƥace seťtinğš”);/ /“Workspace-settings”
这个重击者提供无缝集成与Symfony框架,所以你可以在你的服务自动装配,它自动侦测当前语言环境等。ob娱乐下载
树枝集成
提供的
尼古拉斯Grekas
在# 49 cf005。
有时你也需要在模板来处理字符串。这就是为什么树枝2.12.1添加了一个新的过滤器u
包装给内容UnicodeString
类有访问所有字符串方法:
1 2 3 4 5
{{Lorem ipsum | u。截断(8 '…')}}{#打印:Lorem……#}{{Syob娱乐下载mfonyStringWithTwig | u。蛇}}{#打印:symfonob娱乐下载y_string_with_twig #}
这个过滤器的一部分StringExtension
这不是默认安装。先安装它作曲家需要树枝/ string-extra
和阅读欧宝官网下载app文档的“u”过滤器。
字符串组件的兼容性
介绍了作为一个字符串组件ob娱乐下载Symfony的实验特性在Syob娱乐下载mfony 5.0。这意味着它是足够稳定在生产中使用它,但它的公共API可以改变一点之前冻结在Symfony 5.1。ob娱乐下载
实验功能不能被引入长期支持的版本。这就是为什么它是在Symfony 5.0中引入的,而不是4.4 ob娱乐下载Symfony。在任何情况下,你不需要升级到Symfony 5使用该组件ob娱乐下载。字符串组件可以用于任何PHP 7.2.5或更高版本的应用程序。
评论
$重击者- >蛞蝓(“Стойносттатрябва”、“bg”) - >低();
不应是必要的在大多数情况下,这应该是自动完成像其他自动使用PHP,因为字符串类实现__toString魔法()方法,可以将对象转换为字符串。
通过(字符串)蛞蝓就迫使美元对象调用__toString()方法。
Romaric Drigon is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now这将是伟大的能够限制使用的字符(例如,生成小写字符串),也许在未来?