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

Sso Oidc Laravel Package

async-aws/sso-oidc

A lightweight async PHP client for the AWS SSO OIDC API from AsyncAws. Register clients and create access tokens for IAM Identity Center with a fast, dependency-free implementation that slots neatly into Laravel and other PHP frameworks.

View on GitHub
Deep Wiki
Context7

Getting Started

The 1.4.0 release notes are a pointer, not a summary: See [change log](CHANGELOG.md) for changes. Treat that as the first step of the upgrade, not the whole story. A minor bump under semver implies backwards-compatible additions, but that is an assumption to verify, not a guarantee — confirm against the CHANGELOG.md entry and, if it is thin, diff the tags directly.

Minimal path to a first working integration:

  1. Check constraints before installing. Read composer.json for the php and illuminate/* requirements and compare against your app's version. A 1.4.x line dropping an older Laravel minor is the most common reason an otherwise "safe" minor bump breaks CI.
  2. Install on a branch, not on main. composer require vendor/package:^1.4 then run the full suite plus any smoke tests before touching application code.
  3. Confirm auto-discovery. Most Laravel packages register a service provider via extra.laravel.providers. Check bootstrap/providers.php (Laravel 11+) or config/app.php for a manually registered provider — a duplicate registration is a classic post-upgrade failure.
  4. Publish only what you need. php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" and pick specific tags (config, migrations, views) rather than publishing everything. Published files are now yours to maintain.
  5. Run migrations if the changelog mentions schema changes. php artisan migrate --pretend first; never let a package migration surprise you in production.

Where to look first: the package's README examples, its tests/ directory (the most honest documentation of intended usage), and the CHANGELOG.md entry for 1.4.0 specifically. If the changelog entry is uninformative, git diff 1.3.0..1.4.0 -- src/ on a local clone answers the question faster than guessing.

First use case: wire the package into a single, low-risk entry point — one artisan command, one queued job, or one controller action behind a feature flag — rather than adopting it across the codebase. That gives you a real integration surface to validate behaviour against your Laravel version, queue driver, and cache store before committing.

Implementation Patterns

Resolve from the container, don't new it up. Bind the package's client/manager into your own service provider and depend on an interface where the package offers one:

// AppServiceProvider::register()
$this->app->bind(MyFeature::class, fn ($app) => new MyFeature(
    $app->make(Vendor\Package\Client::class),
    config('services.package.key'),
));

This is the single highest-leverage move for day-to-day work: it makes the dependency swappable in tests and insulates your code from the package's concrete class names shifting in a future major.

Prefer constructor injection over the facade in application code. Facades are fine in controllers and Blade, but in jobs and domain services constructor injection keeps the dependency visible and mockable. If the package ships a fake (Package::fake() or similar), use it in feature tests alongside RefreshDatabase so you are not asserting against live HTTP or a real external service.

Drive behaviour from config, not from code edits. Anything the package exposes in its published config should be set via config/*.php reading env(), so staging and production can diverge without a deploy diff. Remember php artisan config:cache after changes — and that once cached, env() calls inside package configs return null.

Isolate queue and event side effects. If the package dispatches jobs or model events, register a listener that logs or metrics the first invocation in staging. Package-driven jobs are the usual source of "it worked locally, the queue worker on prod was on old code" incidents; restart workers (php artisan queue:restart) as part of the deploy that bumps the package.

Treat the upgrade as a one-line composer change plus a verification pass. A workable loop for a 1.x bump:

git switch -c chore/package-1.4
composer update vendor/package --with-dependencies
php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" --tag=config --force
git diff config/
php artisan test

Diffing the republished config is the fastest way to spot new keys, changed defaults, and renamed options that the changelog glossed over.

Pin the constraint to the behaviour you tested. ^1.4 is reasonable once the integration is validated; leaving a * or dev-main constraint in a production app defeats the purpose of the release cadence.

Gotchas and Tips

A changelog-only release note is a signal to read the diff. When the notes say nothing beyond "see changelog," three things are worth checking explicitly: new required config keys (silent null behaviour), changed default values (same code, different results), and anything under a "Deprecated" heading (your upgrade path to 2.0). Skim the source diff for trigger_error(..., E_USER_DEPRECATED) and @deprecated annotations.

Config caching is the number-one debugging trap. If behaviour changes after deploy but not locally, run php artisan config:clear && php artisan cache:clear and re-test. New config keys added in a minor release will not exist in a stale cached config, and the package will silently fall back to hardcoded defaults.

Never --force publish over a modified config in production. Published config files are application code. Diff first, merge by hand. The same applies to published migrations — a package migration that has already run will not re-run just because you republished it.

Duplicate service providers bite quietly. If you registered the provider manually in an older Laravel version and the package now declares auto-discovery, you get double registration: doubled listeners, doubled middleware, occasionally doubled queued jobs. Search your provider list for the class name on every minor bump.

Watch for composer why before blaming the package. Many "package breakages" are a transitive dependency resolving differently. composer why vendor/package and composer outdated --direct narrow it down in seconds.

Extension points to prefer, in order: container bindings and interfaces → published config → package events/listeners → macros (if offered) → subclassing. Subclassing a package class is the most fragile option and should be a last resort, since internal constructors change without notice between minors.

Log the resolved version at boot in non-production. A one-line Log::debug('package: '.Composer\InstalledVersions::getPrettyVersion('vendor/package')) in a service provider ends a surprising number of "is the deploy actually live?" conversations.

Debugging technique when the source is opaque: bind a decorator around the package's main class that logs inputs and outputs around each call, rather than adding dd() inside vendor/. It survives composer install, and you can leave it in staging permanently.

Verify the release actually contains what the notes imply. Before adopting a 1.4.0 feature in code, confirm the tag exists on Packagist and that composer show vendor/package reports 1.4.0 — a changelog entry can land before the tag, or a tag can be re-pushed. If the changelog references issues or PRs, read those threads for known regressions reported after the tag.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels