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.
- There should be a debugger bar or debugger mode which supplies additional information, and whose info could be added to bug reports.
- 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.
- 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?
- https://github.com/zendframework/ZendDeveloperTools
- https://packagist.org/packages/zendframework/zend-developer-tools
Symfony
- https://github.com/symfony/var-dumper
- http://symfony.com/doc/current/components/debug.html
- http://symfony.com/blog/new-in-symfony-3-2-web-debug-toolbar-and-profiler-improvements
- https://packagist.org/packages/symfony/debug
- https://packagist.org/packages/symfony/var-dumper
PHP Debug Bar
- http://phpdebugbar.com
- https://packagist.org/packages/maximebf/debugbar
- https://github.com/php-middleware/phpdebugbar
PHP Debug Console
https://github.com/Seldaek/php-console
Dontbug Debugger
https://github.com/sidkshatriya/dontbug
Kint
- https://packagist.org/packages/kint-php/kint 4.1 million installs
- Stats here are underestimated because approx 1.4 million installs happened here: https://packagist.org/packages/raveren/kint
- https://github.com/kint-php/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