{"action":"created","issue":{"url":"https://api.github.com/repos/Atlantic18/DoctrineExtensions/issues/1521","repository_url":"https://api.github.com/repos/Atlantic18/DoctrineExtensions","labels_url":"https://api.github.com/repos/Atlantic18/DoctrineExtensions/issues/1521/labels{/name}","comments_url":"https://api.github.com/repos/Atlantic18/DoctrineExtensions/issues/1521/comments","events_url":"https://api.github.com/repos/Atlantic18/DoctrineExtensions/issues/1521/events","html_url":"https://github.com/Atlantic18/DoctrineExtensions/issues/1521","id":133217707,"number":1521,"title":"Add methods to Timestampable interface","user":{"login":"ste93cry","id":1770485,"avatar_url":"https://avatars.githubusercontent.com/u/1770485?v=3","gravatar_id":"","url":"https://api.github.com/users/ste93cry","html_url":"https://github.com/ste93cry","followers_url":"https://api.github.com/users/ste93cry/followers","following_url":"https://api.github.com/users/ste93cry/following{/other_user}","gists_url":"https://api.github.com/users/ste93cry/gists{/gist_id}","starred_url":"https://api.github.com/users/ste93cry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ste93cry/subscriptions","organizations_url":"https://api.github.com/users/ste93cry/orgs","repos_url":"https://api.github.com/users/ste93cry/repos","events_url":"https://api.github.com/users/ste93cry/events{/privacy}","received_events_url":"https://api.github.com/users/ste93cry/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-12T11:30:53Z","updated_at":"2016-02-15T19:55:08Z","closed_at":"2016-02-15T19:55:08Z","body":"`Timestampable` extension has an interface called `Timestampable` that contains some annotation blocks (they're more doc block, really) and nothing else. I find really useful to be able to know that a given class is a `Timestampable` entity, but I don't understand why there are no methods defined in the interface. An interface should defines methods that all classes implementing it defines, there is no point imho to have this interface empty. My suggestion is to add the `getCreatedAt`, `setCreatedAt`, `getUpdatedAt` and `setUpdatedAt` methods to the Timestampable interface. This would probably introduce BC break, so to avoid it we could create a new `TimestampableInterface` (that follows the Symfony coding conventions by adding the `Interface` suffix and then make it extending the old interface. In this way, we don't introduce any new BC break and we can remove the base interface in a new major version. What do you think about it? As it's a really simple task to do, I would like to create a PR if you agree on my considerations"},"comment":{"url":"https://api.github.com/repos/Atlantic18/DoctrineExtensions/issues/comments/184362840","html_url":"https://github.com/Atlantic18/DoctrineExtensions/issues/1521#issuecomment-184362840","issue_url":"https://api.github.com/repos/Atlantic18/DoctrineExtensions/issues/1521","id":184362840,"user":{"login":"l3pp4rd","id":132389,"avatar_url":"https://avatars.githubusercontent.com/u/132389?v=3","gravatar_id":"","url":"https://api.github.com/users/l3pp4rd","html_url":"https://github.com/l3pp4rd","followers_url":"https://api.github.com/users/l3pp4rd/followers","following_url":"https://api.github.com/users/l3pp4rd/following{/other_user}","gists_url":"https://api.github.com/users/l3pp4rd/gists{/gist_id}","starred_url":"https://api.github.com/users/l3pp4rd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l3pp4rd/subscriptions","organizations_url":"https://api.github.com/users/l3pp4rd/orgs","repos_url":"https://api.github.com/users/l3pp4rd/repos","events_url":"https://api.github.com/users/l3pp4rd/events{/privacy}","received_events_url":"https://api.github.com/users/l3pp4rd/received_events","type":"User","site_admin":false},"created_at":"2016-02-15T19:55:08Z","updated_at":"2016-02-15T19:55:08Z","body":"Hi, I cannot agree with that. The interface was used for identification reasons at some point as you mentioned. now you can use traits. there won't be BC breaks for such reasons, use traits which implement interfaces you like. People have different kinds of field names for timestamps."}}