{"action":"created","issue":{"url":"https://api.github.com/repos/laravel/framework/issues/11611","labels_url":"https://api.github.com/repos/laravel/framework/issues/11611/labels{/name}","comments_url":"https://api.github.com/repos/laravel/framework/issues/11611/comments","events_url":"https://api.github.com/repos/laravel/framework/issues/11611/events","html_url":"https://github.com/laravel/framework/issues/11611","id":124270903,"number":11611,"title":"Introducing more Interfaces/Contracts","user":{"login":"stefanbauer","id":3192662,"avatar_url":"https://avatars.githubusercontent.com/u/3192662?v=3","gravatar_id":"","url":"https://api.github.com/users/stefanbauer","html_url":"https://github.com/stefanbauer","followers_url":"https://api.github.com/users/stefanbauer/followers","following_url":"https://api.github.com/users/stefanbauer/following{/other_user}","gists_url":"https://api.github.com/users/stefanbauer/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanbauer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanbauer/subscriptions","organizations_url":"https://api.github.com/users/stefanbauer/orgs","repos_url":"https://api.github.com/users/stefanbauer/repos","events_url":"https://api.github.com/users/stefanbauer/events{/privacy}","received_events_url":"https://api.github.com/users/stefanbauer/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-12-29T21:30:37Z","updated_at":"2015-12-29T21:55:24Z","closed_at":"2015-12-29T21:37:59Z","body":"Here is the short version: Is there any reason why Laravel provides not much Interfaces? If no, is it an idea to provide much more? For instance for the EventSubscriber. I would like to see much more interfaces, because it makes it much easier \r\n\r\na) to code against these interfaces\r\nb) to know what to implement\r\nc) to read. For me it is enough to read the interfaces, to understand what happens\r\n\r\nIf there is any interest, let me know. I could do also some work on it. I wanted just discuss this stuff before doing anything which is not wanted.\r\n\r\nLong version/discussion can be found here https://laracasts.com/discuss/channels/laravel/missing-a-lot-of-interfacescontracts\r\n\r\nSmaller hint/question: Is there any special reason why the interfaces are in contracts directory and are \"named\" like implementations? I find it hard to read during development. For DI i think it is more readable if there is a xxxInterface to see immediately an interface is expected and not the implementation."},"comment":{"url":"https://api.github.com/repos/laravel/framework/issues/comments/167886144","html_url":"https://github.com/laravel/framework/issues/11611#issuecomment-167886144","issue_url":"https://api.github.com/repos/laravel/framework/issues/11611","id":167886144,"user":{"login":"GrahamCampbell","id":2829600,"avatar_url":"https://avatars.githubusercontent.com/u/2829600?v=3","gravatar_id":"","url":"https://api.github.com/users/GrahamCampbell","html_url":"https://github.com/GrahamCampbell","followers_url":"https://api.github.com/users/GrahamCampbell/followers","following_url":"https://api.github.com/users/GrahamCampbell/following{/other_user}","gists_url":"https://api.github.com/users/GrahamCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/GrahamCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrahamCampbell/subscriptions","organizations_url":"https://api.github.com/users/GrahamCampbell/orgs","repos_url":"https://api.github.com/users/GrahamCampbell/repos","events_url":"https://api.github.com/users/GrahamCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/GrahamCampbell/received_events","type":"User","site_admin":false},"created_at":"2015-12-29T21:55:24Z","updated_at":"2015-12-29T21:55:24Z","body":"Interfaces for various technical reasons make life hard for a framework like laravel. Adding new methods or new parameters to methods becomes a major breaking change. If interfaces are so magic for everyone, then symfony would be all over them, but they;re not, and for good reason."}}