{"action":"closed","issue":{"url":"https://api.github.com/repos/defuse/php-encryption/issues/125","labels_url":"https://api.github.com/repos/defuse/php-encryption/issues/125/labels{/name}","comments_url":"https://api.github.com/repos/defuse/php-encryption/issues/125/comments","events_url":"https://api.github.com/repos/defuse/php-encryption/issues/125/events","html_url":"https://github.com/defuse/php-encryption/issues/125","id":112035800,"number":125,"title":"Prevent Partial Reads and Writes","user":{"login":"paragonie-scott","id":11591518,"avatar_url":"https://avatars.githubusercontent.com/u/11591518?v=3","gravatar_id":"","url":"https://api.github.com/users/paragonie-scott","html_url":"https://github.com/paragonie-scott","followers_url":"https://api.github.com/users/paragonie-scott/followers","following_url":"https://api.github.com/users/paragonie-scott/following{/other_user}","gists_url":"https://api.github.com/users/paragonie-scott/gists{/gist_id}","starred_url":"https://api.github.com/users/paragonie-scott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paragonie-scott/subscriptions","organizations_url":"https://api.github.com/users/paragonie-scott/orgs","repos_url":"https://api.github.com/users/paragonie-scott/repos","events_url":"https://api.github.com/users/paragonie-scott/events{/privacy}","received_events_url":"https://api.github.com/users/paragonie-scott/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/defuse/php-encryption/labels/v2.0","name":"v2.0","color":"006b75"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/defuse/php-encryption/milestones/2","html_url":"https://github.com/defuse/php-encryption/milestones/v2.0%20release","labels_url":"https://api.github.com/repos/defuse/php-encryption/milestones/2/labels","id":1360010,"number":2,"title":"v2.0 release","description":"","creator":{"login":"defuse","id":4211072,"avatar_url":"https://avatars.githubusercontent.com/u/4211072?v=3","gravatar_id":"","url":"https://api.github.com/users/defuse","html_url":"https://github.com/defuse","followers_url":"https://api.github.com/users/defuse/followers","following_url":"https://api.github.com/users/defuse/following{/other_user}","gists_url":"https://api.github.com/users/defuse/gists{/gist_id}","starred_url":"https://api.github.com/users/defuse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defuse/subscriptions","organizations_url":"https://api.github.com/users/defuse/orgs","repos_url":"https://api.github.com/users/defuse/repos","events_url":"https://api.github.com/users/defuse/events{/privacy}","received_events_url":"https://api.github.com/users/defuse/received_events","type":"User","site_admin":false},"open_issues":15,"closed_issues":22,"state":"open","created_at":"2015-10-16T18:26:44Z","updated_at":"2015-10-21T16:11:10Z","due_on":"2015-10-31T06:00:00Z","closed_at":null},"comments":4,"created_at":"2015-10-18T19:12:17Z","updated_at":"2015-10-21T16:11:10Z","closed_at":"2015-10-21T16:11:10Z","body":"See also: [Halite's `File::readBytes()` and `File::writeBytes()`](https://github.com/paragonie/halite/blob/ee5e92ee65dfebf26b7d8c559921ce2a5d4cf76c/src/File.php#L973-L1041) API for reference.\r\n\r\nThis could greatly reduce the amount of `if ($result === false)` lines by making a separate method for stream reading/writing that throws an exception if it can't proceed."}}