A lot of interfaces that existed in 4.2 have been renamed/moved namespace. This is already breaking some of my packages. Some of the damage can be mitigated by keeping the old interfaces but letting them extend the old ones. For example:
<?php namespace Illuminate\Support\Contracts;
interface ArrayableInterface extends \Illuminate\Contracts\Support\ArrayableInterface {}
However, even using this solution, core Laravel code that checks type-hinting against the new (moved) interfaces won't work with old packages (Illuminate\Support\Contracts\ArrayableInterface is an instance of Illuminate\Contracts\Support\ArrayableInterface but not the other way around), so there's likely going to be a slew of packages that work pre-4.3 that will break.
This is especially annoying as you can't conditionally extend one interface or another depending on which version of Laravel the package user has installed.
A lot of interfaces that existed in 4.2 have been renamed/moved namespace. This is already breaking some of my packages. Some of the damage can be mitigated by keeping the old interfaces but letting them extend the old ones. For example:
However, even using this solution, core Laravel code that checks type-hinting against the new (moved) interfaces won't work with old packages (
Illuminate\Support\Contracts\ArrayableInterfaceis an instance ofIlluminate\Contracts\Support\ArrayableInterfacebut not the other way around), so there's likely going to be a slew of packages that work pre-4.3 that will break.This is especially annoying as you can't conditionally extend one interface or another depending on which version of Laravel the package user has installed.