violet88 / bugsnag-silverstripe-vue
A module to use Bugsnag in SilverStripe projects together with Bugsnag for Vue.
Installs: 133
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 6
Type:silverstripe-vendormodule
Requires
- php: ^7.4 || ^8.0
- bugsnag/bugsnag: ^3.0
- guzzlehttp/guzzle: ^5.0|^6.0|^7.0
- npm-asset/bugsnag-js: v7.18.0
- npm-asset/bugsnag-vue: 1.0.1
- silverstripe/admin: ^1.0 || ^2.0
- silverstripe/framework: ^4.0 || ^5.0
- silverstripe/recipe-cms: ^4 || ^5
Requires (Dev)
- phpunit/phpunit: ^9.5.24
- squizlabs/php_codesniffer: ^3.0
- dev-master / 2.x-dev
- v2.0.1
- v2.0.0
- v1.0.1
- v1.0
- dev-development
- dev-dependabot/npm_and_yarn/json5-2.2.3
- dev-dependabot/composer/silverstripe/versioned-admin-1.11.1
- dev-dependabot/composer/silverstripe/framework-4.11.14
- dev-dependabot/composer/silverstripe/cms-4.11.3
- dev-dependabot/composer/silverstripe/assets-1.11.1
- dev-dependabot/composer/silverstripe/admin-1.11.3
This package is auto-updated.
Last update: 2025-02-25 09:15:58 UTC
README
Requirements
- SilverStripe ^4.0
- silverstripe/framework
- bugsnag/bugsnag
- guzzlehttp/guzzle
- silverstripe/admin
Dev requirements
NPM Requirements
Installation
To install, first add the following to your composer.json
"repositories": [ { "type": "composer", "url": "https://asset-packagist.org" } ],
after that run the following command
composer require violet88/bugsnag-silverstripe-vue
After installing the composer package, it is important to install the node dependencies of the module. To make this easier add the following to your composer.json
"scripts": { "install-bugsnag-packages": [ "cd vendor/violet88/bugsnag-silverstripe-vue && npm install" ] }
And run the command:
composer install-bugsnag-packages
License
See License
Documentation
Configuration
For base use, add the following to your .env file
When running local, to prevent Bugsnag from being filled with errors, set BUGSNAG_ACTIVE to false OR do not declare it. (If not declared messages will also not be sent to Bugsnag.
BUGSNAG_API_KEY=<YOUR BUGSNAG API KEY> BUGSNAG_STANDARD_SEVERITY=<STANDARD SEVERITY LEVEL FOR BUGSNAG (info OR warning OR error)> BUGSNAG_ACTIVE=<true OR false, depending on whether bugsnag should be ACTIVE>
For using the BugsnagLogger as the standard error logger, add the following to your configuration yaml
SilverStripe\Core\Injector\Injector: Psr\Log\LoggerInterface: calls: BugsnagHandler: [pushHandler, ['%$BugsnagHandler']] BugsnagHandler: class: Violet88\BugsnagModule\BugsnagLogger constructor: - '%$Violet88\BugsnagModule\Bugsnag'
For using the CLI command to sent your current release revision to Bugsnag, add the following to your routes yaml
SilverStripe\Control\Director: rules: 'bugsnag//build': 'Violet88\BugsnagModule\BugsnagController' 'bugsnag//initial': 'Violet88\BugsnagModule\BugsnagController'
For the Vue part of the module to work you have to run:
npm install dotenv webpack webpack-bugsnag-plugins
and add the following to your webpack.mix.js
require('dotenv').config(); let webpack = require('webpack'); const { BugsnagSourceMapUploaderPlugin } = require('webpack-bugsnag-plugins'); const PACKAGE_VERSION = process.env.npm_package_version let dotenvplugin = new webpack.DefinePlugin({ 'process.env': { 'BUGSNAG_API_KEY': JSON.stringify(process.env.BUGSNAG_API_KEY), 'BUGSNAG_ACTIVE': JSON.stringify(process.env.BUGSNAG_ACTIVE), 'VERSION': JSON.stringify(PACKAGE_VERSION) } }); mix.options({legacyNodePolyfills: false}) mix.webpackConfig({ output: { library: 'BugsnagVue', libraryTarget: 'umd', umdNamedDefine: true, globalObject: 'this' }, plugins: [ dotenvplugin, new BugsnagSourceMapUploaderPlugin({ apiKey: process.env.BUGSNAG_API_KEY, appVersion: PACKAGE_VERSION ?? '1.0.0', overwrite: true, publicPath: '*' }) ] });
Also make sure you generate the sourcemaps, for example by adding .sourceMaps(true, 'source-map')
between mix.js()). This could look as follows:
mix.sourceMaps(true, 'source-map').js([ `${theme}/javascript/bundle.js`, //'vendor/violet88/silverstripe-bugsnag-module-vue/src/js/BugsnagVue.js' ], `${theme}/dist/js/bundle.js`);
After that add the following to your root composer.json
"scripts": { "install-bugsnag-packages": "cd vendor/violet88/bugsnag-silverstripe-vue && npm install" }
and run the following command
composer run-script install-bugsnag-packages
Basic usage
PHP
For sending a basic error to Bugsnag, use the following code
use Violet88\BugsnagModule\Bugsnag; use Exception; use SilverStripe\Core\Injector\Injector; try{ //do something } catch (Exception $e) { $bugsnag = Injector::inst()->get(Bugsnag::class); $bugsnag->sendException($e); }
Javascript
For sending a basic error to Bugsnag, use the following code
// Here it is important that the require is pointing to the correct path. Point it to the path where you've installed the composer package. const Bugsnag = require('/vendor/Violet88/BugsnagVueModule/src/js/BugsnagVue.js'); Bugsnag.start(); try{ something.risky(); }catch(e){ Bugsnag.notify(e); }
Maintainers
- Sven van der Zwet s.vanderzwet@student.avans.nl
Bugtracker
Bugs are tracked in the issues section of this repository. Before submitting an issue please read over existing issues to ensure yours is unique.
If the issue does look like a new bug:
- Create a new issue
- Choose the issue template for 'Bugs'
- Follow the instructions in the template
Please report security issues to the module maintainers directly. Please don't file security issues in the bugtracker.
Development and contribution
If you would like to make contributions to the module please ensure you raise a pull request and discuss with the module maintainers.
Feel free to join the community on slack: Join Slack