luan1schons/scim-schema

dev-main 2022-06-20 12:24 UTC

This package is auto-updated.

Last update: 2024-09-20 17:27:31 UTC


README

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

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

它由 SimpleCloud 规范 SimpleCloud 和由 PowerDMS/Owin.Scim 生成的示例文档 PowerDMS/Owin.Scim 制成

不要错过 SCIM 过滤解析器 !

Author Build Status Coverage Status Quality Score License Packagist Version

架构

构建默认架构

<?php
$schemaBuilder = new SchemaBuilderV2(); // or SchemaBuilderV1

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

或者构建您自己的自定义架构

<?php
$schema = new Schema();
$schema->setName('CustomSchema);
$schema->addAttribute(
    AttributeBuilder::create('name', ScimConstants::ATTRIBUTE_TYPE_STRING, 'Name of the object')
        ->setMutability(false)
        ->getAttribute()
);

并序列化 SCIM 架构对象

<?php
$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());
}