Laravel, composer install, don't install laravel/framework upgrade to 5.8

Stefan Bogdanescu

Founder & Senior Architect · 2026-06-29

Laravel Company

Laravel, Composer Install: Navigating Dependency Hell When Upgrading Frameworks

As senior developers, we often encounter frustrating dependency conflicts when trying to upgrade core frameworks like Laravel. The process of upgrading isn't just about changing a single version number; it’s about managing the intricate web of dependencies that underpin your entire application. If you are running into issues with composer install during framework upgrades—especially when dealing with external packages—it almost always points back to the constraints defined in your composer.json.

This post will break down the specific dependency nightmare you are facing, analyze why those version conflicts occur, and provide a robust strategy for resolving them cleanly, ensuring you can smoothly migrate towards newer versions of Laravel.

The Anatomy of the Conflict: Why Composer Fails

You encountered an error because Composer is working exactly as designed: it prioritizes satisfying all specified package constraints simultaneously. When you try to jump directly from an older Laravel version (like 5.5) to a newer one (like 5.8), external packages introduced in the ecosystem, such as yajra/laravel-datatables-oracle, have specific dependency requirements tied to certain versions of underlying components like illuminate/view.

The error message you received clearly illustrates this:

yajra/laravel-datatables-oracle v8.13.7 requires illuminate/view 5.4.*|5.5.*|5.6.*|5.7.* -> satisfiable by laravel/framework[v5.5.48], illuminate/view[5.7.17, 5.7.18, v5.7.19, v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.36, v5.4.9, v5.5.0, v5.5.16, v5.5.17, v5.5.2,v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27,v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9].

This verbose output shows that Composer is juggling an enormous list of potential versions for laravel/framework and illuminate/view. The conflict arises because your constraints force incompatible paths when trying to reconcile the requirements of all installed packages simultaneously.

Strategy: Mastering Dependency Management

The key to successful upgrades, especially in a structured environment like the one Laravel promotes (as seen on laravelcompany.com), is proactive dependency alignment rather than reactive version jumping.

1. Audit Your Constraints

Examine your composer.json. The line "laravel/framework": "5.5.*" is a constraint that locks you into the Laravel 5.5 ecosystem. To upgrade successfully, you need to define the target framework explicitly and then let Composer resolve the rest based on modern compatibility rules.

2. Use Targeted Upgrades (The Safe Path)

Instead of trying to force an arbitrary jump, follow the official upgrade paths recommended by Laravel documentation. For major version upgrades, it is often safer to handle dependencies incrementally or use dedicated migration tools if available.

If you intend to move to Laravel 5.8, ensure all associated packages are compatible with that target. If a package like yajra/laravel-datatables-oracle has not yet released a version compatible with the specific illuminate/view requirement needed for Laravel 5.8