Loading...
 

Debugging tools deployable within Tiki


Let's make Tiki debugging tools more accessible and powerful so more developers of all skill levels can and want to use them.

Different developers have different desktop tools. This can work fine when they are working locally with a copy of the data.

Sometimes:

  • An issue is not reproducible on the developer's machine
  • Getting a copy of production data is not possible or practical
  • We need developers to get additional information via a screenshare (power user will show them the bug) and dev doesn't have tiki_p_admin nor SSH access.

Thus, debugging directly on the production server is necessary. And sometimes, it's not possible to install Xdebug.

  1. There should be a debugger bar or debugger mode which supplies additional information, and whose info could be added to bug reports.
  2. When running console.php, there should be a debug or super verbose flag to provide similar additional info. Ex. when there is an error message in index:rebuild, it should be easy to know on which URL it was triggered.
  3. Have a more global way to have debugging info, instead of putting in source, which is sometimes forgotten


Also, we sometimes run into issues for developers to help other developers because sometimes it's a Mac vs GNU / Linux vs Windows thing... By being Web-based in Tiki, we could have developers collaborating in real time via http://wikisuite.org/Openfire-Meetings

Also, for new Tiki developers that don't have a preferred IDE: it would be nice that they could get started without installing something on their desktop.

This should work wherever Tiki runs (ex.: on a Windows server)

Thus, the proposed plan is to have one recipe for debugging Tiki within Tiki. This could be an optional install via the Composer Web Installer.

This should make the old Debugger Console obsolete.

"PHP 7 changes how most errors are reported by PHP. Instead of reporting errors through the traditional error reporting mechanism used by PHP 5, most errors are now reported by throwing Error exceptions."
http://php.net/manual/en/language.errors.php7.php

If completely server side is not ideal, any benefit to go with a browser plugin?
https://www.drupal.org/project/drupalforfirebug

Options

PsySH

phpdbg

  • Integrated in PHP

http://phpdbg.com/
https://github.com/php/php-src/tree/master/sapi/phpdbg

Tracy

https://github.com/nette/tracy
http://processwire.com/blog/posts/introducing-tracy-debugger/
https://packagist.org/packages/tracy/tracy (over 1 million installs)

Zend\Debug

Zend Developer Tools

This is for zend-mvc debugging. Can this help Tiki?

Symfony

PHP Debug Bar

PHP Debug Console

https://github.com/Seldaek/php-console

Dontbug Debugger

https://github.com/sidkshatriya/dontbug

Kint

Clockwork

php-console


RemoteDebug

"RemoteDebug is an initiative to bring a common remote debugging protocol to today's browsers. The vision is to enable a new generation of DevTools and editors that are able to communicate independently of their vendor."
https://remotedebug.org/
https://kenneth.io/blog/2016/07/05/introducing-remotedebug-compatibility-tables/

Atom Editor

Atom is a great hackable editor that fits the needs of a professional software developer. Since it's based on Electron, it could be launched in a browser. In fact, that has been done: https://www.rollapp.com/app/atom. It should be possible to debug and edit code of a Tiki installation running Atom editor in the browser, served by the same Tiki instance.

OpenVSCode Server

https://www.gitpod.io/blog/openvscode-server-launch

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Kanban
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Federated Timesheets
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools