jeroennoten/laravel-news
Laravel News integration for Laravel apps: fetch and display recent Laravel News articles in your own pages, dashboards, or widgets. Simple configuration and caching make it easy to add a lightweight news feed to your project.
v1.3.0 is the release that adds Laravel 5.3 support, so this is the first version to target if your application is on 5.3. Start by confirming compatibility before anything else:
composer require vendor/package:^1.3
Check the package's composer.json for its illuminate/* constraints — that, not the changelog, is the authoritative statement of what "5.3 support" means in practice (5.3.x only, or ^5.3 spanning later releases too).
Where to look first, in order:
git diff 1.2.0..1.3.0) to see whether "support" meant constraint loosening only or actual code changes for 5.3 APIs.First use case: register the provider and facade manually (see Gotchas — 5.3 has no auto-discovery), publish the config, and resolve the package once from the container in php artisan tinker to confirm it constructs cleanly against 5.3's container.
If you are still on 5.2, stay on the 1.2.x line; there is no reason to take a framework-compatibility bump you cannot exercise.
Manual registration. In config/app.php, add the service provider to providers and, if the package ships one, the facade to aliases. Publish config and any migrations/views in one pass:
php artisan vendor:publish --provider="Vendor\\Package\\PackageServiceProvider"
php artisan migrate
Prefer constructor injection over the facade. Resolve the package's contract or concrete class in your controller/job constructor so tests can substitute it. Facades are convenient in Blade and quick scripts, but they couple you to a global container state that is easy to lose in queued jobs and Artisan commands.
Configure per environment. Set package keys in config/package.php with env() defaults, then override narrowly in AppServiceProvider::boot() only where you need runtime values (tenant IDs, per-user limits). Keeping runtime overrides in one place makes it obvious what differs from the published defaults.
Test by swapping the binding. Where the package talks to an external service, rebind in setUp():
$this->app->instance(PackageContract::class, new FakeClient());
Use DatabaseTransactions for anything touching a published migration so tests stay fast on 5.3's default tooling.
Version-guard shared code. If one codebase spans 5.3 and later, guard divergent calls with version_compare(app()->version(), '5.4.0', '<') rather than duplicating the integration.
Target class [...] does not exist or a facade that resolves to nothing. The provider must be in config/app.php's providers array. The README may show a 5.5-style install for later versions — check the version-specific docs, not the top of the page.composer why-not is your first tool on constraint conflicts. If another dependency pins illuminate/support to ^5.4, Composer will silently keep you on 1.2.x and you will debug the wrong thing.php artisan clear-compiled && composer dump-autoload. Stale bootstrap/cache/services.json-era artifacts and cached configs cause "I added the provider and nothing changed."env() calls outside config files. After php artisan config:cache, any env() inside a service provider returns null. Move those reads into config/.vendor:publish --force overwrites your edits. Diff published config before re-publishing on upgrade; treat the published file as yours, not the package's.web group. Missing session data is usually this.app(PackageContract::class) in tinker, then dump() the binding in the provider's register() to confirm ordering relative to your own providers.config([...]) set before first resolution for behavioural tweaks. Forking should be the last resort, and if you do, pin the fork explicitly.^1.3 accepts future 1.x releases whose Laravel constraints may drift; the lock file is what actually protects you.How can I help you explore Laravel packages today?