{"action":"opened","issue":{"url":"https://api.github.com/repos/skyronic/crudkit/issues/31","labels_url":"https://api.github.com/repos/skyronic/crudkit/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/skyronic/crudkit/issues/31/comments","events_url":"https://api.github.com/repos/skyronic/crudkit/issues/31/events","html_url":"https://github.com/skyronic/crudkit/issues/31","id":119598694,"number":31,"title":"Utilize Interfaces for BaseDataProvider and BasePage","user":{"login":"thepsion5","id":2222722,"avatar_url":"https://avatars.githubusercontent.com/u/2222722?v=3","gravatar_id":"","url":"https://api.github.com/users/thepsion5","html_url":"https://github.com/thepsion5","followers_url":"https://api.github.com/users/thepsion5/followers","following_url":"https://api.github.com/users/thepsion5/following{/other_user}","gists_url":"https://api.github.com/users/thepsion5/gists{/gist_id}","starred_url":"https://api.github.com/users/thepsion5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thepsion5/subscriptions","organizations_url":"https://api.github.com/users/thepsion5/orgs","repos_url":"https://api.github.com/users/thepsion5/repos","events_url":"https://api.github.com/users/thepsion5/events{/privacy}","received_events_url":"https://api.github.com/users/thepsion5/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-30T22:45:34Z","updated_at":"2015-11-30T22:45:34Z","closed_at":null,"body":"The current implementation of Data Providers and Pages is requires extending a base class, which is inflexible and makes extending and testing more difficult. A better approach is to create interfaces for both, and possibly replace the base classes with traits that have the same functionality. This will also allow for better usage of typehinting.\r\n\r\nI'm interested in using this library at work but not having interfaces to work with would create additional maintenance liabilities for us, so I'm willing to create a PR with the required changes (and relevant tests, even!)."}}