Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

@paulbalandan@kenjis@lonnieezell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

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

Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

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

Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

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

Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

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

Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

@paulbalandan@kenjis@lonnieezell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

@paulbalandan@kenjis@lonnieezell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Refactor Database Collector display - #5553

Merged
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector
Jan 7, 2022
Merged

Refactor Database Collector display#5553
lonnieezell merged 3 commits into
codeigniter4:developfrom
paulbalandan:backtrace-collector

Conversation

@paulbalandan

Copy link
Copy Markdown
Member

Description
Fixes#5539
Supersedes and closes#5543

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

@paulbalandanpaulbalandan added bug Verified issues on the current code behavior or pull requests that will fix them refactor Pull requests that refactor code labels Jan 7, 2022
@kenjis

kenjis commented Jan 7, 2022

Copy link
Copy Markdown
Member

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Uncaught TypeError: this.toolbar is undefined
showTab http://localhost:8080/ line 37 > injectedScript:92
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
loadDoc http://localhost:8080/index.php?debugbar:14
EventListener.handleEvent* http://localhost:8080/index.php?debugbar:1
line 37 > injectedScript:92:14
showTab http://localhost:8080/ line 37 > injectedScript:92
(Async: EventListener.handleEvent)
createListeners http://localhost:8080/ line 37 > injectedScript:64
init http://localhost:8080/ line 37 > injectedScript:21
onreadystatechange http://localhost:8080/index.php?debugbar:49
(Async: EventHandlerNonNull)
loadDoc http://localhost:8080/index.php?debugbar:14
(Async: EventListener.handleEvent)
<anonymous> http://localhost:8080/index.php?debugbar:1

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

This is not because of this PR, but I got JS error and when I click the Toolbar icon, it does not show up (remain closed).

Mine, too.

Uncaught TypeError: Cannot read properties of undefined (reading 'querySelectorAll')
at HTMLAnchorElement.showTab (:88:27)

@kenjis

Copy link
Copy Markdown
Member

The bug comes from #5544.

@kenjis

Copy link
Copy Markdown
Member

@paulbalandan I rebased this branch on my local.

Two things:

  • line number color is gone
  • the buttom line of backtrace is changed

Before:
Screenshot 2022-01-07 16 54 37

After:
Screenshot 2022-01-07 16 54 41

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

  • line number needs different color
  • the bottom line of back trace is not correct

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Sorry, I didn't see these comments when I force pushed my new changes.

  • For the change in last item, I am not sure where it changed, but seems that the calling function is duplicated as the last item (that's why I removed it now)
  • For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

image

Comment threadsystem/Debug/Toolbar/Collectors/Database.php Outdated
@kenjis

Copy link
Copy Markdown
Member

The last line was fixed, from APPPATH/Controllers/Home.php:11 to FCPATH/index.php:37.
Before this PR, it was SYSTEMPATH/Commands/Server/rewrite.php:43, but we don't need it.

Screenshot 2022-01-07 17 30 38

@kenjis

Copy link
Copy Markdown
Member

For the coloring, I opted to color the file:line instead to be the same with our CLI rendering

Okay, you changed the output, and it is acceptable.

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Another quirk of PHP, providing DEBUG_BACKTRACE_IGNORE_ARGS ignores args for most but not require_once() args

1) CodeIgniter\Debug\Toolbar\Collectors\DatabaseTest::testDisplay
Failed asserting that an array does not have the key 'args'.
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Debug/Toolbar/Collectors/DatabaseTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:97

@kenjis

Copy link
Copy Markdown
Member

How about removing the first two lines?

 1 SYSTEMPATH/Events/Events.php:149
CodeIgniter\Debug\Toolbar\Collectors\Database::collect()
2 SYSTEMPATH/Database/BaseConnection.php:636
CodeIgniter\Events\Events::trigger()

@paulbalandan

Copy link
Copy Markdown
MemberAuthor

Why?

@kenjis

Copy link
Copy Markdown
Member

These lines are DBQuery event trigger and always the same.

@kenjis

Copy link
Copy Markdown
Member

LGTM.

Screenshot 2022-01-08 5 05 19

Screenshot 2022-01-08 5 06 09

@lonnieezell

Copy link
Copy Markdown
Member

This looks good to me. Thanks everyone! Merging.

@lonnieezell
lonnieezell merged commit 67d00b3 into codeigniter4:developJan 7, 2022
kenjis pushed a commit that referenced this pull request Jan 8, 2022
@paulbalandan
paulbalandan deleted the backtrace-collector branch January 8, 2022 02:15
@kenjiskenjis mentioned this pull request Jan 8, 2022
8 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugVerified issues on the current code behavior or pull requests that will fix themhotfixrefactorPull requests that refactor code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: ErrorException: Undefined index: file: SYSTEMPATH\Debug\Toolbar\Collectors\Database.php at line 142

3 participants

@paulbalandan@kenjis@lonnieezell