Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[2.7][Filesystem] Changed dumpFile to allow dumping to streams... - #14754

Closed
markchalloner wants to merge 2 commits into
symfony:2.7from
markchalloner:ticket_10018
Closed

[2.7][Filesystem] Changed dumpFile to allow dumping to streams...#14754
markchalloner wants to merge 2 commits into
symfony:2.7from
markchalloner:ticket_10018

Conversation

@markchalloner

Copy link
Copy Markdown
Contributor
Q A
Bug fix? yes
New feature? yes
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets #10018
License MIT
Doc PR symfony/symfony-docs#5320

...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.

Copy link
Copy Markdown
Member

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

Copy link
Copy Markdown
Contributor Author

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

Copy link
Copy Markdown
Member

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) ?

@javiereguiluz

Copy link
Copy Markdown
Member

In the current Filesystem component, all custom functions use the same name as the original PHP function (copy, mkdir, touch, etc.) Why should we change the name of the PHP function in this case (tempnam() -> tempNam())?

Copy link
Copy Markdown
Contributor

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)?

Copy link
Copy Markdown
Contributor Author

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 :)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arghs sry ;)

@markchalloner

Copy link
Copy Markdown
Contributor Author

I think I fixed a TOCTOU security vulnerability but can someone check:

https://github.com/markchalloner/symfony/commit/26cbdfbd49b708367e459b7328859bef3207486a#diff-e88ad8ede40599bea0592b1113c4452c

I also added a MockStream as none of the built-in ones were suitable for testing (see comments in testTempnamWith*SchemeFails).

@markchalloner

Copy link
Copy Markdown
Contributor Author

Rebased onto 2.8 in #14970

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants