k3progetti/microsoft-bundle
Composer 安装命令:
composer require k3progetti/microsoft-bundle
包简介
Bundle Symfony per l'integrazione con Microsoft Graph API
README 文档
README
Bundle Symfony per l'integrazione con Microsoft Graph API.
Requisiti
- PHP >= 8.2
- Symfony 8.x
- Doctrine ORM 3.x
Funzionalità
- Recupero utenti da Microsoft 365
- Filtraggio utenti disabilitati
- Recupero e cancellazione email tramite Graph API
- Gestione gruppi e appartenenze
- Login tramite token Microsoft
- Servizio centralizzato per interagire con Graph API
Installazione
composer require k3progetti/microsoft-bundle
Configurazione
Aggiungi il bundle al config/bundles.php se non è registrato automaticamente:
return [ // ... K3Progetti\MicrosoftBundle\MicrosoftBundle::class => ['all' => true], ];
Aggiungi la configurazione in config/packages/microsoft.yaml:
microsoft: user_class: App\Entity\User # obbligatorio: la tua entità User client_id: '%env(MICROSOFT_CLIENT_ID)%' tenant_id: '%env(MICROSOFT_TENANT_ID)%' client_secret: '%env(MICROSOFT_CLIENT_SECRET)%' graph_api_url: 'https://graph.microsoft.com/v1.0' # opzionale, questo è il valore di default auth: allowed_groups: [] # opzionale, lista di group ID permessi
Aggiungi le variabili d'ambiente nel tuo .env:
MICROSOFT_CLIENT_ID=your-client-id MICROSOFT_TENANT_ID=your-tenant-id MICROSOFT_CLIENT_SECRET=your-client-secret
Integrazione con la tua entità User
La tua entità User deve implementare K3Progetti\MicrosoftBundle\Contract\UserInterface:
use K3Progetti\MicrosoftBundle\Contract\UserInterface as MicrosoftUserInterface; class User implements MicrosoftUserInterface { public function getId(): mixed { ... } public function setUsername(string $username): static { ... } public function setEmail(string $email): static { ... } public function setActive(bool $active): static { ... } public function setPassword(string $password): static { ... } public function setSurname(?string $surname): static { ... } public function setName(?string $name): static { ... } public function setPhone(?string $phone): static { ... } public function setRoles(array $roles): static { ... } }
Il bundle usa resolve_target_entities di Doctrine per collegare l'interfaccia alla tua classe concreta in modo automatico, senza dipendenze hardcoded su App\*.
Struttura del Progetto
MicrosoftBundle/
├── src/
│ ├── MicrosoftBundle.php
│ ├── Command/
│ │ ├── GetAllUsersCommand.php
│ │ ├── GetAllDisabledUsersCommand.php
│ │ └── GetAllGroupsCommand.php
│ ├── Controller/
│ │ └── AuthController.php
│ ├── DependencyInjection/
│ │ ├── MicrosoftConfiguration.php
│ │ └── MicrosoftExtension.php
│ ├── Entity/
│ │ ├── MicrosoftUser.php
│ │ ├── MicrosoftGroup.php
│ │ └── MicrosoftGroupUser.php
│ ├── Repository/
│ │ ├── MicrosoftUserRepository.php
│ │ ├── MicrosoftGroupRepository.php
│ │ └── MicrosoftGroupUserRepository.php
│ └── Service/
│ └── MicrosoftService.php
Comandi Console
php bin/console microsoft:get-all-users php bin/console microsoft:get-all-disabled-users php bin/console microsoft:get-all-groups
Utilizzo del Servizio
use K3Progetti\MicrosoftBundle\Service\MicrosoftService; class MyService { public function __construct(private MicrosoftService $microsoftService) {} public function example(): void { // Recupera tutti gli utenti $users = $this->microsoftService->getAllUsers(); // Recupera i membri di un gruppo $members = $this->microsoftService->getUsersByGroupId('group-id'); // Recupera tutti i gruppi di sicurezza $groups = $this->microsoftService->getAllGroups(security: true); // Recupera le email di un utente $messages = $this->microsoftService->getMessages('user@example.com'); // Credenziali dinamiche (override della configurazione globale) $this->microsoftService ->withCredentials($clientId, $tenantId, $clientSecret) ->getAllUsers(); } }
Contributi
Sono aperto a suggerimenti e miglioramenti!
k3progetti/microsoft-bundle 适用场景与选型建议
k3progetti/microsoft-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 45 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 03 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 k3progetti/microsoft-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 k3progetti/microsoft-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 45
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 32
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-27