Download the PHP package evo/debug without Composer

On this page you can find all versions of the php package evo/debug. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package debug

Debug for PHP

This is a fully featured debug output/print class, it's main features are

Class refrence

Properties

Name Type Required Description
$alias string no name of a given instance of Debug
$htmlOutput boolean no Switch between HTML and Text output
$depthLimit integer no Max nesting level to output
$flags bitwise no Options - see Flags
$input mixed yes Input to process (variables to debug)
$offset integer no Manual Offeset for backtracing (backtrace where debug was called from). Backtracking should be done automatically, but it may fail in some "edge" cases. This allows you to manually set the offset (see function calls for example)
$level integer no current depth level (internal use)
$objInstances array no tracking array for object instance (interal use)

Object Flags

Name Description
SHOW_CONSTANTS Include object constants in output
SHOW_PUBLIC Include public properties in output
SHOW_PROTECTED Include protected properties in output
SHOW_PRIVATE Include private properties in output
SHOW_ACCESSIBLE Include constants and public properties in output
SHOW_VISABLE Include constants and public properties and protected properties in output
SHOW_ALL Include all of the above in output

Flags are bitwise and can be set like this SHOW_CONSTANTS | SHOW_PUBLIC the same way PHP canstants for variouse things are handled. The default is SHOW_ALL

The debuger can handle any type provided by PHP's gettype().

These are output in a format much like PHP's built in var_dump as I find that the most usefull format. When in HTML output mode, debug is still returned as a string. It has a set of <pre> tags added in to preserve whitespace and string variables are ran though htmlspecialchars($input, ENT_NOQUOTES, 'UTF-8', false) as to not inject the debug data as HTML into the page.

It is circular refrence safe, unlike many of PHP's built in output function. A simple example of a circular refrence is an object that stores a refrence to itself in one of it's properties. Another example is an object that stores a refrence to a second object that stores a refrence to the first object. In PHP's built in functions, this results in infinate recursion. The Debugger instead replaces the circular refrence with a simple place holder ~CIRCULAR_REFRENCE~.

Simularaly it also has protection or limits on the depth it will look at when outputing. This limit can be set in the constructor. Once the depth limit is reached a place holder will be substitued ~DEPTH_LIMIT~.

Example

Please note that {yourpath} will be the actual path to the index file on your system. This is exteemly useful if you are like me and forget where you put all your print function.

Debug is a Multiton, or a collection wrapper for singletons. This means you cannot construct this class manually. To construct it call $D = Debug::getInstance('alias').

For ease of access you can use the procedural functions after calling Debug::regesterFunctions(). The procedural function area all named debug_{methodname}. So for example you can call $Debug->dump() with the function debug_dump(). You can access the function instance by using the Debug::ALIAS_FUNCTIONS constant, such as $instance = Debug::getInstance(Debug::ALIAS_FUNCTIONS). One would do this, for example, to change the output from text to HTML or to change the visibillity flags. Then the functions will use this instance and any custom settings you make to it.

An example of Manual offset is in the debug functions

index.php

src/functions.php

src/Debug.php

As you can see the $offset=1 for debug_dump() has a default of 1, this is set to 0 in the class itself. The reason for this (and for having a manual offset) is because we are wrapping the method call in a function. If we didn't modify the offset Debug would return the location it was called which is in the src/functions.php file on like 20. This is not what we want, we actualy want where the debug_dump functoin was called from, in this example line 8 from index.php. There is no way to know this is the intention from inside the Debug class when it builds the back trace. Because it's 1 call away from the actual class call, we set it as 1. Then Debug knows to shift the backtrace by that offset so that it displays the correct file and line number that we actually want.

Instalation

The prefer way to instal is to include it in you composer.json file as this project depends on another one of my projects named Pattern. So if you just download it directly it wont have that dependancy unless you run the composer file included in the project.

Release Notes


All versions of debug with dependencies

PHP Build Version
Package Version
Requires php Version >=8.3
evo/patterns Version @stable
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package evo/debug contains the following files

Loading the files please wait ....