loophp / phposinfo
尝试猜测主机操作系统。
1.8.0
2022-12-20 20:21 UTC
Requires
- php: ^8
Requires (Dev)
- ext-pcov: *
- drupol/php-conventions: ^5.0.0
- friends-of-phpspec/phpspec-code-coverage: ^6
- infection/infection: ^0.26
- infection/phpspec-adapter: ^0.2.0
- phpspec/phpspec: ^7
README
PHP OS Info
描述
获取PHP运行在的当前操作系统的信息。
您可以检索的信息包括
- 操作系统名称
- 操作系统系列
- 机器UUID
已经有很多这样的包,但大多数都基于使用包含操作系统名称的变量 PHP_OS
,该变量是从 php.net 构建的。
The operating system PHP was built for.
然而,PHP_OS
有时可能不够准确,因此使用 php_uname() 可能更适合检测操作系统,我们仅将其作为后备。
此库使用 php_uname() 和现有的操作系统静态列表,然后从中尝试推断操作系统系列。
从PHP 7.2开始,添加了变量 PHP_OS_FAMILY
,其定义基于 php.net。
The operating system family PHP was built for.
Either of 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' or 'Unknown'.
因此,如果您使用的是交叉编译的PHP,使用这些常量可能是个坏主意。
要求
- PHP >= 7.1.3
安装
composer require loophp/phposinfo
使用
<?php include 'vendor/autoload.php'; use loophp\phposinfo\OsInfo; use loophp\phposinfo\Enum\Family; use loophp\phposinfo\Enum\Os; // Register constants if they do not exists: // * PHP_OS_FAMILY // * PHP_OS // * PHPOSINFO_OS_FAMILY // * PHPOSINFO_OS OsInfo::register(); // Get the OS name. OsInfo::os(); // Get the OS family. OsInfo::family(); // Check if the OS is Unix based. OsInfo::isUnix(); // Check if the OS is Apple based. OsInfo::isApple(); // Check if the OS is Windows based. OsInfo::isWindows(); // Check the OS version. OsInfo::version(); // Check the OS release. OsInfo::release(); // Check if the OS Family is Family::UNIX_ON_WINDOWS. OsInfo::isFamily(Family::UNIX_ON_WINDOWS); // Check if the OS is Os::FREEBSD. OsInfo::isOs(Os::FREEBSD); // Check if the OS is Windows. OsInfo::isOs('windows'); // Check if the OS family is darwin. OsInfo::isFamily('darwin'); // Get the machine UUID. OsInfo::uuid();
代码质量、测试和基准
每次将更改引入库中时,都会设置 Github actions 以针对不同的操作系统和PHP版本测试库。
该库使用 PHPSpec 编写了测试。请随意在 spec
目录中查看它们。运行 composer phpspec
触发测试。
在每次提交之前,都会使用 GrumPHP 执行一些检查,运行 ./vendor/bin/grumphp run
以手动检查。
使用 PHPInfection 确保您的代码经过适当的测试,运行 composer infection
测试您的代码。
贡献
请随时通过发送拉取请求来贡献。我们通常是一个反应非常迅速的团队,我们将帮助您从开始到结束处理您的拉取请求。
由于某些原因,如果您不能为代码做出贡献但愿意帮忙,赞助是一个好、合理和安全的方式来对我们投入此包的时间表示感谢。
变更日志
请参阅 CHANGELOG.md 以查看基于 git提交 的变更日志。
有关更详细的变更日志,请参阅 发布变更日志。