Skip to content

refactor: DOMParser::withString() for PHP 8.2 - #6672

Merged
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82
Oct 25, 2022
Merged

refactor: DOMParser::withString() for PHP 8.2#6672
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82

Conversation

@kenjis

@kenjiskenjis commented Oct 12, 2022

Copy link
Copy Markdown
Member

Description
See #6170
See https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated

  • mb_convert_encoding($str, 'HTML-Entities') is deprecated in PHP 8.2.

Checklist:

  • Securely signed commits
  • [] Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • [] User guide updated
  • Conforms to style guide

@kenjiskenjis added PHP 8.2 refactor Pull requests that refactor code labels Oct 12, 2022
@kenjiskenjis mentioned this pull request Oct 12, 2022
7 tasks
@kenjiskenjis changed the title refactor: DOMParser::withString()refactor: DOMParser::withString() for PHP 8.2Oct 12, 2022

@MGatnerMGatner left a comment

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.

I'm having a hard time finding a clear answer: are you sure these are the same?

@MGatner

Copy link
Copy Markdown
Member

Compare: Kristories/symfony@eea3b10

@kenjis

Copy link
Copy Markdown
MemberAuthor

The latest code in Symfony is different.

$this->line = htmlspecialchars_decode(utf8_decode(htmlentities($this->line, ENT_COMPAT, 'UTF-8', false)));

https://github.com/Kristories/symfony/blob/eea3b10327c1a9b1298a069ea8f844c70e73b6a7/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L981

$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

https://github.com/symfony/symfony/blob/b527899f4fb4355fd356eef6f910ea67c5f86192/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L939

Comment threadsystem/Test/DOMParser.php
@kenjis

Copy link
Copy Markdown
MemberAuthor

I'm having a hard time finding a clear answer: are you sure these are the same?

No. The following tests fail with this PR.

--- a/tests/system/Test/DOMParserTest.php+++ b/tests/system/Test/DOMParserTest.php@@ -80,8 +80,9 @@ final class DOMParserTest extends CIUnitTestCase
public function provideText()
{
return [
- ['Hello World'],- ['Hellö Wörld'],+ 'en' => ['Hello World'],+ 'sv' => ['Hej, världen'],+ 'ja' => ['こんにちは、世界'],
];
}

@kenjis

kenjis commented Oct 13, 2022

Copy link
Copy Markdown
MemberAuthor

I changed the code, and test case.
But I don't understand the need for the conversion. 😓

@MGatner

Copy link
Copy Markdown
Member

Have you blamed it for any clues? I can look into it later on desktop, but it is a rather baffling feature.

@kenjiskenjis added the help wanted More help is needed for the proper resolution of an issue or pull request label Oct 17, 2022
@kenjiskenjis mentioned this pull request Oct 22, 2022
5 tasks
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from b12e15e to d88f555CompareOctober 24, 2022 08:41
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from d88f555 to a83d410CompareOctober 24, 2022 23:02
@kenjis

Copy link
Copy Markdown
MemberAuthor

I think this PR is ready to merge.

@kenjis
kenjis merged commit a88ceea into codeigniter4:developOct 25, 2022
@kenjis
kenjis deleted the fix-DOMParser-withString-php82 branch October 25, 2022 21:08
@kenjis

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews!

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

Labels

help wantedMore help is needed for the proper resolution of an issue or pull requestrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kenjis@MGatner@paulbalandan
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
refactor: DOMParser::withString() for PHP 8.2 by kenjis · Pull Request #6672 · codeigniter4/CodeIgniter4 · GitHub
Skip to content

refactor: DOMParser::withString() for PHP 8.2 - #6672

Merged
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82
Oct 25, 2022
Merged

refactor: DOMParser::withString() for PHP 8.2#6672
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82

Conversation

@kenjis

@kenjiskenjis commented Oct 12, 2022

Copy link
Copy Markdown
Member

Description
See #6170
See https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated

  • mb_convert_encoding($str, 'HTML-Entities') is deprecated in PHP 8.2.

Checklist:

  • Securely signed commits
  • [] Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • [] User guide updated
  • Conforms to style guide

@kenjiskenjis added PHP 8.2 refactor Pull requests that refactor code labels Oct 12, 2022
@kenjiskenjis mentioned this pull request Oct 12, 2022
7 tasks
@kenjiskenjis changed the title refactor: DOMParser::withString()refactor: DOMParser::withString() for PHP 8.2Oct 12, 2022

@MGatnerMGatner left a comment

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.

I'm having a hard time finding a clear answer: are you sure these are the same?

@MGatner

Copy link
Copy Markdown
Member

Compare: Kristories/symfony@eea3b10

@kenjis

Copy link
Copy Markdown
MemberAuthor

The latest code in Symfony is different.

$this->line = htmlspecialchars_decode(utf8_decode(htmlentities($this->line, ENT_COMPAT, 'UTF-8', false)));

https://github.com/Kristories/symfony/blob/eea3b10327c1a9b1298a069ea8f844c70e73b6a7/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L981

$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

https://github.com/symfony/symfony/blob/b527899f4fb4355fd356eef6f910ea67c5f86192/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L939

Comment threadsystem/Test/DOMParser.php
@kenjis

Copy link
Copy Markdown
MemberAuthor

I'm having a hard time finding a clear answer: are you sure these are the same?

No. The following tests fail with this PR.

--- a/tests/system/Test/DOMParserTest.php+++ b/tests/system/Test/DOMParserTest.php@@ -80,8 +80,9 @@ final class DOMParserTest extends CIUnitTestCase
public function provideText()
{
return [
- ['Hello World'],- ['Hellö Wörld'],+ 'en' => ['Hello World'],+ 'sv' => ['Hej, världen'],+ 'ja' => ['こんにちは、世界'],
];
}

@kenjis

kenjis commented Oct 13, 2022

Copy link
Copy Markdown
MemberAuthor

I changed the code, and test case.
But I don't understand the need for the conversion. 😓

@MGatner

Copy link
Copy Markdown
Member

Have you blamed it for any clues? I can look into it later on desktop, but it is a rather baffling feature.

@kenjiskenjis added the help wanted More help is needed for the proper resolution of an issue or pull request label Oct 17, 2022
@kenjiskenjis mentioned this pull request Oct 22, 2022
5 tasks
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from b12e15e to d88f555CompareOctober 24, 2022 08:41
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from d88f555 to a83d410CompareOctober 24, 2022 23:02
@kenjis

Copy link
Copy Markdown
MemberAuthor

I think this PR is ready to merge.

@kenjis
kenjis merged commit a88ceea into codeigniter4:developOct 25, 2022
@kenjis
kenjis deleted the fix-DOMParser-withString-php82 branch October 25, 2022 21:08
@kenjis

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews!

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

Labels

help wantedMore help is needed for the proper resolution of an issue or pull requestrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kenjis@MGatner@paulbalandan
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' refactor: DOMParser::withString() for PHP 8.2 by kenjis · Pull Request #6672 · codeigniter4/CodeIgniter4 · GitHub
Skip to content

refactor: DOMParser::withString() for PHP 8.2 - #6672

Merged
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82
Oct 25, 2022
Merged

refactor: DOMParser::withString() for PHP 8.2#6672
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82

Conversation

@kenjis

@kenjiskenjis commented Oct 12, 2022

Copy link
Copy Markdown
Member

Description
See #6170
See https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated

  • mb_convert_encoding($str, 'HTML-Entities') is deprecated in PHP 8.2.

Checklist:

  • Securely signed commits
  • [] Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • [] User guide updated
  • Conforms to style guide

@kenjiskenjis added PHP 8.2 refactor Pull requests that refactor code labels Oct 12, 2022
@kenjiskenjis mentioned this pull request Oct 12, 2022
7 tasks
@kenjiskenjis changed the title refactor: DOMParser::withString()refactor: DOMParser::withString() for PHP 8.2Oct 12, 2022

@MGatnerMGatner left a comment

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.

I'm having a hard time finding a clear answer: are you sure these are the same?

@MGatner

Copy link
Copy Markdown
Member

Compare: Kristories/symfony@eea3b10

@kenjis

Copy link
Copy Markdown
MemberAuthor

The latest code in Symfony is different.

$this->line = htmlspecialchars_decode(utf8_decode(htmlentities($this->line, ENT_COMPAT, 'UTF-8', false)));

https://github.com/Kristories/symfony/blob/eea3b10327c1a9b1298a069ea8f844c70e73b6a7/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L981

$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

https://github.com/symfony/symfony/blob/b527899f4fb4355fd356eef6f910ea67c5f86192/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L939

Comment threadsystem/Test/DOMParser.php
@kenjis

Copy link
Copy Markdown
MemberAuthor

I'm having a hard time finding a clear answer: are you sure these are the same?

No. The following tests fail with this PR.

--- a/tests/system/Test/DOMParserTest.php+++ b/tests/system/Test/DOMParserTest.php@@ -80,8 +80,9 @@ final class DOMParserTest extends CIUnitTestCase
public function provideText()
{
return [
- ['Hello World'],- ['Hellö Wörld'],+ 'en' => ['Hello World'],+ 'sv' => ['Hej, världen'],+ 'ja' => ['こんにちは、世界'],
];
}

@kenjis

kenjis commented Oct 13, 2022

Copy link
Copy Markdown
MemberAuthor

I changed the code, and test case.
But I don't understand the need for the conversion. 😓

@MGatner

Copy link
Copy Markdown
Member

Have you blamed it for any clues? I can look into it later on desktop, but it is a rather baffling feature.

@kenjiskenjis added the help wanted More help is needed for the proper resolution of an issue or pull request label Oct 17, 2022
@kenjiskenjis mentioned this pull request Oct 22, 2022
5 tasks
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from b12e15e to d88f555CompareOctober 24, 2022 08:41
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from d88f555 to a83d410CompareOctober 24, 2022 23:02
@kenjis

Copy link
Copy Markdown
MemberAuthor

I think this PR is ready to merge.

@kenjis
kenjis merged commit a88ceea into codeigniter4:developOct 25, 2022
@kenjis
kenjis deleted the fix-DOMParser-withString-php82 branch October 25, 2022 21:08
@kenjis

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews!

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

Labels

help wantedMore help is needed for the proper resolution of an issue or pull requestrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kenjis@MGatner@paulbalandan
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' refactor: DOMParser::withString() for PHP 8.2 by kenjis · Pull Request #6672 · codeigniter4/CodeIgniter4 · GitHub
Skip to content

refactor: DOMParser::withString() for PHP 8.2 - #6672

Merged
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82
Oct 25, 2022
Merged

refactor: DOMParser::withString() for PHP 8.2#6672
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82

Conversation

@kenjis

@kenjiskenjis commented Oct 12, 2022

Copy link
Copy Markdown
Member

Description
See #6170
See https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated

  • mb_convert_encoding($str, 'HTML-Entities') is deprecated in PHP 8.2.

Checklist:

  • Securely signed commits
  • [] Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • [] User guide updated
  • Conforms to style guide

@kenjiskenjis added PHP 8.2 refactor Pull requests that refactor code labels Oct 12, 2022
@kenjiskenjis mentioned this pull request Oct 12, 2022
7 tasks
@kenjiskenjis changed the title refactor: DOMParser::withString()refactor: DOMParser::withString() for PHP 8.2Oct 12, 2022

@MGatnerMGatner left a comment

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.

I'm having a hard time finding a clear answer: are you sure these are the same?

@MGatner

Copy link
Copy Markdown
Member

Compare: Kristories/symfony@eea3b10

@kenjis

Copy link
Copy Markdown
MemberAuthor

The latest code in Symfony is different.

$this->line = htmlspecialchars_decode(utf8_decode(htmlentities($this->line, ENT_COMPAT, 'UTF-8', false)));

https://github.com/Kristories/symfony/blob/eea3b10327c1a9b1298a069ea8f844c70e73b6a7/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L981

$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

https://github.com/symfony/symfony/blob/b527899f4fb4355fd356eef6f910ea67c5f86192/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L939

Comment threadsystem/Test/DOMParser.php
@kenjis

Copy link
Copy Markdown
MemberAuthor

I'm having a hard time finding a clear answer: are you sure these are the same?

No. The following tests fail with this PR.

--- a/tests/system/Test/DOMParserTest.php+++ b/tests/system/Test/DOMParserTest.php@@ -80,8 +80,9 @@ final class DOMParserTest extends CIUnitTestCase
public function provideText()
{
return [
- ['Hello World'],- ['Hellö Wörld'],+ 'en' => ['Hello World'],+ 'sv' => ['Hej, världen'],+ 'ja' => ['こんにちは、世界'],
];
}

@kenjis

kenjis commented Oct 13, 2022

Copy link
Copy Markdown
MemberAuthor

I changed the code, and test case.
But I don't understand the need for the conversion. 😓

@MGatner

Copy link
Copy Markdown
Member

Have you blamed it for any clues? I can look into it later on desktop, but it is a rather baffling feature.

@kenjiskenjis added the help wanted More help is needed for the proper resolution of an issue or pull request label Oct 17, 2022
@kenjiskenjis mentioned this pull request Oct 22, 2022
5 tasks
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from b12e15e to d88f555CompareOctober 24, 2022 08:41
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from d88f555 to a83d410CompareOctober 24, 2022 23:02
@kenjis

Copy link
Copy Markdown
MemberAuthor

I think this PR is ready to merge.

@kenjis
kenjis merged commit a88ceea into codeigniter4:developOct 25, 2022
@kenjis
kenjis deleted the fix-DOMParser-withString-php82 branch October 25, 2022 21:08
@kenjis

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews!

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

Labels

help wantedMore help is needed for the proper resolution of an issue or pull requestrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kenjis@MGatner@paulbalandan
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' refactor: DOMParser::withString() for PHP 8.2 by kenjis · Pull Request #6672 · codeigniter4/CodeIgniter4 · GitHub
Skip to content

refactor: DOMParser::withString() for PHP 8.2 - #6672

Merged
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82
Oct 25, 2022
Merged

refactor: DOMParser::withString() for PHP 8.2#6672
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82

Conversation

@kenjis

@kenjiskenjis commented Oct 12, 2022

Copy link
Copy Markdown
Member

Description
See #6170
See https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated

  • mb_convert_encoding($str, 'HTML-Entities') is deprecated in PHP 8.2.

Checklist:

  • Securely signed commits
  • [] Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • [] User guide updated
  • Conforms to style guide

@kenjiskenjis added PHP 8.2 refactor Pull requests that refactor code labels Oct 12, 2022
@kenjiskenjis mentioned this pull request Oct 12, 2022
7 tasks
@kenjiskenjis changed the title refactor: DOMParser::withString()refactor: DOMParser::withString() for PHP 8.2Oct 12, 2022

@MGatnerMGatner left a comment

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.

I'm having a hard time finding a clear answer: are you sure these are the same?

@MGatner

Copy link
Copy Markdown
Member

Compare: Kristories/symfony@eea3b10

@kenjis

Copy link
Copy Markdown
MemberAuthor

The latest code in Symfony is different.

$this->line = htmlspecialchars_decode(utf8_decode(htmlentities($this->line, ENT_COMPAT, 'UTF-8', false)));

https://github.com/Kristories/symfony/blob/eea3b10327c1a9b1298a069ea8f844c70e73b6a7/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L981

$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

https://github.com/symfony/symfony/blob/b527899f4fb4355fd356eef6f910ea67c5f86192/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L939

Comment threadsystem/Test/DOMParser.php
@kenjis

Copy link
Copy Markdown
MemberAuthor

I'm having a hard time finding a clear answer: are you sure these are the same?

No. The following tests fail with this PR.

--- a/tests/system/Test/DOMParserTest.php+++ b/tests/system/Test/DOMParserTest.php@@ -80,8 +80,9 @@ final class DOMParserTest extends CIUnitTestCase
public function provideText()
{
return [
- ['Hello World'],- ['Hellö Wörld'],+ 'en' => ['Hello World'],+ 'sv' => ['Hej, världen'],+ 'ja' => ['こんにちは、世界'],
];
}

@kenjis

kenjis commented Oct 13, 2022

Copy link
Copy Markdown
MemberAuthor

I changed the code, and test case.
But I don't understand the need for the conversion. 😓

@MGatner

Copy link
Copy Markdown
Member

Have you blamed it for any clues? I can look into it later on desktop, but it is a rather baffling feature.

@kenjiskenjis added the help wanted More help is needed for the proper resolution of an issue or pull request label Oct 17, 2022
@kenjiskenjis mentioned this pull request Oct 22, 2022
5 tasks
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from b12e15e to d88f555CompareOctober 24, 2022 08:41
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from d88f555 to a83d410CompareOctober 24, 2022 23:02
@kenjis

Copy link
Copy Markdown
MemberAuthor

I think this PR is ready to merge.

@kenjis
kenjis merged commit a88ceea into codeigniter4:developOct 25, 2022
@kenjis
kenjis deleted the fix-DOMParser-withString-php82 branch October 25, 2022 21:08
@kenjis

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews!

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

Labels

help wantedMore help is needed for the proper resolution of an issue or pull requestrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kenjis@MGatner@paulbalandan
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' refactor: DOMParser::withString() for PHP 8.2 by kenjis · Pull Request #6672 · codeigniter4/CodeIgniter4 · GitHub
Skip to content

refactor: DOMParser::withString() for PHP 8.2 - #6672

Merged
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82
Oct 25, 2022
Merged

refactor: DOMParser::withString() for PHP 8.2#6672
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82

Conversation

@kenjis

@kenjiskenjis commented Oct 12, 2022

Copy link
Copy Markdown
Member

Description
See #6170
See https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated

  • mb_convert_encoding($str, 'HTML-Entities') is deprecated in PHP 8.2.

Checklist:

  • Securely signed commits
  • [] Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • [] User guide updated
  • Conforms to style guide

@kenjiskenjis added PHP 8.2 refactor Pull requests that refactor code labels Oct 12, 2022
@kenjiskenjis mentioned this pull request Oct 12, 2022
7 tasks
@kenjiskenjis changed the title refactor: DOMParser::withString()refactor: DOMParser::withString() for PHP 8.2Oct 12, 2022

@MGatnerMGatner left a comment

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.

I'm having a hard time finding a clear answer: are you sure these are the same?

@MGatner

Copy link
Copy Markdown
Member

Compare: Kristories/symfony@eea3b10

@kenjis

Copy link
Copy Markdown
MemberAuthor

The latest code in Symfony is different.

$this->line = htmlspecialchars_decode(utf8_decode(htmlentities($this->line, ENT_COMPAT, 'UTF-8', false)));

https://github.com/Kristories/symfony/blob/eea3b10327c1a9b1298a069ea8f844c70e73b6a7/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L981

$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

https://github.com/symfony/symfony/blob/b527899f4fb4355fd356eef6f910ea67c5f86192/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L939

Comment threadsystem/Test/DOMParser.php
@kenjis

Copy link
Copy Markdown
MemberAuthor

I'm having a hard time finding a clear answer: are you sure these are the same?

No. The following tests fail with this PR.

--- a/tests/system/Test/DOMParserTest.php+++ b/tests/system/Test/DOMParserTest.php@@ -80,8 +80,9 @@ final class DOMParserTest extends CIUnitTestCase
public function provideText()
{
return [
- ['Hello World'],- ['Hellö Wörld'],+ 'en' => ['Hello World'],+ 'sv' => ['Hej, världen'],+ 'ja' => ['こんにちは、世界'],
];
}

@kenjis

kenjis commented Oct 13, 2022

Copy link
Copy Markdown
MemberAuthor

I changed the code, and test case.
But I don't understand the need for the conversion. 😓

@MGatner

Copy link
Copy Markdown
Member

Have you blamed it for any clues? I can look into it later on desktop, but it is a rather baffling feature.

@kenjiskenjis added the help wanted More help is needed for the proper resolution of an issue or pull request label Oct 17, 2022
@kenjiskenjis mentioned this pull request Oct 22, 2022
5 tasks
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from b12e15e to d88f555CompareOctober 24, 2022 08:41
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from d88f555 to a83d410CompareOctober 24, 2022 23:02
@kenjis

Copy link
Copy Markdown
MemberAuthor

I think this PR is ready to merge.

@kenjis
kenjis merged commit a88ceea into codeigniter4:developOct 25, 2022
@kenjis
kenjis deleted the fix-DOMParser-withString-php82 branch October 25, 2022 21:08
@kenjis

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews!

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

Labels

help wantedMore help is needed for the proper resolution of an issue or pull requestrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kenjis@MGatner@paulbalandan
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); refactor: DOMParser::withString() for PHP 8.2 by kenjis · Pull Request #6672 · codeigniter4/CodeIgniter4 · GitHub
Skip to content

refactor: DOMParser::withString() for PHP 8.2 - #6672

Merged
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82
Oct 25, 2022
Merged

refactor: DOMParser::withString() for PHP 8.2#6672
kenjis merged 5 commits into
codeigniter4:developfrom
kenjis:fix-DOMParser-withString-php82

Conversation

@kenjis

@kenjiskenjis commented Oct 12, 2022

Copy link
Copy Markdown
Member

Description
See #6170
See https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated

  • mb_convert_encoding($str, 'HTML-Entities') is deprecated in PHP 8.2.

Checklist:

  • Securely signed commits
  • [] Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • [] User guide updated
  • Conforms to style guide

@kenjiskenjis added PHP 8.2 refactor Pull requests that refactor code labels Oct 12, 2022
@kenjiskenjis mentioned this pull request Oct 12, 2022
7 tasks
@kenjiskenjis changed the title refactor: DOMParser::withString()refactor: DOMParser::withString() for PHP 8.2Oct 12, 2022

@MGatnerMGatner left a comment

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.

I'm having a hard time finding a clear answer: are you sure these are the same?

@MGatner

Copy link
Copy Markdown
Member

Compare: Kristories/symfony@eea3b10

@kenjis

Copy link
Copy Markdown
MemberAuthor

The latest code in Symfony is different.

$this->line = htmlspecialchars_decode(utf8_decode(htmlentities($this->line, ENT_COMPAT, 'UTF-8', false)));

https://github.com/Kristories/symfony/blob/eea3b10327c1a9b1298a069ea8f844c70e73b6a7/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L981

$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

https://github.com/symfony/symfony/blob/b527899f4fb4355fd356eef6f910ea67c5f86192/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php#L939

Comment threadsystem/Test/DOMParser.php
@kenjis

Copy link
Copy Markdown
MemberAuthor

I'm having a hard time finding a clear answer: are you sure these are the same?

No. The following tests fail with this PR.

--- a/tests/system/Test/DOMParserTest.php+++ b/tests/system/Test/DOMParserTest.php@@ -80,8 +80,9 @@ final class DOMParserTest extends CIUnitTestCase
public function provideText()
{
return [
- ['Hello World'],- ['Hellö Wörld'],+ 'en' => ['Hello World'],+ 'sv' => ['Hej, världen'],+ 'ja' => ['こんにちは、世界'],
];
}

@kenjis

kenjis commented Oct 13, 2022

Copy link
Copy Markdown
MemberAuthor

I changed the code, and test case.
But I don't understand the need for the conversion. 😓

@MGatner

Copy link
Copy Markdown
Member

Have you blamed it for any clues? I can look into it later on desktop, but it is a rather baffling feature.

@kenjiskenjis added the help wanted More help is needed for the proper resolution of an issue or pull request label Oct 17, 2022
@kenjiskenjis mentioned this pull request Oct 22, 2022
5 tasks
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from b12e15e to d88f555CompareOctober 24, 2022 08:41
@kenjis
kenjisforce-pushed the fix-DOMParser-withString-php82 branch from d88f555 to a83d410CompareOctober 24, 2022 23:02
@kenjis

Copy link
Copy Markdown
MemberAuthor

I think this PR is ready to merge.

@kenjis
kenjis merged commit a88ceea into codeigniter4:developOct 25, 2022
@kenjis
kenjis deleted the fix-DOMParser-withString-php82 branch October 25, 2022 21:08
@kenjis

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews!

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

Labels

help wantedMore help is needed for the proper resolution of an issue or pull requestrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kenjis@MGatner@paulbalandan