{"action":"created","issue":{"url":"https://api.github.com/repos/yiisoft/yii2/issues/12929","repository_url":"https://api.github.com/repos/yiisoft/yii2","labels_url":"https://api.github.com/repos/yiisoft/yii2/issues/12929/labels{/name}","comments_url":"https://api.github.com/repos/yiisoft/yii2/issues/12929/comments","events_url":"https://api.github.com/repos/yiisoft/yii2/issues/12929/events","html_url":"https://github.com/yiisoft/yii2/pull/12929","id":187557294,"number":12929,"title":"[WIP] Extract `Object` and `Component` into traits","user":{"login":"rob006","id":5972388,"avatar_url":"https://avatars.githubusercontent.com/u/5972388?v=3","gravatar_id":"","url":"https://api.github.com/users/rob006","html_url":"https://github.com/rob006","followers_url":"https://api.github.com/users/rob006/followers","following_url":"https://api.github.com/users/rob006/following{/other_user}","gists_url":"https://api.github.com/users/rob006/gists{/gist_id}","starred_url":"https://api.github.com/users/rob006/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rob006/subscriptions","organizations_url":"https://api.github.com/users/rob006/orgs","repos_url":"https://api.github.com/users/rob006/repos","events_url":"https://api.github.com/users/rob006/events{/privacy}","received_events_url":"https://api.github.com/users/rob006/received_events","type":"User","site_admin":false},"labels":[{"id":33241821,"url":"https://api.github.com/repos/yiisoft/yii2/labels/status:under%20discussion","name":"status:under discussion","color":"f7c6c7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/yiisoft/yii2/milestones/9","html_url":"https://github.com/yiisoft/yii2/milestones/2.0.x","labels_url":"https://api.github.com/repos/yiisoft/yii2/milestones/9/labels","id":831720,"number":9,"title":"2.0.x","description":"","creator":{"login":"cebe","id":189796,"avatar_url":"https://avatars.githubusercontent.com/u/189796?v=3","gravatar_id":"","url":"https://api.github.com/users/cebe","html_url":"https://github.com/cebe","followers_url":"https://api.github.com/users/cebe/followers","following_url":"https://api.github.com/users/cebe/following{/other_user}","gists_url":"https://api.github.com/users/cebe/gists{/gist_id}","starred_url":"https://api.github.com/users/cebe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cebe/subscriptions","organizations_url":"https://api.github.com/users/cebe/orgs","repos_url":"https://api.github.com/users/cebe/repos","events_url":"https://api.github.com/users/cebe/events{/privacy}","received_events_url":"https://api.github.com/users/cebe/received_events","type":"User","site_admin":false},"open_issues":330,"closed_issues":39,"state":"open","created_at":"2014-10-19T13:49:45Z","updated_at":"2016-11-08T11:07:26Z","due_on":null,"closed_at":null},"comments":17,"created_at":"2016-11-06T11:58:59Z","updated_at":"2016-11-08T12:39:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/yiisoft/yii2/pulls/12929","html_url":"https://github.com/yiisoft/yii2/pull/12929","diff_url":"https://github.com/yiisoft/yii2/pull/12929.diff","patch_url":"https://github.com/yiisoft/yii2/pull/12929.patch"},"body":"| Q             | A\r\n| ------------- | ---\r\n| Is bugfix?    | yes?\r\n| New feature?  | yes\r\n| Breaks BC?    | no\r\n| Tests pass?   | yes\r\n| Fixed issues  | #7936\r\n\r\nAlternative approach for #7936. This will allow completely drop `yii\\base\\Object` and `yii\\base\\Component` in 2.1 by using traits and interfaces directly in target class. \r\n\r\nIt is only proof of concept, it still need adjust naming, fix descriptions and do something with `Object::className()`.\r\n\r\nReplaces #12699.\r\n"},"comment":{"url":"https://api.github.com/repos/yiisoft/yii2/issues/comments/259126112","html_url":"https://github.com/yiisoft/yii2/pull/12929#issuecomment-259126112","issue_url":"https://api.github.com/repos/yiisoft/yii2/issues/12929","id":259126112,"user":{"login":"dynasource","id":125726,"avatar_url":"https://avatars.githubusercontent.com/u/125726?v=3","gravatar_id":"","url":"https://api.github.com/users/dynasource","html_url":"https://github.com/dynasource","followers_url":"https://api.github.com/users/dynasource/followers","following_url":"https://api.github.com/users/dynasource/following{/other_user}","gists_url":"https://api.github.com/users/dynasource/gists{/gist_id}","starred_url":"https://api.github.com/users/dynasource/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dynasource/subscriptions","organizations_url":"https://api.github.com/users/dynasource/orgs","repos_url":"https://api.github.com/users/dynasource/repos","events_url":"https://api.github.com/users/dynasource/events{/privacy}","received_events_url":"https://api.github.com/users/dynasource/received_events","type":"User","site_admin":false},"created_at":"2016-11-08T12:39:50Z","updated_at":"2016-11-08T12:39:50Z","body":"I agree with not deprecating Component & Object for clean & easy inheritance (with those traits). \r\n\r\nI do not agree with keep the current situation:\r\n* perhabs its twisted because of the trait & interface combination, but such a combination is something to get used to. Btw., its already getting more and more common in practice.\r\n* this traits approach makes the software more modular and cleaner organized\r\n* this traits approach make the software more logical: currently Component is uselessly overriding methods of Object. This should be done cleaner (I now see in this PR that Component is still overriding Object. I expect this is for BC reasons?)\r\n* like you said, the software will be more flexibile to integrate in 3rd party software\r\n\r\n\r\n"}}
{"actor":{"display_login":"dynasource"}}