loophp/phposinfo

尝试猜测主机操作系统。

资助包维护!
drupol

1.8.0 2022-12-20 20:21 UTC

README

Latest Stable Version GitHub stars Total Downloads GitHub Workflow Status Scrutinizer code quality Type Coverage Code Coverage License Donate!

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 测试您的代码。

贡献

请随时通过发送拉取请求来贡献。我们通常是一个反应非常迅速的团队,我们将帮助您从开始到结束处理您的拉取请求。

由于某些原因,如果您不能为代码做出贡献但愿意帮忙,赞助是一个好、合理和安全的方式来对我们投入此包的时间表示感谢。

Github 上赞助我,或赞助 任何贡献者

变更日志

请参阅 CHANGELOG.md 以查看基于 git提交 的变更日志。

有关更详细的变更日志,请参阅 发布变更日志