steevanb / doctrine-stats
Count managed and lazy loaded entities, hydration time etc
Installs: 78 072
Dependents: 1
Suggesters: 1
Security: 0
Stars: 70
Watchers: 6
Forks: 8
Open Issues: 3
Requires
- php: ^7.1 || ^8.0
- doctrine/orm: ^2.4.8
Requires (Dev)
- doctrine/persistence: ^2.0
- phpunit/phpunit: 8.5.*
- steevanb/php-backtrace: ^2.0
- symfony/config: ^5.0
- symfony/console: 5.3.*
- symfony/dependency-injection: ^5.0
- symfony/http-foundation: ^5.0
- symfony/http-kernel: ^5.0
Suggests
- steevanb/composer-overload-class ^1.0: Add hydration time to statistics
- steevanb/php-backtrace ^1.1: Add backtrace to queries
README
doctrine-stats
Add important Doctrine statistics:
- Count managed entities
- Count lazy loaded entities
- Hydration time by hydrator and query
- Group queries by query string, show differents parameters used by same query string
- Count different query string used
Installation
composer require --dev steevanb/doctrine-stats ^2.0
If you want to add hydration time to your statistics:
composer.json
{ "autoload": { "psr-4": { "ComposerOverloadClass\\": "var/cache/ComposerOverloadClass" } }, "scripts": { "pre-autoload-dump": "steevanb\\ComposerOverloadClass\\OverloadClass::overload" }, "extra": { "composer-overload-cache-dir": "var/cache", "composer-overload-class-dev": { "Doctrine\\ORM\\Internal\\Hydration\\ArrayHydrator": { "original-file": "vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php", "overload-file": "vendor/steevanb/doctrine-stats/src/Bridge/ComposerOverloadClass/Doctrine/ORM/Internal/ArrayHydrator.php" }, "Doctrine\\ORM\\Internal\\Hydration\\ObjectHydrator": { "original-file": "vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php", "overload-file": "vendor/steevanb/doctrine-stats/src/Bridge/ComposerOverloadClass/Doctrine/ORM/Internal/ObjectHydrator.php" }, "Doctrine\\ORM\\Internal\\Hydration\\ScalarHydrator": { "original-file": "vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ScalarHydrator.php", "overload-file": "vendor/steevanb/doctrine-stats/src/Bridge/ComposerOverloadClass/Doctrine/ORM/Internal/ScalarHydrator.php" }, "Doctrine\\ORM\\Internal\\Hydration\\SimpleObjectHydrator": { "original-file": "vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php", "overload-file": "vendor/steevanb/doctrine-stats/src/Bridge/ComposerOverloadClass/Doctrine/ORM/Internal/SimpleObjectHydrator.php" }, "Doctrine\\ORM\\Internal\\Hydration\\SingleScalarHydrator": { "original-file": "vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SingleScalarHydrator.php", "overload-file": "vendor/steevanb/doctrine-stats/src/Bridge/ComposerOverloadClass/Doctrine/ORM/Internal/SingleScalarHydrator.php" } } } }
composer dumpautoload
Symfony 2.x, 3.x and 4.x integration
Read Installation paragraph before.
# app/AppKernel.php class AppKernel { public function registerBundles() { if ($this->getEnvironment() === 'dev') { $bundles[] = new \Steevanb\DoctrineStats\Bridge\DoctrineStatsBundle\DoctrineStatsBundle(); } } }
If you want to add lazy loaded entities to your statistics:
# app/config/config_dev.yml parameters: doctrine.orm.entity_manager.class: Steevanb\DoctrineStats\Doctrine\ORM\EntityManager
Manual integration
To retrieve statistics, you need to register Steevanb\DoctrineStats\EventSubscriber\DoctrineEventSubscriber
in your event manager.
If you want to add lazy loaded entities to your statistics, you need to overload default EntityManager, with Steevanb\DoctrineStats\Doctrine\ORM\EntityManager
.