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

Nova Translations Loader Laravel Package

bmellink/nova-translations-loader

bmellink/nova-translations-loader loads and exposes your Laravel translation files inside Nova, making localization strings available to Nova components and frontend tooling without manual imports. A small helper for keeping multilingual Nova apps organized.

View on GitHub
Deep Wiki
Context7

Getting Started

The v1.0 release only widens the PHP constraint to 7.x, so the first job is confirming that the constraint actually landed where you expect it and that nothing else moved with it.

  1. Inspect the constraint before installing. Run composer show <vendor>/<package> --all and read the require.php line, or check the released tag's composer.json directly. "Allow php 7.x" is ambiguous — it may mean >=7.0, ^7.0, or >=5.6 <8.0. Your deployment target and your CI matrix depend on which one it is.
  2. Match it to your Laravel version. PHP 7 support generally implies Laravel 5.5–6.x territory. Cross-check the package's illuminate/* constraints against your framework version; a package that supports PHP 7 but pins illuminate/support: 5.4.* is not usable in a modern app.
  3. Install and smoke-test. composer require <vendor>/<package>:^1.0, then exercise the happy path in php artisan tinker (or a single feature test) before wiring it into anything real. A version bump with no feature notes is the classic case where a transitive dependency shifted underneath you.
  4. Look here first, in order: CHANGELOG.md (confirm nothing is hiding behind the one-line note), README.md for the documented entry point, composer.json for constraints, then src/ for the public surface — service provider, facade, config file, and any Contracts/ directory.

First use case: a single end-to-end call through the package's public API in a test, asserting the result and that no deprecation notices are emitted. That one test tells you more about a compatibility release than the release notes do.

Implementation Patterns

Pin the constraint explicitly. Don't inherit * or a floating branch. Set "<vendor>/<package>": "^1.0" in composer.json and commit the lock file. For a release whose only stated change is a platform constraint, the lock file is your audit trail.

Register the provider once, in the right place. If the package supports Laravel package auto-discovery (extra.laravel.providers in its composer.json), do nothing. If it predates that convention — plausible given the PHP 5-era lineage implied by this release — add it to config/app.php manually. Watch for a provider registered in both places after an upgrade; that yields double-registered singletons and confusing duplicate side effects.

Prefer constructor injection over the facade. A compatibility-only release is exactly when you want your tests to be able to swap the implementation. Type-hint the package's contract or concrete class in the constructor, bind it in a service provider if needed, and resolve from the container. Facades are fine for tinker and one-off console commands; they make the migration to the next major release harder to reason about.

Isolate behind a thin adapter. If the package's purpose is non-trivial (payments, search, media handling, third-party API), wrap it in one small application-level class with 3–5 methods. Every call site then depends on your class, not theirs. When v2.0 lands with a renamed method or a changed return type, you edit one file.

Publish config only when you need to change it. php artisan vendor:publish --provider="Vendor\Package\ServiceProvider" --tag=config writes a snapshot into config/. Published config stops receiving upstream defaults — a real hazard across a version bump that may have added a key you now silently lack. Read the package's bundled config in vendor/ first, publish only if overriding, and diff your published copy against the new bundled default after upgrading.

Exercise it in CI on the PHP versions you actually deploy. Add 7.2, 7.3, and 7.4 to the matrix (7.0/7.1 are EOL — test them only if you're forced to run them). Include one job on the lowest supported PHP so the floor is real, not theoretical.

For anything queue- or schedule-driven, verify the package's jobs and commands survive serialisation: dispatch a job, Queue::fake() and assert, then run a real queue worker locally once. Compatibility releases sometimes break serialisation of internal value objects without a functional test noticing.

Gotchas and Tips

  • The release note is the whole risk. A one-line "allow php 7.x" note can mask code changes — reserved-word renames, each() removal, mcrypt fallbacks — that were required to make PHP 7 work. Read the diff between the previous tag and v1.0, or at minimum the src/ file list. git diff <prev-tag>..v1.0 --stat is thirty seconds well spent.
  • PHP 7 reserves words you may already be using. String, Object, Int, Float, Bool, Null, Resource, Iterable, Void. Class, interface, and trait names using these fail to parse on 7.x. Grep your own code for them too — the package might be fine while your app isn't.
  • mcrypt is gone. If the package does encryption, confirm it moved to openssl. Silent fallback to an unauthenticated cipher is a security issue, not a compatibility issue.
  • Error handling changed. Throwable now catches both Exception and Error. If the package catches \Exception around code that can throw a TypeError on PHP 7, those errors escape. Wrap your own calls accordingly.
  • Deprecation noise is signal. Turn on E_ALL in a local test run. Deprecations from 7.2+ (create_function, each(), unquoted array keys) tell you v1.0 was a constraint edit rather than a genuine port — useful when planning your next upgrade.
  • composer platform vs. reality. If your dev machine runs 8.x and production runs 7.4, set config.platform.php to 7.4 in composer.json. Otherwise Composer resolves against the wrong runtime and installs dependencies that won't load on the server.
  • Clear caches after any provider or config change: php artisan config:clear && php artisan cache:clear && composer dump-autoload -o. Most "the upgrade broke everything" reports resolve here.
  • Extension point to verify: if the package ships a manager pattern (Manager + createXDriver) or a container binding for the driver/implementation, that's your cleanest seam for swapping behaviour without forking. Confirm the binding name hasn't changed in v1.0 before you lean on it.
  • Budget for the next bump. A release that only widens a platform constraint is a maintenance signal, not a feature signal. If the package has no PHP 8 support and no recent activity, treat this as a stopgap and identify the exit path (adapter interface, alternative package) now rather than at the deadline.
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.
htinlynn/genius-helper
maco-studios/hephaestus
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