Skip to content
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

[HttpKernel] removed absolute paths from the generated container #10894

Merged
merged 1 commit into from May 17, 2014

Conversation

@fabpot
Copy link
Member

@fabpot fabpot commented May 12, 2014

Q A
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets first step to resolve #6484, #3079, and #9238
License MIT
Doc PR n/a

This PR converts absolute paths to relative ones in the dumped container. The code is a bit "ugly", but it gets the job done and I'm not sure that there is a more elegant way without breaking everything.

@stof
Copy link
Member

@stof stof commented May 12, 2014

This should clearly be covered by tests

return $content;
}

$cacheDir = $this->getCacheDir();
Copy link
Contributor

@staabm staabm May 12, 2014

Could be moved below the while loop, because not used before

@fabpot fabpot changed the title [WIP] [HttpKernel] removed absolute paths from the generated container [HttpKernel] removed absolute paths from the generated container May 17, 2014
@fabpot
Copy link
Member Author

@fabpot fabpot commented May 17, 2014

This one should be ready now.

$rootDir = $this->getRootDir();
$previous = $rootDir;
while (!file_exists($rootDir.'/composer.json')) {
if ($previous === $rootDir = realpath($rootDir.'/..')) {
Copy link
Member

@stof stof May 17, 2014

shoudln't $previous be updated in the loop too ?

Copy link
Member Author

@fabpot fabpot May 17, 2014

right, fixed it now and added a test about that.

Copy link
Contributor

@tvlooy tvlooy May 30, 2014

@fabpot I think this stuff (the preg_replace_callback below) breaks the console. kernel.rootpath is now at app/cache/dev/../src can be reproduced by generating a bundle

Copy link
Member

@wouterj wouterj May 30, 2014

@tvlooy this is already reverted see #10943

Copy link
Contributor

@tvlooy tvlooy May 30, 2014

@wouterj thanks for the pointer

@fabpot fabpot merged commit c1450b4 into symfony:2.3 May 17, 2014
2 checks passed
fabpot added a commit that referenced this issue May 17, 2014
…tainer (fabpot)

This PR was merged into the 2.3 branch.

Discussion
----------

[HttpKernel] removed absolute paths from the generated container

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | first step to resolve #6484, #3079, and #9238
| License       | MIT
| Doc PR        | n/a

This PR converts absolute paths to relative ones in the dumped container. The code is a bit "ugly", but it gets the job done and I'm not sure that there is a more elegant way without breaking everything.

Commits
-------

c1450b4 [HttpKernel] removed absolute paths from the generated container
@fabpot fabpot deleted the absolute-paths branch May 17, 2014
fabpot added a commit that referenced this issue May 26, 2014
…ated container (fabpot)"

This reverts commit 735e9a4, reversing
changes made to 5c91dc1.
fabpot added a commit that referenced this issue May 26, 2014
* 2.3:
  Revert "bug #10894 [HttpKernel] removed absolute paths from the generated container (fabpot)"
  Revert "bug #10937 [HttpKernel] Fix "absolute path" when we look to the cache directory (BenoitLeveque)"
  Revert "fixed CS"
  Revert "bug #10979 Make rootPath part of regex greedy (artursvonda)"
  Revert "[HttpKernel] simplified some tests"
  [HttpKernel] simplified some tests
  Make rootPath part of regex greedy

Conflicts:
	src/Symfony/Component/HttpKernel/Tests/KernelTest.php
fabpot added a commit that referenced this issue May 26, 2014
* 2.4:
  Revert "bug #10894 [HttpKernel] removed absolute paths from the generated container (fabpot)"
  Revert "bug #10937 [HttpKernel] Fix "absolute path" when we look to the cache directory (BenoitLeveque)"
  Revert "fixed CS"
  Revert "bug #10979 Make rootPath part of regex greedy (artursvonda)"
  Revert "[HttpKernel] simplified some tests"
  [HttpKernel] simplified some tests
  Make rootPath part of regex greedy
fabpot added a commit that referenced this issue May 26, 2014
* 2.5:
  Revert "bug #10894 [HttpKernel] removed absolute paths from the generated container (fabpot)"
  Revert "bug #10937 [HttpKernel] Fix "absolute path" when we look to the cache directory (BenoitLeveque)"
  Revert "fixed CS"
  Revert "bug #10979 Make rootPath part of regex greedy (artursvonda)"
  Revert "[HttpKernel] simplified some tests"
  [HttpKernel] simplified some tests
  Make rootPath part of regex greedy
fabpot added a commit that referenced this issue Dec 2, 2014
…e generated container (nicolas-grekas)

This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] make paths relative to __DIR__ in the generated container

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6484, #3079, partially #9238, #10894, #10999
| License       | MIT
| Doc PR        | n/a

This is an alternative approach to #10999 for removing absolute paths from the generated container:
instead of trying to fix the container file after it has been dumped, telling to the PhpDumper where its output will be written allows it to replace parts of strings by an equivalent value based on `__DIR__`.
This should be safe, thus the PR is on 2.3.

Commits
-------

edd7057 [DependencyInjection] make paths relative to __DIR__ in the generated container
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

6 participants