{"action":"created","issue":{"url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/issues/1741","repository_url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2","labels_url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/issues/1741/labels{/name}","comments_url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/issues/1741/comments","events_url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/issues/1741/events","html_url":"https://github.com/phpDocumentor/phpDocumentor2/pull/1741","id":135049868,"number":1741,"title":"Refactor copy action to v3","user":{"login":"mvriel","id":193704,"avatar_url":"https://avatars.githubusercontent.com/u/193704?v=3","gravatar_id":"","url":"https://api.github.com/users/mvriel","html_url":"https://github.com/mvriel","followers_url":"https://api.github.com/users/mvriel/followers","following_url":"https://api.github.com/users/mvriel/following{/other_user}","gists_url":"https://api.github.com/users/mvriel/gists{/gist_id}","starred_url":"https://api.github.com/users/mvriel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mvriel/subscriptions","organizations_url":"https://api.github.com/users/mvriel/orgs","repos_url":"https://api.github.com/users/mvriel/repos","events_url":"https://api.github.com/users/mvriel/events{/privacy}","received_events_url":"https://api.github.com/users/mvriel/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-20T08:40:31Z","updated_at":"2016-02-20T15:51:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/pulls/1741","html_url":"https://github.com/phpDocumentor/phpDocumentor2/pull/1741","diff_url":"https://github.com/phpDocumentor/phpDocumentor2/pull/1741.diff","patch_url":"https://github.com/phpDocumentor/phpDocumentor2/pull/1741.patch"},"body":"I have changed the CopyFile Action to make use of the new Artifact and\r\nAsset abstractions; I had to make a little bit of extra effort to ensure\r\nthat it is compatible with previous editions of phpDocumentor. The\r\nCopyFile Action will do a recursive copy of the files reported by\r\nthe Assets abstraction.\r\n\r\nThis also meant that I have expanded the Assets abstraction to include\r\nthe concept of a Folder; which means that you will return a collection\r\nof Path objects that you can subsequently retrieve using the Assets\r\nabstraction.\r\n\r\nI have explicitly chosen to return Path objects and not complete\r\nAsset objects because that might grow a bit large (being a recursive\r\naction through the folder and all subfolders) and because that may\r\ncause I/O that is never used because the user may not want to\r\nretrieve all assets. In addition, memory would increase significantly\r\nbecause all files would be stored in memory instead of retrieved\r\non a per Asset basis."},"comment":{"url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/issues/comments/186633266","html_url":"https://github.com/phpDocumentor/phpDocumentor2/pull/1741#issuecomment-186633266","issue_url":"https://api.github.com/repos/phpDocumentor/phpDocumentor2/issues/1741","id":186633266,"user":{"login":"jaapio","id":1060433,"avatar_url":"https://avatars.githubusercontent.com/u/1060433?v=3","gravatar_id":"","url":"https://api.github.com/users/jaapio","html_url":"https://github.com/jaapio","followers_url":"https://api.github.com/users/jaapio/followers","following_url":"https://api.github.com/users/jaapio/following{/other_user}","gists_url":"https://api.github.com/users/jaapio/gists{/gist_id}","starred_url":"https://api.github.com/users/jaapio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaapio/subscriptions","organizations_url":"https://api.github.com/users/jaapio/orgs","repos_url":"https://api.github.com/users/jaapio/repos","events_url":"https://api.github.com/users/jaapio/events{/privacy}","received_events_url":"https://api.github.com/users/jaapio/received_events","type":"User","site_admin":false},"created_at":"2016-02-20T15:51:26Z","updated_at":"2016-02-20T15:51:26Z","body":"Instead of creating an asset object for folders and assets we could consider to just create an interface for both. And create an implementation in the infrastructure layer that proxies to flysystem. I can imaging that you want to do this in a future pr. "}}