dg / dibi

Dibi - smart database abstraction layer
https://dibiphp.com
Other
487 stars 136 forks source link

Autoloading třídy \DibiNettePanel #66

Closed stekycz closed 12 years ago

stekycz commented 12 years ago

Hledal jsem důvod, proč se mi nezobrazuje Debug Panel v Nette při použití dibi bez použití statického dibi::__něco__. Přestože mám v konfiguraci Debug Panel zapnutý, nezobrazí se.

O vytvoření a napojení DibiNettePanelu se stará kontruktor ve tříde DibiConnection. Je nějaký důvod, proč je se kontrola na vytvoření panelu provádí právě takto?

<?
if (class_exists('DibiNettePanel', FALSE)) {
    $panel = new DibiNettePanel(isset($profilerCfg['explain']) ? $profilerCfg['explain'] : TRUE, $filter);
    $panel->register($this);
}
?>

Osobně bych uvítal například toto řešení:

<?
if (defined('NETTE') && class_exists('DibiNettePanel')) {
    $panel = new DibiNettePanel(isset($profilerCfg['explain']) ? $profilerCfg['explain'] : TRUE, $filter);
    $panel->register($this);
}
?>

Pokud mám projekt postavený na Nette, tak se použije pro DibiNettePanel autoloading a všechno krásně běží. Pokud Nette používám jen jako pomocnou knihovnu, tak mě to zajímat nemusí, protože konstanta NETTE je edfinována v loader.php, který v tomto případě nepoužiju. A pokud panel pro Dibi nechci vůbec, tak to jednoduše vypnu v konfiguraci.

Pokud mám poslat Pull Request, stačí komentář.

Vrtak-CZ commented 12 years ago

Pokud používáš dibi v Nette je daleko lepší ho "integrovat" pomocí DibiNetteExtension viz.: http://pla.nette.org/cs/nette-database-vs-dibi#toc-pouziti-dibi

stekycz commented 12 years ago

V tom případě není o čem. Podle návodu mě původně ani nenapadlo, že použití přímo DibiConnection může mít vliv na panel. Nemělo by to i tak fungovat?