Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Microsoftgraphbundle Laravel Package

mbdax/microsoftgraphbundle

Symfony bundle for integrating the Microsoft Graph API into your PHP application. It provides preconfigured services and DI setup so you can query Microsoft 365 users, mail, calendars, files and Teams through a single, OAuth-authenticated client with framework-native configuration.

View on GitHub
Deep Wiki
Context7

Getting Started

v0.1.0 is the initial public release, so treat it as pre-1.0: pin the exact version and read the source before relying on it. The release notes are empty, which means there is no documented changelog, upgrade path, or stability guarantee yet — verify behavior directly against src/ and the test suite.

Minimal steps:

composer require vendor/package:0.1.0
php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider"
php artisan migrate   # only if the package ships migrations

Where to look first:

  1. composer.json — check extra.laravel.providers / aliases (auto-discovery), the Laravel version constraint, and whether the package is 0.1.x only.
  2. README.md and any docs/ — installation and the single "hello world" example.
  3. src/*ServiceProvider.php — what is bound, published, loaded, and registered.
  4. config/*.php — every knob and its default.
  5. tests/ — the most reliable description of intended behavior for a 0.x package.

First use case: install it, publish config, run migrations if present, then resolve the main class from the container in php artisan tinker (or a throwaway route/command) to confirm wiring before integrating it anywhere real:

app(\Vendor\Package\TheMainClass::class);

If that resolves and a trivial call succeeds, the package is wired correctly and you can move on to real integration.

Implementation Patterns

Config-first setup. Publish the config file, commit it, and drive the package from config rather than hard-coding values. For a 0.x package this also gives you a single place to adapt when defaults change.

Wrap it behind your own adapter. Because the public API is not stable at 0.1.0, inject the package's class into a small application-level service or interface rather than calling it from controllers, jobs, and Blade views. When 0.2.0 renames something, you change one file.

final class Thumbnailer
{
    public function __construct(private \Vendor\Package\Client $client) {}

    public function make(string $path): string
    {
        return $this->client->process($path);
    }
}

Constructor injection over facades/helpers. Resolve the package's contracts through the container so tests can swap them. Bind the package interface to its implementation in a dedicated AppServiceProvider or module provider if you need to decorate it.

Feature-test the integration, not the package. Use RefreshDatabase and assert on your adapter's output. Add one smoke test that boots the provider so a future release that breaks auto-discovery fails CI loudly.

Common workflows to expect: an Artisan command for setup/sync, publishable config and migrations, and optionally events or jobs. Register any package events in your EventServiceProvider and make queued work idempotent — 0.x packages frequently change job payloads.

Integration tips:

  • Keep the package provider out of route/model discovery unless documented; register listeners explicitly.
  • If the package exposes macros or Blade directives, register them in a service provider so they survive config caching.
  • Run php artisan config:cache in staging early; it surfaces config-file assumptions that fail only in production.

Gotchas and Tips

  • 0.x semver is not stable. ^0.1 allows 0.1.x patches only, but many authors treat minor bumps as breaking. Prefer "vendor/package": "0.1.*" and commit composer.lock. Do not use ^0.1 and assume safety.
  • Empty release notes. With no changelog, diff vendor/ between installs or pin hard. Watch the repo's commits and issues for the real behavior changes.
  • Config caching. After publishing or editing config, run php artisan config:clear; a stale cached config is the most common "the package ignores my settings" bug.
  • Auto-discovery. If extra.laravel is present, the provider registers automatically. If you disabled discovery or are on an older skeleton, add the provider manually and run php artisan package:discover -v.
  • Migrations. Distinguish publishable migrations (vendor:publish --tag=...) from loadMigrationsFrom(). Never edit files in vendor/; copy and adjust published migrations instead.
  • Version constraints. Check the package's require block against your Laravel/PHP version before upgrading. A missing upper bound on illuminate/* can let Composer install an incompatible combination.
  • Debugging. Use php artisan about, php artisan package:discover -v, and app()->bound(\Vendor\Package\Client::class) to confirm registration. For resolution errors, check the provider's register() vs boot() split — bindings must be in register().
  • Extension points. Look for container bindings, config keys, events, and macros before forking. If none exist, decorate the package class in your own container binding rather than editing vendor code.
  • No upgrade guide yet. Before any version bump, read the diff of src/ and run your smoke test. Assume breaking changes until 1.0.0.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource