The major differences between Laravel 4 and Laravel 5.x are given below:
- The old app/models directory is entirely removed.
- Controllers, middleware, and requests (a new class in Laravel 5.0) are now combined under the app/Http directory.
- A new app/Providers directory changes the app/start files from previous versions of Laravel of 4.x.
- Application language files and views are moved to the resources directory.
- All major Laravel components include interfaces that are located in the illuminate/contracts repository.
- Laravel 5.x now supports HTTP middleware. The included authentication and CSRF “filters” are converted to middleware.
- One can now type-hint dependencies on controller methods.
- User authentication, registration, and password reset controllers are now combined out of the box, including simple related views which are located at resources/views/auth.
- One can now define events as objects instead of simply using strings.
- Laravel 5 also allows us to represent our queued jobs as simple command objects in addition to the queue job format, which was supported in Laravel 4. These commands are available inside the app/Commands display.