{"action":"created","issue":{"url":"https://api.github.com/repos/Elgg/Elgg/issues/6803","labels_url":"https://api.github.com/repos/Elgg/Elgg/issues/6803/labels{/name}","comments_url":"https://api.github.com/repos/Elgg/Elgg/issues/6803/comments","events_url":"https://api.github.com/repos/Elgg/Elgg/issues/6803/events","html_url":"https://github.com/Elgg/Elgg/issues/6803","id":32459043,"number":6803,"title":"switch to filesystem abstraction layer","user":{"login":"ewinslow","id":356564,"avatar_url":"https://avatars.githubusercontent.com/u/356564?v=3","gravatar_id":"","url":"https://api.github.com/users/ewinslow","html_url":"https://github.com/ewinslow","followers_url":"https://api.github.com/users/ewinslow/followers","following_url":"https://api.github.com/users/ewinslow/following{/other_user}","gists_url":"https://api.github.com/users/ewinslow/gists{/gist_id}","starred_url":"https://api.github.com/users/ewinslow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ewinslow/subscriptions","organizations_url":"https://api.github.com/users/ewinslow/orgs","repos_url":"https://api.github.com/users/ewinslow/repos","events_url":"https://api.github.com/users/ewinslow/events{/privacy}","received_events_url":"https://api.github.com/users/ewinslow/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Elgg/Elgg/labels/chore","name":"chore","color":"DDDDDD"}],"state":"open","locked":false,"assignee":{"login":"ewinslow","id":356564,"avatar_url":"https://avatars.githubusercontent.com/u/356564?v=3","gravatar_id":"","url":"https://api.github.com/users/ewinslow","html_url":"https://github.com/ewinslow","followers_url":"https://api.github.com/users/ewinslow/followers","following_url":"https://api.github.com/users/ewinslow/following{/other_user}","gists_url":"https://api.github.com/users/ewinslow/gists{/gist_id}","starred_url":"https://api.github.com/users/ewinslow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ewinslow/subscriptions","organizations_url":"https://api.github.com/users/ewinslow/orgs","repos_url":"https://api.github.com/users/ewinslow/repos","events_url":"https://api.github.com/users/ewinslow/events{/privacy}","received_events_url":"https://api.github.com/users/ewinslow/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2014-04-29T16:00:20Z","updated_at":"2015-03-24T13:24:26Z","closed_at":null,"body":"This should give us nice flexibility. For example, how the data directory is managed/stored. I imagine it would also help with different hosting options (e.g. @brettp tried App Engine when it announced PHP support, but that didn't work I think because of filesystem compatibility issues).\r\n\r\nSome options I have come across that look promising:\r\n * [Flysystem](https://github.com/thephpleague/flysystem)\r\n * [Gaufrette](https://github.com/KnpLabs/Gaufrette)"},"comment":{"url":"https://api.github.com/repos/Elgg/Elgg/issues/comments/85493737","html_url":"https://github.com/Elgg/Elgg/issues/6803#issuecomment-85493737","issue_url":"https://api.github.com/repos/Elgg/Elgg/issues/6803","id":85493737,"user":{"login":"brettp","id":43375,"avatar_url":"https://avatars.githubusercontent.com/u/43375?v=3","gravatar_id":"","url":"https://api.github.com/users/brettp","html_url":"https://github.com/brettp","followers_url":"https://api.github.com/users/brettp/followers","following_url":"https://api.github.com/users/brettp/following{/other_user}","gists_url":"https://api.github.com/users/brettp/gists{/gist_id}","starred_url":"https://api.github.com/users/brettp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brettp/subscriptions","organizations_url":"https://api.github.com/users/brettp/orgs","repos_url":"https://api.github.com/users/brettp/repos","events_url":"https://api.github.com/users/brettp/events{/privacy}","received_events_url":"https://api.github.com/users/brettp/received_events","type":"User","site_admin":false},"created_at":"2015-03-24T13:24:26Z","updated_at":"2015-03-24T13:24:26Z","body":"Before I can start refactoring the cloud storage work, we need to come to a decision about the Filesystem API. As I said, in this case I'm strongly in favor of not wrapping Gaufrette because we already wrap the API with ElggFile and ElggFilestore and because there's a small ROI for a lot of work (that I may or may not be able to do through MITRE.)"}}