protonlabs/scim-schema

SCIM 架构库

v0.2 2023-10-30 10:35 UTC

This package is auto-updated.

Last update: 2024-08-30 01:38:36 UTC


README

支持 v1 和 v2 的 SCIM 架构 PHP 库。

这个库是基于 https://github.com/tmilos/scim-s 分支开发的,使其与现代 PHP 兼容。

注意: 此库仍在开发中,欢迎您参与帮助和贡献。

它是根据 SimpleCloud 规范和由 PowerDMS/Owin.Scim 生成的示例文档制作的。

不要错过 SCIM 过滤器解析器

Author Build Status Coverage Status Quality Score License Packagist Version

安装

使用 composer 安装 Scim Schema

composer require protonlabs/scim-schema

使用方法

架构

构建默认架构

$schemaBuilder = new SchemaBuilderV2(); // or SchemaBuilderV1

$groupSchema = $schemaBuilder->getGroup();
$userSchema  = $schemaBuilder->getUser();
$enterpriseUserSchema = $schemaBuilder->getEnterpriseUser();
$schemaSchema = $schemaBuilder->getSchema();
$serviceProviderConfigSchema = $schemaBuilder->getServiceProviderConfig();
$resourceTypeSchema = $schemaBuilder->getResourceType();

或者构建自定义架构

$schema = new Schema();

$schema->setName('CustomSchema');

$schema->addAttribute(
    AttributeBuilder::create('name', ScimConstants::ATTRIBUTE_TYPE_STRING, 'Name of the object')
        ->setMutability(false)
        ->getAttribute()
);

并将 SCIM 架构对象序列化

$schema = (new SchemaBuilderV2())->getUser();

$schema->serializeObject();

架构验证

一个对象可以与架构进行验证

/** @var array $object */
$object = getTheObjectAsArray();

$validator = new SchemaValidator();
$objectSchema = getTheSchema();
$schemaExtensions = getSchemaExtensions();

$validationResult = $validator->validate(
    $object,
    $objectSchema,
    $schemaExtensions
);

if (!$validationResult->getErrors()) {
    // cool!
} else {
    print implode("\n", $validationResult->getErrorsAsStrings());
}