laravel-user-logger maintained by topoff
- jaybizzle/crawler-detect ^1.2
- snowplow/referer-parser ~0.2
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- matomo/device-detector ^6.3.0
- php ^8.3
- laravel/pennant ^1.0
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- laravel/pennant ^1.0
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- snowplow/referer-parser ~0.2
- php ^8.3
- jaybizzle/crawler-detect ^1.2
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/cache *
- illuminate/log *
- snowplow/referer-parser ~0.2
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.3.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^6.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^5.0
- illuminate/support *
- illuminate/database *
- illuminate/filesystem *
- illuminate/encryption *
- illuminate/cache *
- illuminate/hashing *
- illuminate/log *
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^5.0
- illuminate/support ^8.0|^9.0|^10.0
- illuminate/database ^8.0|^9.0|^10.0
- illuminate/filesystem ^8.0|^9.0|^10.0
- illuminate/encryption ^8.0|^9.0|^10.0
- illuminate/cache ^8.0|^9.0|^10.0
- illuminate/hashing ^8.0|^9.0|^10.0
- illuminate/log ^8.0|^9.0|^10.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0
- php ^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^5.0
- illuminate/support ^8.0|^9.0
- illuminate/database ^8.0|^9.0
- illuminate/filesystem ^8.0|^9.0
- illuminate/encryption ^8.0|^9.0
- illuminate/cache ^8.0|^9.0
- illuminate/hashing ^8.0|^9.0
- illuminate/log ^8.0|^9.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0.0
- php ^7.4|^8.0
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^5.0
- illuminate/support ^7.0||^8.0
- illuminate/database ^7.0||^8.0
- illuminate/filesystem ^7.0||^8.0
- illuminate/encryption ^7.0||^8.0
- illuminate/cache ^7.0||^8.0
- illuminate/hashing ^7.0||^8.0
- illuminate/log ^7.0||^8.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v6.0.0
- php >=7.3
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^4.0
- illuminate/support ^7.0||^8.0
- illuminate/database ^7.0||^8.0
- illuminate/filesystem ^7.0||^8.0
- illuminate/encryption ^7.0||^8.0
- illuminate/cache ^7.0||^8.0
- illuminate/hashing ^7.0||^8.0
- illuminate/log ^7.0||^8.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v5.0.0
- php >=7.3
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^4.0
- illuminate/support ^7.0||^8.0
- illuminate/database ^7.0||^8.0
- illuminate/filesystem ^7.0||^8.0
- illuminate/encryption ^7.0||^8.0
- illuminate/cache ^7.0||^8.0
- illuminate/hashing ^7.0||^8.0
- illuminate/log ^7.0||^8.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^v5.0.0
- php >=7.3
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^4.0
- illuminate/support ^7.0||^8.0
- illuminate/database ^7.0||^8.0
- illuminate/filesystem ^7.0||^8.0
- illuminate/encryption ^7.0||^8.0
- illuminate/cache ^7.0||^8.0
- illuminate/hashing ^7.0||^8.0
- illuminate/log ^7.0||^8.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser dev-master#r2017-06
- topoff/user-agent-parser ^v5.0.0
- php >=7.2
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^4.0
- illuminate/support ^6.0|^7.0|^8.0
- illuminate/database ^6.0|^7.0|^8.0
- illuminate/filesystem ^6.0|^7.0|^8.0
- illuminate/encryption ^6.0|^7.0|^8.0
- illuminate/cache ^6.0|^7.0|^8.0
- illuminate/hashing ^6.0|^7.0|^8.0
- illuminate/log ^6.0|^7.0|^8.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser dev-master#r2017-06
- topoff/user-agent-parser ^4.1
- php >=7.2
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- matomo/device-detector ^4.0
- illuminate/support ^6.0|^7.0|^8.0
- illuminate/database ^6.0|^7.0|^8.0
- illuminate/filesystem ^6.0|^7.0|^8.0
- illuminate/encryption ^6.0|^7.0|^8.0
- illuminate/cache ^6.0|^7.0|^8.0
- illuminate/hashing ^6.0|^7.0|^8.0
- illuminate/log ^6.0|^7.0|^8.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser dev-master#r2017-06
- topoff/user-agent-parser ^4.0
- php >=7.2
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- piwik/device-detector ^3.12
- illuminate/support ^6.0|^7.0
- illuminate/database ^6.0|^7.0
- illuminate/filesystem ^6.0|^7.0
- illuminate/encryption ^6.0|^7.0
- illuminate/cache ^6.0|^7.0
- illuminate/hashing ^6.0|^7.0
- illuminate/log ^6.0|^7.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^2.0
- php >=7.2
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- piwik/device-detector ^3.12
- illuminate/support ^6.0|^7.0
- illuminate/database ^6.0|^7.0
- illuminate/filesystem ^6.0|^7.0
- illuminate/encryption ^6.0|^7.0
- illuminate/cache ^6.0|^7.0
- illuminate/hashing ^6.0|^7.0
- illuminate/log ^6.0|^7.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^2.0
- php >=7.2
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- piwik/device-detector ^3.12
- illuminate/support ^6.0|^7.0
- illuminate/database ^6.0|^7.0
- illuminate/filesystem ^6.0|^7.0
- illuminate/encryption ^6.0|^7.0
- illuminate/cache ^6.0|^7.0
- illuminate/hashing ^6.0|^7.0
- illuminate/log ^6.0|^7.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^2.0
- php >=7.2
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- piwik/device-detector ^3.12
- illuminate/support ^6.0|^7.0
- illuminate/database ^6.0|^7.0
- illuminate/filesystem ^6.0|^7.0
- illuminate/encryption ^6.0|^7.0
- illuminate/cache ^6.0|^7.0
- illuminate/hashing ^6.0|^7.0
- illuminate/log ^6.0|^7.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^2.0
- php >=7.2
- jaybizzle/crawler-detect ^1.2
- jenssegers/agent ^2.6
- piwik/device-detector ^3.12
- illuminate/support ^6.0
- illuminate/database ^6.0
- illuminate/filesystem ^6.0
- illuminate/encryption ^6.0
- illuminate/cache ^6.0
- illuminate/hashing ^6.0
- illuminate/log ^6.0
- ua-parser/uap-php ^3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ^2.0
- php >=7.2
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.12
- laravel/framework 5.6 - 6.2
- ua-parser/uap-php ~3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ~2.0
- php >=7.2
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.12
- laravel/framework 5.6 - 6.2
- ua-parser/uap-php ~3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ~2.0
- php >=7.2
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.12
- laravel/framework ~5.6|5.7|5.8|6.0
- ua-parser/uap-php ~3.9
- snowplow/referer-parser ~0.2
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6|5.7|5.8
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6|5.7
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=7.0
- jaybizzle/crawler-detect ~1.2
- jenssegers/agent ~2.6
- piwik/device-detector ^3.11
- laravel/framework ~5.6
- ua-parser/uap-php ~3.5
- snowplow/referer-parser ~0.1
- topoff/user-agent-parser ~2.0
- php >=5.3.7
- laravel/framework ~5
- jenssegers/agent ~2.1
- jaybizzle/crawler-detect ~1.0
Laravel User Logger
Laravel User Logger with Pennant-based experiment measurement.
Requirements
- Laravel
laravel/pennant
Installation
Using Composer is currently the only supported way to install this package.
composer require topoff/laravel-user-logger
Getting started
Publish the package config:
php artisan vendor:publish --tag=config
If you want to, create a dedicated user-logger database connection in config/database.php:
'user-logger' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'userlogger',
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
Run migrations:
php artisan migrate
Set up Pennant (required for experiment variant storage/resolution):
php artisan vendor:publish --provider="Laravel\Pennant\PennantServiceProvider"
Then set the Pennant DB connection to your user-logger connection in config/pennant.php:
'stores' => [
'database' => [
'driver' => 'database',
'connection' => 'user-logger',
'table' => 'features',
],
],
Run migrations again so the Pennant features table is created:
php artisan migrate
Experiments
Experiment measurement uses laravel/pennant. Configure tracked features in config/user-logger.php:
'experiments' => [
'enabled' => true,
'features' => [
'landing-page-headline',
'checkout-flow',
],
'conversion_events' => [
'conversion',
],
'conversion_entity_types' => [],
'nova' => [
'enabled' => true,
],
'pennant' => [
'store' => 'user-logger',
'connection' => 'user-logger',
'table' => 'pennant_features',
'auto_install' => true,
'scope' => 'session',
],
],
Pennant storage is installed by this package via migrations on the user-logger connection (pennant_features table).
This makes feature resolutions shareable across multiple apps that point to the same user-logger database.
With auto_install=true (default), the package also creates the Pennant table automatically at boot if it is missing.
Flush all measured experiment data:
php artisan user-logger:flush
Nova
When Nova is installed and experiments.nova.enabled is true, the package auto-registers the ExperimentMeasurement Nova resource.
If your app defines a fully custom Nova::mainMenu(...), you must also add the resource manually in that menu.
Testing
composer test
Performance Profiling
You can enable runtime profiling logs in config/user-logger.php:
'performance' => [
'enabled' => true,
'log_queries' => true,
'slow_ms' => 500,
],
When enabled, the package logs:
- total request duration (
request_duration_ms) - server-side time until response - user-logger boot duration (
boot_duration_ms) - user-logger internal segment timings (
user_logger.segments) - optional query counters (
queries_total,queries_user_logger) - skip reason (
skip_reason) when logging is bypassed
Slow request warnings can be emitted with slow_ms (set 0 to disable warnings).
User-Agent Parsing Performance
matomo/device-detector supports cache-backed parsing:
'user_agent' => [
'cache' => true,
],
cache: uses Laravel's default cache store to speed up parser internals.
The package automatically skips DeviceDetector bot matching when the request was already classified as a crawler via CrawlerDetect.
Update
This package uses https://github.com/snowplow-referer-parser/referer-parser. Use that repository to update the known referer list when needed.