Symfony欧宝娱乐app下载地址 2.8新增功能:Polyfill Components
2016年3月10日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。欧宝娱乐app下载地址有些信息可能已经过时了。阅读最新的Symfony文档欧宝娱乐app下载地址.
提供的
尼古拉斯Grekas
在# 16240而且# 16317.
在网页开发中,填料是提供网络浏览器未内置的功能的附加代码.它们在JavaScript应用程序中非常流行,因为它们提供了统一的API,而不考虑用户浏览器提供的特性。
随着越来越多的PHP版本(从古老的PHP 5.3.3(发布于2010欧宝娱乐app下载地址年7月!)到最新的PHP 7.0)得到支持,Symfony也面临着同样的问题。这些PHP版本之间的差异使得我们进行了大量的PHP版本比较:
1 2 3 4 5
如果(PHP_VERSION_ID > =50400) {session_register_shutdown();}其他的{register_shutdown_function (“session_write_close”);}
我们还需要执行大量的函数检查,因为在执行Symfony应用程序时可能会缺少一些重要的PHP扩展:欧宝娱乐app下载地址
1 2 3 4 5 6 7
如果(function_exists (“mb_strlen”)) {$参数个数[$指数] = mb_substr(…);}其他的{$参数个数[$指数= substr(…);}/ /……
介绍PHP Polyfills
在整个Symfony代码库中支持五个不同的PHP分支正在成为维护的地狱。欧宝娱乐app下载地址因此,我们决定创建几个小的polyfill组件来“填补”PHP 5的空白。X版本和缺少扩展。
例如,在任何PHP 5中使用PHP 7.0提供的一些很棒的新PHP函数。X应用程序,您只需要安装欧宝娱乐app下载地址symfony / polyfill-php70
组件:
1
$作曲家需要symfony/poly欧宝娱乐app下载地址fill-php70
现在,您的项目可以开始使用PHP 7中包含的并通过PHP 5提供的这些函数了。X代码由这个组件:
intdiv ()
preg_replace_callback_array ()
error_clear_last ()
random_bytes ()
而且random_int ()
PHP 7填充还提供了*误差
throwable类。
选择您的PHP填充
欧宝娱乐app下载地址Symfony项目已经发布了12个解耦的polyfill组件,它们可以在您的应用程序中单独使用:
- 欧宝娱乐app下载地址symfony / polyfill-apcu使用
apcu_ * ()
功能, - 欧宝娱乐app下载地址symfony / polyfill-php54使用PHP 5.4引入的新函数,
- 欧宝娱乐app下载地址symfony / polyfill-php55使用PHP 5.5引入的新函数,
- 欧宝娱乐app下载地址symfony / polyfill-php56使用PHP 5.6引入的新函数,
- 欧宝娱乐app下载地址symfony / polyfill-php70使用PHP 7.0引入的新函数,
- 欧宝娱乐app下载地址symfony / polyfill-iconv使用
iconv
功能, - 欧宝娱乐app下载地址symfony / polyfill-intl-grapheme使用
grapheme_ * ()
功能, - 欧宝娱乐app下载地址symfony / polyfill-intl-icu使用
intl
函数和类, - 欧宝娱乐app下载地址symfony / polyfill-intl-normalizer使用
intl
标准化者, - 欧宝娱乐app下载地址symfony / polyfill-mbstring使用
mbstring
功能, - 欧宝娱乐app下载地址symfony / polyfill-util使用polyfill实用工具helper,
- 欧宝娱乐app下载地址symfony / polyfill-xml使用
utf8_encode() /解码()
功能。
如你所见这个拉请求在Symfony 2.8中,使用所有这些填充程序可以删除大约800行代码欧宝娱乐app下载地址。
发表在#生活在边缘
评论
林恩·范德伯格
2016年3月10日在07:53
# 1
这可能是2.8最好的功能!不用再担心你的函数支持或不支持哪个php版本。
托马斯Votruba
2016年3月10日在39
#2
我也喜欢这个,很棒的捡!
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。