Διαμόρφωση Tracy

Όλα τα παραδείγματα προϋποθέτουν τη δημιουργία ενός ψευδώνυμου:

use Tracy\Debugger;

Καταγραφή σφαλμάτων

$logger = Debugger::getLogger();

// e-mail στο οποίο αποστέλλονται οι ειδοποιήσεις για την εμφάνιση σφάλματος
$logger->email = 'dev@example.com';      // (string|string[]) προεπιλογή είναι μη ορισμένο

// αποστολέας του e-mail
$logger->fromEmail = 'me@example.com';   // (string) προεπιλογή είναι μη ορισμένο

// ρουτίνα που εξασφαλίζει την αποστολή του email
$logger->mailer = /* ... */;             // (callable) προεπιλογή είναι η αποστολή με τη συνάρτηση mail()

// μετά από πόσο συντομότερο χρονικό διάστημα να αποσταλεί το επόμενο email;
$logger->emailSnooze = /* ... */;        // (string) προεπιλογή είναι '2 days'

// για ποια επίπεδα σφαλμάτων καταγράφεται και το BlueScreen;
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // προεπιλογή είναι 0 (κανένα επίπεδο σφάλματος)

Συμπεριφορά dump()

// μέγιστο μήκος του string
Debugger::$maxLength = 150;              // (int) προεπιλογή ανάλογα με την έκδοση Tracy

// μέγιστο βάθος εμφώλευσης
Debugger::$maxDepth = 10;                // (int) προεπιλογή ανάλογα με την έκδοση Tracy

// απόκρυψη τιμών αυτών των κλειδιών (από Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) προεπιλογή είναι []

// οπτικό θέμα (από Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) προεπιλογή είναι 'light'

// εμφάνιση του μέρους όπου κλήθηκε η συνάρτηση dump();
Debugger::$showLocation = /* ... */;     // (bool) προεπιλογή ανάλογα με την έκδοση Tracy

Άλλα

// σε λειτουργία ανάπτυξης, εμφανίζει σφάλματα τύπου notice ή warning ως BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) προεπιλογή είναι false, είναι δυνατό να επιλεγούν μόνο ορισμένα επίπεδα σφαλμάτων (π.χ. E_USER_DEPRECATED | E_DEPRECATED)

// εμφάνιση σιωπηλών (@) μηνυμάτων σφάλματος;
Debugger::$scream = /* ... */;           // (bool|int) προεπιλογή είναι false, από την έκδοση 2.9 είναι δυνατό να επιλεγούν μόνο ορισμένα επίπεδα σφαλμάτων (π.χ. E_USER_DEPRECATED | E_DEPRECATED)

// μορφή συνδέσμου για άνοιγμα στον editor
Debugger::$editor = /* ... */;           // (string|null) προεπιλογή είναι 'editor://open/?file=%file&line=%line'

// διαδρομή προς το template με προσαρμοσμένη σελίδα για το σφάλμα 500
Debugger::$errorTemplate = /* ... */;    // (string) προεπιλογή είναι μη ορισμένο

// εμφάνιση του Tracy Bar;
Debugger::$showBar = /* ... */;          // (bool) προεπιλογή είναι true

Debugger::$editorMapping = [
	// αρχικό => νέο
	'/var/www/html' => '/data/web',
	'/home/web' => '/srv/html',
];

Nette Framework

Αν χρησιμοποιείτε το Nette Framework, μπορείτε να διαμορφώσετε την Tracy και να προσθέσετε νέα πάνελ στο Tracy Bar επίσης μέσω του αρχείου διαμόρφωσης. Στη διαμόρφωση, μπορείτε να ορίσετε παραμέτρους και επίσης να προσθέσετε νέα πάνελ στο Tracy Bar. Αυτές οι ρυθμίσεις εφαρμόζονται μόνο μετά τη δημιουργία του DI container, οπότε τα σφάλματα που προκύπτουν πριν από αυτό δεν μπορούν να τις αντικατοπτρίζουν.

Διαμόρφωση καταγραφής σφαλμάτων:

tracy:
	# e-mail στο οποίο αποστέλλονται οι ειδοποιήσεις για την εμφάνιση σφάλματος
	email: dev@example.com           # (string|string[]) προεπιλογή είναι μη ορισμένο

	# αποστολέας του e-mail
	fromEmail: robot@example.com     # (string) προεπιλογή είναι μη ορισμένο

	# χρόνος αναβολής αποστολής e-mail (από Tracy 2.8.8)
	emailSnooze: ...                 # (string) προεπιλογή είναι '2 days'

	# χρήση του Nette mailer για την αποστολή e-mail; (από Tracy 2.5)
	netteMailer: ...                 # (bool) προεπιλογή είναι true

	# για ποια επίπεδα σφαλμάτων καταγράφεται και το BlueScreen;
	logSeverity: [E_WARNING, E_NOTICE]  # προεπιλογή είναι []

Διαμόρφωση συμπεριφοράς της συνάρτησης dump():

tracy:
	# μέγιστο μήκος του string
	maxLength: 150                # (int) προεπιλογή ανάλογα με την έκδοση Tracy

	# μέγιστο βάθος εμφώλευσης
	maxDepth: 10                  # (int) προεπιλογή ανάλογα με την έκδοση Tracy

	# απόκρυψη τιμών αυτών των κλειδιών (από Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) προεπιλογή είναι []

	# οπτικό θέμα (από Tracy 2.8)
	dumpTheme: dark               # (light|dark) προεπιλογή είναι 'light'

	# εμφάνιση του μέρους όπου κλήθηκε η συνάρτηση dump();
	showLocation: ...             # (bool) προεπιλογή ανάλογα με την έκδοση Tracy

Εγκατάσταση επεκτάσεων Tracy:

tracy:
	# προσθέτει πάνελ στο Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# προσθέτει πάνελ στο BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Άλλες επιλογές:

tracy:
	# σε λειτουργία ανάπτυξης, εμφανίζει σφάλματα τύπου notice ή warning ως BlueScreen
	strictMode: ...           # προεπιλογή είναι true

	# εμφάνιση σιωπηλών (@) μηνυμάτων σφάλματος;
	scream: ...               # προεπιλογή είναι false

	# μορφή συνδέσμου για άνοιγμα στον editor
	editor: ...               # (string) προεπιλογή είναι 'editor://open/?file=%file&line=%line'

	# διαδρομή προς το template με προσαρμοσμένη σελίδα για το σφάλμα 500
	errorTemplate: ...        # (string) προεπιλογή είναι μη ορισμένο

	# εμφάνιση του Tracy Bar;
	showBar: ...              # (bool) προεπιλογή είναι true

	editorMapping:
		# αρχικό: νέο
		/var/www/html: /data/web
		/home/web: /srv/html

Οι τιμές των επιλογών logSeverity, strictMode και scream μπορούν να γραφτούν ως πίνακας επιπέδων σφαλμάτων (π.χ. [E_WARNING, E_NOTICE]), ή ως έκφραση που χρησιμοποιείται στη γλώσσα PHP (π.χ. E_ALL & ~E_NOTICE).

Υπηρεσίες DI

Αυτές οι υπηρεσίες προστίθενται στο DI container:

Όνομα Τύπος Περιγραφή
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar