PHPackages                             k3progetti/microsoft-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. k3progetti/microsoft-bundle

ActiveSymfony-bundle[API Development](/categories/api)

k3progetti/microsoft-bundle
===========================

Bundle Symfony per l'integrazione con Microsoft Graph API

v2.0.3(3w ago)044MITPHPPHP &gt;=8.4

Since Mar 27Pushed 3w agoCompare

[ Source](https://github.com/K3Progetti/microsoft-bundle)[ Packagist](https://packagist.org/packages/k3progetti/microsoft-bundle)[ RSS](/packages/k3progetti-microsoft-bundle/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (13)Versions (31)Used By (0)

MicrosoftBundle
===============

[](#microsoftbundle)

Bundle Symfony per l'integrazione con Microsoft Graph API.

Requisiti
---------

[](#requisiti)

- PHP &gt;= 8.2
- Symfony 8.x
- Doctrine ORM 3.x

---

Funzionalità
------------

[](#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
-------------

[](#installazione)

```
composer require k3progetti/microsoft-bundle
```

---

Configurazione
--------------

[](#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
-----------------------------------

[](#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
----------------------

[](#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
---------------

[](#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
---------------------

[](#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
----------

[](#contributi)

Sono aperto a suggerimenti e miglioramenti!

###  Health Score

48

—

FairBetter than 93% of packages

Maintenance94

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 92.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~98 days

Total

30

Last Release

26d ago

Major Versions

v1.1.4 → v2.0.02026-06-08

PHP version history (2 changes)v1.0.1PHP &gt;=8.2

v2.0.0PHP &gt;=8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/79fa54e3be2c0b9470fcb9c4acebe78b15470c37028e91694ce380ccf66f0ada?d=identicon)[mattiavitalik3](/maintainers/mattiavitalik3)

---

Top Contributors

[![thunderBestPower](https://avatars.githubusercontent.com/u/31736015?v=4)](https://github.com/thunderBestPower "thunderBestPower (52 commits)")[![mattiavitalik3](https://avatars.githubusercontent.com/u/141140764?v=4)](https://github.com/mattiavitalik3 "mattiavitalik3 (4 commits)")

### Embed Badge

![Health badge](/badges/k3progetti-microsoft-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/k3progetti-microsoft-bundle/health.svg)](https://phpackages.com/packages/k3progetti-microsoft-bundle)
```

###  Alternatives

[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M737](/packages/sylius-sylius)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M204](/packages/sulu-sulu)[kimai/kimai

Kimai - Time Tracking

4.8k9.0k1](/packages/kimai-kimai)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.1k17.8k](/packages/prestashop-prestashop)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
