protonlabs / scim-schema
SCIM 架构库
v0.2
2023-10-30 10:35 UTC
Requires
- php: >=7.4
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.0|^10.0
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 过滤器解析器!
安装
使用 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()); }