-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[2.7][Filesystem] Changed dumpFile to allow dumping to streams... #14754
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* | ||
* @return string The filename hierarchy. | ||
*/ | ||
private function getHierarchy($filename) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hierarchy ? this is the first time I see this word used for a path component
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Includes the authority as well as the path.
STD 66 and RFC 3986 call it "hierarchical part" but hierarchy seemed nicer.
http://en.wikipedia.org/wiki/URI_scheme
Cheers
$limit = 10; | ||
$schemeSeparator = '://'; | ||
$scheme = $this->getScheme($dir); | ||
$hierarchy = $this->getHierarchy($dir); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rather than implementing these in 2 separate methods, each of them redoing the same splitting of the path, what about doing the logic determining both in the same place (either here or in a method returning array($scheme, $hierarchy)
and using list($scheme, $hierarchy) = ...
here) ?
In the current |
|
||
// If the file already exists restart the loop | ||
// Use fopen instead of file_exists as some streams do not support stat | ||
$handle = @fopen($tmpFile, 'r'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why don't you use file_exists
(or is_readable
)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@staabm. See comment just above :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
arghs sry ;)
I think I fixed a TOCTOU security vulnerability but can someone check: I also added a MockStream as none of the built-in ones were suitable for testing (see comments in testTempnamWith*SchemeFails). |
…tive tempnam() and fixed dumpFile to allow dumping to streams
Rebased onto 2.8 in #14970 |
...as rename can only work where $oldname and $newname have the same streams wrappers.
Added tempnam, stream wrapper aware version of tempnam(), to do the heavy lifting.