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

Skip to content

[CssSelector] Refactored the CssSelector to remove the circular object graph #11242

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

Merged
merged 1 commit into from
Jun 27, 2014

Conversation

stof
Copy link
Member

@stof stof commented Jun 26, 2014

Q A
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets #10879, replaces #11221
License MIT
Doc PR n/a

This allows the translator and its extensions to be garbage collected based on the refcount rather than requiring the garbage collector run, making it much more likely to happen at the end of the CssSelector::toXPath call.

Node translators now receive the Translator as second argument, instead of requiring to inject it in the extension to keep a reference to it. This way, the Translator is referenced nowhere inside it, only by the caller, and so will be destructed at the end of the usage (and extensions will then be destructed after it when not used anymore).

@@ -45,9 +40,8 @@ class NodeExtension extends AbstractExtension
* @param Translator $translator
* @param int $flags
*/
public function __construct(Translator $translator, $flags = 0)
public function __construct(Translator $translator = null, $flags = 0)
Copy link
Member Author

Choose a reason for hiding this comment

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

I kept the Translator argument for now for BC, even though this class is probably never instantiated by users as it is instantiated by the Translator itself in its constructor

Copy link
Member

Choose a reason for hiding this comment

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

I think that we don't need to keep BC here as this is part of the internals of the component.

Copy link
Member Author

Choose a reason for hiding this comment

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

removed

This allows the translator and its extensions to be garbage collected
based on the refcount rather than requiring the garbage collector run,
making it much more likely to happen at the end of the
CssSelector::toXPath call.
@fabpot
Copy link
Member

fabpot commented Jun 27, 2014

👍

@stof
Copy link
Member Author

stof commented Jun 27, 2014

ping @romainneutron @nicolas-grekas @Tobion @jakzal we need at least another core team member to validate it. It cannot be me as I'm the author

@nicolas-grekas
Copy link
Member

👍

@fabpot
Copy link
Member

fabpot commented Jun 27, 2014

Thank you @stof.

@fabpot fabpot merged commit 994f81f into symfony:2.3 Jun 27, 2014
fabpot added a commit that referenced this pull request Jun 27, 2014
…cular object graph (stof)

This PR was merged into the 2.3 branch.

Discussion
----------

[CssSelector] Refactored the CssSelector to remove the circular object graph

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #10879, replaces  #11221
| License       | MIT
| Doc PR        | n/a

This allows the translator and its extensions to be garbage collected based on the refcount rather than requiring the garbage collector run, making it much more likely to happen at the end of the ``CssSelector::toXPath`` call.

Node translators now receive the Translator as second argument, instead of requiring to inject it in the extension to keep a reference to it. This way, the Translator is referenced nowhere inside it, only by the caller, and so will be destructed at the end of the usage (and extensions will then be destructed after it when not used anymore).

Commits
-------

994f81f Refactored the CssSelector to remove the circular object graph
@stof stof deleted the css_selector_circular_graph branch June 27, 2014 11:00
@wouterj
Copy link
Member

wouterj commented Jun 27, 2014

@fabpot if you create a specific group for the voters/core, you can simply say ping @symfony/voters or ping @symfony/core instead of having to type all the nicknames.

@stof
Copy link
Member Author

stof commented Jun 27, 2014

there is a symfony-core-team team, but it contains a few more members than the actual core team

romainneutron added a commit that referenced this pull request Jul 7, 2014
…vironmentVariables() (xabbuh)

This PR was merged into the 2.4 branch.

Discussion
----------

[Process] add missing docblock for ProcessBuilder::addEnvironmentVariables()

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

9e1d11d add missing docblock for ProcessBuilder::addEnvironmentVariables()
ce29e0a bug #11283 [SecurityBundle] Remove Expression Language services when the component is unavailable (thewilkybarkid)
557a82a Remove Expression Language services when the component is unavailable
5b2e34f Merge branch '2.3' into 2.4
85af997 bug #11259 [Config] Fixed failed config schema loads due to libxml_disable_entity_loader usage (ccorliss)
de2bef5 Fixed failed config schema loads due to libxml_disable_entity_loader usage.
8a68e6c bug #11234 [ClassLoader] fixed PHP warning on PHP 5.3 (fabpot)
3b9902a enabled PHP 5.6 for tests
cd7fe02 bug #11179 [Process] Fix ExecutableFinder with open basedir (cs278)
b8f8c0e [Process] Fix ExecutableFinder with open basedir
fa2d337 bug #11242 [CssSelector] Refactored the CssSelector to remove the circular object graph (stof)
994f81f Refactored the CssSelector to remove the circular object graph
1045adf bug #11219 [DomCrawler] properly handle buttons with single and double quotes insid... (xabbuh)
84be8de minor #11230 Fix mocks to support >=5.5.14 and >=5.4.30 (jpauli)
1c5c694 Fix mocks to support >=5.5.14 and >=5.4.30
7b2e3d9 [ClassLoader] fixed PHP warning on PHP 5.3
7b0ed91 minor #11225 [Validator] added Lithuanian translation for empty file (Tadcka)
a954083 [Validator] added Lithuanian translation for empty file
803b06b bug #11220 [Components][Serializer] optional constructor arguments can be omitted during the denormalization process (xabbuh)
05c51f5 minor #11203 Added missing dutch translations (WouterJ)
bd9283e Added missing dutch translations
5bb2345 [Components][Serializer] optional constructor arguments can be omitted during the denormalization process
cbbdbe4 [DomCrawler] properly handle buttons with single and double quotes inside the name attribute
f6eb9b6 minor #11201 [Validator] Added missing pt and pt_BR translations (dcsg)
71a2b59 Added missing pt and pt_BR translations
0067952 minor #11195 [Validator] Add missing ru translations (megazoll)
71eb8a8 [Validator] Add missing ru translations
f45f2df minor #11191 [Tests] fix tests due to recent changes in PHP's behavior (xabbuh)
bc8042d don't disable constructor calls to mockups of classes that extend internal PHP classes
f4a3c7a special handling for the JsonDescriptor to work around changes in PHP's JSON pretty printer
f2bdc22 fixed previous merge
b387477 Merge branch '2.3' into 2.4
eeeae94 minor #11187 [Tests] don't disable constructor calls to mockups of classes that extend intern... (xabbuh)
ff00dcc bug #11186 Added missing `break` statement (apfelbox)
5af2802 Added missing `break` statement
2c726b8 don't disable constructor calls to mockups of classes that extend internal PHP classes
96bc061 minor #11182 Small comment update according to PSR-2 (apfelbox)
31b1dff Small comment update according to PSR-2
7d4f4f2 bug #11169 [Console] Fixed notice in DialogHelper (florianv)
ff6c65e [Console] Fixed notice in DialogHelper
fbf92e5 bug #11144 [HttpFoundation] Fixed Request::getPort returns incorrect value under IPv6 (kicken)
bd11e92 minor #11136 [Filesystem] Fix test suite on OSX (romainneutron)
2a0e8e3 [HttpFoundation] Fixed Request::getPort returns incorrect value under IPv6
e26f08e [Filesystem] Fix test suite on OSX
185aafa minor #11077 [TwigBundle] [Tests] Add framework-bundle (clemens-tolboom)
a12471d Add framework-bundle
romainneutron added a commit that referenced this pull request Jul 7, 2014
This PR was merged into the 2.5 branch.

Discussion
----------

[Process] fix the return types

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

3466601 fix the return types
6a41ca0 minor #11271 [Validator] Added missing Slovak translations (pulzarraider)
585a045 Added SK translations
a22858b Merge branch '2.4' into 2.5
5b2e34f Merge branch '2.3' into 2.4
85af997 bug #11259 [Config] Fixed failed config schema loads due to libxml_disable_entity_loader usage (ccorliss)
de2bef5 Fixed failed config schema loads due to libxml_disable_entity_loader usage.
8a68e6c bug #11234 [ClassLoader] fixed PHP warning on PHP 5.3 (fabpot)
3b9902a enabled PHP 5.6 for tests
cd7fe02 bug #11179 [Process] Fix ExecutableFinder with open basedir (cs278)
b8f8c0e [Process] Fix ExecutableFinder with open basedir
fa2d337 bug #11242 [CssSelector] Refactored the CssSelector to remove the circular object graph (stof)
994f81f Refactored the CssSelector to remove the circular object graph
1045adf bug #11219 [DomCrawler] properly handle buttons with single and double quotes insid... (xabbuh)
84be8de minor #11230 Fix mocks to support >=5.5.14 and >=5.4.30 (jpauli)
1c5c694 Fix mocks to support >=5.5.14 and >=5.4.30
7b2e3d9 [ClassLoader] fixed PHP warning on PHP 5.3
7b0ed91 minor #11225 [Validator] added Lithuanian translation for empty file (Tadcka)
a954083 [Validator] added Lithuanian translation for empty file
803b06b bug #11220 [Components][Serializer] optional constructor arguments can be omitted during the denormalization process (xabbuh)
05c51f5 minor #11203 Added missing dutch translations (WouterJ)
bd9283e Added missing dutch translations
5bb2345 [Components][Serializer] optional constructor arguments can be omitted during the denormalization process
cbbdbe4 [DomCrawler] properly handle buttons with single and double quotes inside the name attribute
f6eb9b6 minor #11201 [Validator] Added missing pt and pt_BR translations (dcsg)
71a2b59 Added missing pt and pt_BR translations
4450197 Merge branch '2.4' into 2.5
0067952 minor #11195 [Validator] Add missing ru translations (megazoll)
71eb8a8 [Validator] Add missing ru translations
f45f2df minor #11191 [Tests] fix tests due to recent changes in PHP's behavior (xabbuh)
bc8042d don't disable constructor calls to mockups of classes that extend internal PHP classes
f4a3c7a special handling for the JsonDescriptor to work around changes in PHP's JSON pretty printer
76d3c9e Merge branch '2.4' into 2.5
f2bdc22 fixed previous merge
b387477 Merge branch '2.3' into 2.4
eeeae94 minor #11187 [Tests] don't disable constructor calls to mockups of classes that extend intern... (xabbuh)
ff00dcc bug #11186 Added missing `break` statement (apfelbox)
5af2802 Added missing `break` statement
2c726b8 don't disable constructor calls to mockups of classes that extend internal PHP classes
96bc061 minor #11182 Small comment update according to PSR-2 (apfelbox)
31b1dff Small comment update according to PSR-2
a50aca0 bug #11168 [YAML] fix merge node (<<) (Tobion)
cd0309f minor #11162 [Console] remove weird use statement (cordoval)
dee1562 [Yaml] fix overwriting of keys after merged map
8c621ab [Yaml] fix priority of sequence merges according to spec
bebd18c bug #11170 [Console] Fixed notice in QuestionHelper (florianv)
7d4f4f2 bug #11169 [Console] Fixed notice in DialogHelper (florianv)
9fe4b88 [Console] Fixed notice in QuestionHelper
ff6c65e [Console] Fixed notice in DialogHelper
02614e0 [Yaml] refactoring of merges for performance
c117e8e [Console] remove weird use statement
fbf92e5 bug #11144 [HttpFoundation] Fixed Request::getPort returns incorrect value under IPv6 (kicken)
bd11e92 minor #11136 [Filesystem] Fix test suite on OSX (romainneutron)
2a0e8e3 [HttpFoundation] Fixed Request::getPort returns incorrect value under IPv6
e26f08e [Filesystem] Fix test suite on OSX
185aafa minor #11077 [TwigBundle] [Tests] Add framework-bundle (clemens-tolboom)
a12471d Add framework-bundle
@fabpot
Copy link
Member

fabpot commented Jul 7, 2014

FYI, I've just created two new teams: @symfony/mergers and @symfony/deciders

@wouterj
Copy link
Member

wouterj commented Jul 11, 2014

Great!

@hhamon
Copy link
Contributor

hhamon commented Jul 11, 2014

Great work!

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