Author: admin

中国开源许可证-木兰宽松许可证介绍

引言

开源(Open Source)是人类在互联网发展进程中探索出的一种面向全球的大规模协作生产方式,它以开放共享、合作共赢为宗旨,有效地推进了全球化进程。当前,我国开发者和企业参与开源的热情不断高涨,开源产业也逐步完善;然而,我国面向开源的环境、技术、人才、生态等方面还存在诸多问题。推动国内外开源的交流与合作,促进产学研用结合,保护广大开源参与者的利益,造就有影响力、可持续发展的开源生态系统,是相关行业当前的一项重要任务。

开源许可证是对开源软件的使用、复制、修改和分发等行为进行规范和约束的一种具有法律效力的格式合同,是开源运动的基石。目前,经开源促进会(OSI)认证的开源软件许可证共有 80 多个,它们都由国外或国际组织机构使用英文发布。对于来自世界各地的广大开源参与者而言,现有许可证中的条款的表述比较晦涩,容易因理解有误而违约。同时,很多许可证对被许可方责任和义务的表述不够完善,容易导致难以解决的法律纠纷。此外,当前国际形势需要来自全球不同地方的更多声音和力量来倡导开源。

如何根据性能选择内存NoSQL数据库?

导读:NoSQL数据库系统发展迅速,常见的有Redis,Tarantool ,CouchBase等等。那么对于用户来说,该如何选择呢?接下来我们将会结合性能测试工具Yahoo! Cloud Serving Benchmark(YCSB)来对几款常用内存NoSQL进行性能对比,以找出最优方案。

本文主要内容是测试了不同NoSQL数据库在测试工具YCSB中的表现。我们选取了3款流行的内存(in-memory)数据库管理系统:Redis,Tarantool 以及 CouchBase,还有缓存系统Memchached。Memchached虽然不属于数据库管理系统但常作为快速存储系统使用。…

                

PHP 进化史 — 从 v5.6 到 v8.0

在此篇文章中,我们将用 15 分钟对 PHP v7.x 版本更改进行简要回顾。

PHP 7.3 版本发布后,为了更好地理解这门广泛流行的编程语言的新特性和优化之处,我决定详细地研究下 PHP 开发:正在开发什么以及其开发方向。

在查看了 PHP 在 PHP 7.x 版本开发过程中实现的一系列特性的简要列表之后,我决定自己整合这个列表作为一个很好的补充,我相信也会有人觉得有用的。

我们将从 PHP 5.6 作为基准开始,研究添加或者更改了哪些内容。同时,我也在每一个被提及到的特性处添加了直达相关官方文档的链接,所以如果你有兴趣深入阅读,请随意。…

令人期待的 PHP7.4

PHP 7.4 是下一个 PHP 7 的次要版本,预计将于 2019 年 11 月 28 日发布到 General Availability。让我们来了解下 PHP 7.4 新增的功能,这些新功能将使 PHP 更快,更可靠。

当然,更令我期待是 PHP 8。因为 JIT 的一些提议,已经获得批准,这可能成为 PHP 的又一个里程碑。…

PHP 7.4 FFI(外部函数接口):您需要知道的

PHP外部函数接口:FFI,是一个PHP扩展,允许您轻松地将一些外部库包含到PHP代码中。这意味着可以直接在PHP中使用C,Go,Rust等共享库​​,而无需在C中编写PHP扩展。这个概念在其他语言(如Python或Go)中已经存在多年了。

UUID生成

让我们从一个小例子开始:UUID生成。

使用PHP,有几种生成UUID的方法。最好的方法是使用PECL UUID扩展名。您可以在GitHub上阅读其代码。这个PHP扩展负责将PHP函数绑定到libuuid。要使其正常工作,您必须在系统上安装libuuid(不必担心,几乎总是这样)和PECL。

这就是我们从PHP用户代码调用uuid_create()时发生的情况:

+---------------------+
   |    your PHP code    |
   +---+-------------^---+
       v             ^
   +---v-------------+---+
   |     PHP engine      |
   +---+-------------^---+
       v             ^
   +---v-------------+---+
   |      UUID ext       |
   +---+-------------^---+
       v             
    

PHP 7.4中的类型化属性

类型化类属性已在PHP 7.4中添加,并为PHP的类型系统提供了重大改进。这些更改是完全可选的,并且不破坏以前的版本。

在本文中,我们将深入研究该功能,但首先让我们首先总结最重要的要点:

  • 它们自PHP 7.4起可用,该版本于2019年11月发布。
  • 他们只在类 上使用,并且需要访问修饰符:publicprotectedprivate; 或var
  • 允许所有类型,除了voidcallable

他们的实际情况是这样的:…

    

PHP 7.4中的箭头函数

短闭包(也称为箭头函数)是用PHP编写短函数的一种方式。当将闭包传递给类似array_maparray_filter的函数时,此符号很有用。

这是他们的样子:

// A collection of Post objects
$posts = [/* … */];

$ids = array_map(fn($post) => $post->id, $posts);

以前,您必须编写以下代码:…

    

从PHP7.0 升级到PHP7.4

一.新功能

1.可空类型

现在,可以通过在类型名称前面加上问号来将参数和返回值的类型声明标记为可为空。这表示和指定的类型一样,NULL可以分别作为参数传递或作为值返回。

function test(?string $name)
{
var_dump($name);
}

上面的$name 可为字符串或null.

2.void函数

引入了void返回类型。以void声明为返回类型的函数必须完全省略其return语句,或者使用空的return语句。NULL不是void函数的有效返回值。

 function swap(&$left, &$right): void
{
if ($left === $right) {
return;
}$tmp = $left;
$left = $right;
$right = $tmp;
}