搜索
首页后端开发php教程SourceHunt 9月-Hacktoberfest版本

参与 DigitalOcean 的 Hacktoberfest,为开源项目贡献力量!

Sourcehunt September - Hacktoberfest Edition

活动亮点:

  • DigitalOcean 的 Hacktoberfest 开启,鼓励大家为各种开源项目贡献代码。完成 4 个 pull request 即可获得一件 T 恤,以此表彰对开源社区的贡献。
  • 推荐参与的项目包括:简化 UTF-8 邮件发送的 Kodus/mail 包;面向对象的数组操作接口 voku/Arrayy;以及辅助代码静态检查的 Atom 插件 php-integrator/atom-base。
  • 其他值得参与的项目还有:货币兑换框架 florianv/exchanger;国家信息检索包 rinvex/country;以及缓存命中率分析工具 Corollarium/PSR6-ProfileCachePool。

一年一度的 DigitalOcean Hacktoberfest 又来了!

这是一个为期一个月的开源活动,鼓励大家为各种开源项目(非自身项目)贡献代码。提交 4 个 pull request(即使是文档修正也计入!)即可在月底获得一件 T 恤,以此象征着您对开源社区的贡献。

当然,开源远不止一个月的时间,但对于那些通常不花时间为其他开发者项目做贡献的人来说,这是一个非常好的开始。

如果您想参与,不妨从我们本月整理的项目列表中选择一些项目。如果您对这些项目不感兴趣,可以访问 Sourcehunt 的 PHP 标签,看看是否能找到更感兴趣的项目。

让我们开始吧!

Sourcehunt September - Hacktoberfest Edition


kodus/mail [3 ★]

在我们发布了《使用 PHP 和 Swiftmailer 应对招聘垃圾邮件》文章后,Kodus 就被提交到了 Sourcehunt。

Kodus/mail 是一个全新的 alpha 级包,旨在使 UTF-8 邮件发送更加简单,同时跳过 Swiftmailer 附带的所有旧式负担(旧式的自动加载、命名约定等)。正如作者所说,其目标是“使用现代 PHP 并限制功能范围,以实现简单性”。

这是您加入一个非常有前景的项目的绝佳机会!


voku/Arrayy [20 ★]

Arrayy 是一个功能强大且用途广泛的面向对象数组操作接口。README 简介如下:

Arrayy::create(['Array', 'Array'])->unique()->append('y')->implode() // Arrayy

这只是 Arrayy 提供的近乎无限可能的运算链之一。其他用法包括:

  • createFromString(string $str) : Arrayy (不可变) 通过字符串创建新的 Arrayy 对象。
Arrayy::create(['Array', 'Array'])->unique()->append('y')->implode() // Arrayy
  • append(mixed $value) : Arrayy (可变) 向当前数组追加值。别名:“Arrayy->add()”
$arrayy = A::createFromString(' foo, bar '); // Arrayy['foo', 'bar']
  • containsCaseInsensitive(string $value) : boolean 检查(不区分大小写)字符串是否在当前数组中。
a(['fòô' => 'bàř'])->append('foo'); // Arrayy['fòô' => 'bàř', 0 => 'foo']
  • each(Closure $closure) : Arrayy (不可变) 迭代当前数组并修改数组的值。
a(['E', 'é'])->containsCaseInsensitive('É'); // true
  • find(Closure $closure) : mixed 查找数组中第一个通过真值测试的项目,否则返回 false。
$result = A::create();
$closure = function ($value) {
  return ':' . $value . ':';
};
a(['foo', 'bar' => 'bis'])->each($closure); // Arrayy[':foo:', 'bar' => ':bis:']
  • randomWeighted(array $array, int|null $take) : Arrayy (不可变) 从数组中获取随机值,并能够倾斜结果。
$search = 'foo';
$closure = function ($value, $key) use ($search) {
  return $value === $search;
};
a(['foo', 'bar', 'lall'])->find($closure); // 'foo'
  • searchValue(mixed $index) : Arrayy (不可变) 通过 $index 搜索当前数组的值。
a([0 => 3, 1 => 4])->randomWeighted([1 => 4]); // 例如:Arrayy[4](有 66% 的概率返回 4)
  • toJson() : string 将当前数组转换为 JSON。
a(['fòô' => 'bàř'])->searchValue('fòô'); // Arrayy[0 => 'bàř']

…… 还有更多功能。该项目已经存在一段时间了,但尽管经过了充分测试和良好的文档记录,但尚未得到广泛采用,所以让我们希望 Sourcehunt 能有所帮助!


voku/portable-utf8 [76 ★]

与上面的 Arrayy 包出自同一人之手,portable-utf8 是 PHP 中的 UTF-8 实现,无需任何扩展先决条件。换句话说,无论您的服务器是否安装了支持 UTF-8 的扩展,UTF-8 都将在您的服务器上启用。如果缺少扩展,将使用 Symfony 的 polyfills。

我将让“原因”部分告诉您为什么存在这个包:

PHP 5 及更早版本没有原生 Unicode 支持。为了弥补这一差距,存在一些扩展,例如“mbstring”、“iconv”和“intl”。

“mbstring”和其他扩展的问题在于,大多数情况下您无法确保服务器上存在特定的扩展。如果您依赖其中一个,您的应用程序将不再可移植。对于必须在具有不同配置的不同服务器上运行的开源应用程序来说,这个问题变得更加严重。

需要注意的是,如果您已经在应用程序中使用了一些特定于 UTF-8 的功能,那么过渡到这个包并非易事,因为它不是直接替换。由于该包的性质,还值得记住的是它将成为一个硬依赖。尽管如此,考虑到收益,似乎还是值得的。

该包没有未解决的问题或 pull request,也没有定义 TODO,但其测试覆盖率和 Scrutinizer 分数可以改进,因此,如果您希望通过优化测试级别和感知代码质量来贡献,现在就是您的机会。


php-integrator/atom-base [168 ★]

PHP-integrator 是一个 Atom 包,它有助于代码静态检查——即,它将 PhpStorm 中许多有用的代码补全和代码提示功能添加到 Atom 中。

它目前依赖于 Atom,因为它是一个 Atom 包,但其 PHP 代码可以轻松提取并应用于另一个具有使集成成为可能的钩子的编辑器。另一个想法——为什么不使其开箱即用地与 Docker 一起工作,帮助人们避免必须在其主机操作系统上安装 PHP?加入吧!


florianv/exchanger [7 ★]

这个包是一个“货币兑换框架”,这意味着它用于开发货币兑换包。可以把它看作是一个标准,可以帮助您开发您自己可互换的货币兑换包。

这个“框架”的一个有趣的实现是同一作者的流行的 Swap 包。

虽然这两个包都相当成熟,但 Exchanger 可以做得更好。

顺便说一句,如果您有兴趣撰写关于 Exchanger 的文章并演示该框架的功能,请联系我们——我们正在寻找!


rinvex/country [383 ★]

正如描述所说:

Rinvex Country 是一个简单轻便的包,用于灵活地检索国家/地区详细信息。它提供了大量数据,包括名称、人口、首都、ISO 代码、拨号代码、地理数据、货币、标志、表情符号以及全球 250 个国家/地区的其他属性,触手可及。

示例:

Arrayy::create(['Array', 'Array'])->unique()->append('y')->implode() // Arrayy

作为目前正在构建两个独立的地理感知应用程序的人,我绝对欣赏这个包——它在处理常见的国家/地区信息方面使事情变得容易得多。

由于其多功能文档和出色的代码质量分数,该库已经拥有相当不错的采用率,但仍然可以使用更多用户和贡献者。你能帮忙吗?你现在也可以解决一些问题!


ScriptFUSION/Mapper [7 ★]

老实说,我不知道这是什么,也不知道我会用它做什么,但 Ocramius 赞扬了它,所以我把它列入了列表。

如果您觉得自己可以向完全的新手解释这是什么,请联系我们,我们会付钱给您写这篇文章。


lufficc/laravel-blog [164 ★]

一个 Laravel 5.3 博客系统!从反馈来看,它相当不错,但肯定需要更多功能。为什么不加入并提供帮助呢?

如果您做到了,请告诉我们——我们非常乐意进行彻底的分析!


Corollarium/PSR6-ProfileCachePool/ [9 ★]

您使用 PSR-6 缓存吗?如果是这样,您可能对这个分析器感兴趣,它监控缓存实现的命中和未命中次数。除非您注意到一些差异并想要调试,否则它并没有什么用,但如果您需要它,它就在这里!

为什么不通过添加更多报告格式(动画图表?)或其他要跟踪的统计信息来为该包做出贡献呢?


这就是九月份的内容——与往常一样,请使用 #sourcehunt 标签向我们发送您的链接!现在,让我们开始 Hacktoberfest 吧!让我们知道您做了什么,祝您编码愉快!

以上是SourceHunt 9月-Hacktoberfest版本的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
继续使用PHP:耐力的原因继续使用PHP:耐力的原因Apr 19, 2025 am 12:23 AM

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

PHP和Python:探索他们的相似性和差异PHP和Python:探索他们的相似性和差异Apr 19, 2025 am 12:21 AM

PHP和Python都是高层次的编程语言,广泛应用于Web开发、数据处理和自动化任务。1.PHP常用于构建动态网站和内容管理系统,而Python常用于构建Web框架和数据科学。2.PHP使用echo输出内容,Python使用print。3.两者都支持面向对象编程,但语法和关键字不同。4.PHP支持弱类型转换,Python则更严格。5.PHP性能优化包括使用OPcache和异步编程,Python则使用cProfile和异步编程。

PHP和Python:解释了不同的范例PHP和Python:解释了不同的范例Apr 18, 2025 am 12:26 AM

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP和Python:深入了解他们的历史PHP和Python:深入了解他们的历史Apr 18, 2025 am 12:25 AM

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

在PHP和Python之间进行选择:指南在PHP和Python之间进行选择:指南Apr 18, 2025 am 12:24 AM

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP和框架:现代化语言PHP和框架:现代化语言Apr 18, 2025 am 12:14 AM

PHP在现代化进程中仍然重要,因为它支持大量网站和应用,并通过框架适应开发需求。1.PHP7提升了性能并引入了新功能。2.现代框架如Laravel、Symfony和CodeIgniter简化开发,提高代码质量。3.性能优化和最佳实践进一步提升应用效率。

PHP的影响:网络开发及以后PHP的影响:网络开发及以后Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP类型提示如何起作用,包括标量类型,返回类型,联合类型和无效类型?PHP类型提示如何起作用,包括标量类型,返回类型,联合类型和无效类型?Apr 17, 2025 am 12:25 AM

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境