ohkannaduh/osquery-php

此软件包最新版本(1.0.0)没有可用的许可证信息。

1.0.0 2019-10-03 17:54 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:08 UTC


README

这个库作为osquery和php之间的桥梁。

安装

可以通过composer安装此库。

composer require ohkannaduh/osquery-php

入门

开始使用此库的最简单方法是使用容器\OhKannaDuh\OsQuery\Container

容器

use OhKannaDuh\OsQuery\Container;
...
$container = Container::create();

容器上的静态create方法会自动注册OhKannaDuh\OsQuery\Factories命名空间中的所有工厂,如果你需要特定的东西,你可以使用new关键字实例化类以获得未注册工厂的实例。

$container = new Container();

注册工厂

一旦你有了你的容器,你可以使用register方法注册额外的容器。此方法接受一个OhKannaDuh\OsQuery\FactoryInterface的实例。

/** @var FactoryInterface $factory */
$container->register($factory);

这将映射工厂模型到容器内的工厂。

获取工厂

你可以使用getFactory方法检索注册的工厂,它接受一个模型的字符串。

use OhKannaDuh\OsQuery\Models\User;
...
$users = $container->getFactory(User::class);

工厂

工厂是这个库的主要部分之一,它们用于与OsQuery交互并获取我们需要的模型。

工厂API

all

all方法获取给定模型的全部实例。

/** @var \OhKannaDuh\OsQuery\Factories\UserFactory $users */
foreach ($users->all() as $user) {
    echo $user->getUsername() . PHP_EOL;
}

你也可以使用all方法上的可选$columns参数限制我们收集的数据。

/** @var \OhKannaDuh\OsQuery\Factories\UserFactory $users */
foreach ($users->all(["username", "uid"]) as $user) {
    $user->hasAttribute("username"); // true
    $user->hasAttribute("uid"); // true
    $user->hasAttribute("gid"); // false
}

where

where方法允许我们为OsQuery指定参数。

/** @var \OhKannaDuh\OsQuery\Factories\UserFactory $users */
$result = $users->where([
    "username" => "root", // All users with the username root
]);

foreach ($results as $user) {
    echo $user->getUsername() . PHP_EOL;
}
/** @var \OhKannaDuh\OsQuery\Factories\UserFactory $users */
$result = $users->where([
    "gid" => "985", // All users in group 985
]);

foreach ($results as $user) {
    echo $user->getUsername() . PHP_EOL;
}