fruivita/corporativo

以 XML 格式导入企业结构的导入器,用于 Laravel 应用

v3.0.0 2023-01-10 20:19 UTC

README

Latest Version on Packagist GitHub Release Date GitHub last commit (branch) GitHub Tests Action Status Test Coverage Maintainability GitHub Code Style Action Status GitHub issues GitHub repo size Packagist Total Downloads GitHub

导入 企业结构,格式为 XML,适用于 Laravel 应用。

本包根据巴西联邦圣埃斯皮里图斯州司法部的需求设计。然而,它可以在其他机构和项目中使用,前提是遵守许可协议

use FruiVita\Corporativo\Facades\Corporativo;

Corporativo::importar($arquivo);

 

目录

  1. 备注

  2. 先决条件

  3. 安装

  4. 工作原理

  5. 事件

  6. 测试和持续集成

  7. 变更日志

  8. 贡献

  9. 行为准则

  10. 安全漏洞

  11. 支持和更新

  12. 路线图

  13. 鸣谢

  14. 感谢

  15. 许可协议

备注

企业结构 是指关于人员、职位、信任职能和岗位的最基本信息汇总。

⬆️ 返回

 

先决条件

  1. PHP 依赖

    PHP ^8.0

    扩展

    composer check-platform-reqs
  2. GitHub 包依赖

⬆️ 返回

 

安装

  1. 通过 composer 安装

    composer require fruivita/corporativo
  2. 发布必要的迁移

    php artisan vendor:publish --provider='FruiVita\Corporativo\CorporativoServiceProvider' --tag='migrations'
  3. 可选:发布配置

    php artisan vendor:publish --provider='FruiVita\Corporativo\CorporativoServiceProvider' --tag='config'
  4. 可选:发布翻译

    php artisan vendor:publish --provider='FruiVita\Corporativo\CorporativoServiceProvider' --tag='lang'

    以下字符串可用于翻译。根据需要更改它们。

    {
        "O arquivo informado não pôde ser lido": "O arquivo informado não pôde ser lido",
        "O arquivo precisa ser no formato [:attribute]": "O arquivo precisa ser no formato [:attribute]",
        "Validação falhou": "Validação falhou"
    }

⬆️ 返回

 

工作原理

企业结构文件应以 XML 格式提供,结构如下

<?xml version='1.0' encoding='UTF-8'?>
<base>
    <cargos>
        <!-- Cargos:
            id: integer, obrigatório e maior que 1
            nome: string, obrigatório e tamanho entre 1 e 255
            -->
        <cargo id="1" nome="Cargo 1"/>
        <cargo id="2" nome="Cargo 2"/>
    </cargos>
    <funcoes>
        <!-- Funções de confiança:
            id: integer, obrigatório e maior que 1
            nome: string, obrigatório e tamanho entre 1 e 255
            -->
        <funcao id="1" nome="Função 1"/>
        <funcao id="2" nome="Função 2"/>
    </funcoes>
    <lotacoes>
        <!-- Lotações:
            id: integer, obrigatório e maior que 1
            nome: string, obrigatório e tamanho entre 1 e 255
            sigla: string, obrigatório e tamanho entre 1 e 50
            idPai: integer, opcional, id de uma lotação existente
            -->
        <lotacao id="1" nome="Lotação 1" sigla="Sigla 1"/>
        <lotacao id="2" nome="Lotação 2" sigla="Sigla 2" idPai=""/>
        <lotacao id="3" nome="Lotação 3" sigla="Sigla 3" idPai="1"/>
    </lotacoes>
    <pessoas>
        <!-- Pessoas:
            nome: string, obrigatório e tamanho entre 1 e 255
            matrícula: string, obrigatório e tamanho máximo de 20
            email: string e opcional
            cargo: integer, obrigatório, id de um dos cargos informados
            lotacao: integer, obrigatório, id de uma das lotações informadas
            funcaoConfianca: integer, opcional, id de uma das funções de confiança informadas
            -->
        <pessoa nome="Pessoa 1" matricula="11111" email="foo@bar.com" cargo="1" lotacao="2" funcaoConfianca=""/>
        <pessoa nome="Pessoa 2" matricula="22222" email="bar@baz.com" cargo="1" lotacao="2" funcaoConfianca="2"/>
    </pessoas>
</base>

注意:人员没有 ID(将根据登记号分析其唯一性)。这样可以允许其他用户/人员直接在应用中注册。

 

本包公开以下方法以执行导入

 

✏️ importar

use FruiVita\Corporativo\Facades\Corporativo;

/**
 * @param string $arquivo full path do arquivo XML
 * 
 * @throws \FruiVita\Corporativo\Exceptions\FileNotReadableException
 * @throws \FruiVita\Corporativo\Exceptions\UnsupportedFileTypeException
 *
 * @return void
 */
Corporativo::importar($arquivo);

 

🚨 异常

  • importar 如果没有文件读取权限或找不到文件,则抛出 \FruiVita\Corporativo\Exceptions\FileNotReadableException
  • importar 如果文件不是 XML 文件,则抛出 \FruiVita\Corporativo\Exceptions\UnsupportedFileTypeException

⬆️ 返回

 

事件

导入过程中触发的事件

  • \FruiVita\Corporativo\Events\ImportacaoIniciada
  • \FruiVita\Corporativo\Events\ImportacaoConcluida
  • \FruiVita\Corporativo\Events\CargoUsuarioAlterado
  • \FruiVita\Corporativo\Events\FuncaoConfiancaUsuarioAlterada
  • \FruiVita\Corporativo\Events\LotacaoUsuarioAlterada

⬆️ 返回

 

测试和持续集成

composer analyse
composer test
composer coverage

⬆️ 返回

 

变更日志

请参阅 CHANGELOG 获取每个版本更改的详细信息。

⬆️ 返回

 

贡献

请参阅 CONTRIBUTING 了解如何贡献的详细信息。

⬆️ 返回

 

行为准则

为确保所有人都能欢迎为这个开源项目做出贡献,请阅读并遵循 行为准则

⬆️ 返回

 

安全漏洞

请参阅 安全策略 了解如何报告漏洞或安全漏洞。

⬆️ 返回

 

支持和更新

最新版本将始终获得支持和更新。其他版本将在替换新版本后的 6 个月内收到更新,然后停止支持。

🐛 发现了一个错误?!请打开 问题

⬆️ 返回

 

路线图

✨ 有什么新想法吗?!?!请启动一个 讨论

以下列表包含已识别和批准的改进需求,将在第一个机会窗口中实施。

  • n/a

⬆️ 返回

 

鸣谢

⬆️ 返回

 

感谢

👋 感谢以下人员和组织在构建被用于本包的开放源代码项目中投入时间。

💸 一些这些人员或组织提供了一些可以购买的产品/服务。如果您能通过购买其中之一或成为赞助者来帮助他们,即使只是短期内,也将有助于整个开源社区继续为所有人开发解决方案。

⬆️ 返回

 

许可协议

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件

⬆️ 返回