PHPackages                             jaedb/dev-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jaedb/dev-tools

Abandoned → [plasticstudio/dev-tools](/?search=plasticstudio%2Fdev-tools)Silverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

jaedb/dev-tools
===============

Development tools for SilverStripe

2.0.0(8y ago)0398[2 issues](https://github.com/jaedb/dev-tools/issues)BSD-3-ClauseScheme

Since Feb 15Pushed 8y ago2 watchersCompare

[ Source](https://github.com/jaedb/dev-tools)[ Packagist](https://packagist.org/packages/jaedb/dev-tools)[ Docs](http://plasticstudio.co.nz)[ RSS](/packages/jaedb-dev-tools/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (3)Versions (16)Used By (0)

Description
===========

[](#description)

Adds additional functionality to assist in developing SilverStripe websites.

Dependencies
============

[](#dependencies)

- SilverStripe 3.1+
- Betterbuttons

Features
========

[](#features)

- Performance of page loads
- Visualisation of current site state (DEV/TEST/LIVE)
- Admins can emulate any other user
- `IconSelectField` to use icon libraries within the CMS
- Automatic redirection from development domains, when in LIVE mode
- `LogJam` logging to append system error log
- BugHerd integration

Installation
============

[](#installation)

1. Add to your composer requirements `composer require jaedb/dev-tools`
2. Edit your theme's `templates/Page.ss` template and add `$DebugTools` immediately before the `` tag
3. Run /dev/build?flush=1
4. Toggle debug tools by turning your site to DEV or TEST modes (disabled on LIVE sites for obvious reasons)
5. Set the site's *BugHerd* project key in `config.yml`. See [config/dev-tools.yml](https://github.com/PlasticStudio/dev-tools/blob/master/_config/dev-tools.yml) for an example.

Usage
=====

[](#usage)

### Primary domain redirection

[](#primary-domain-redirection)

When you set your `SS_PRIMARY_DOMAIN` property on a `live` website, we automatically redirect to this primary domain. This avoids the need for bloated .htaccess redirections and allows control at the environment level.

- Set your preferred domain in `_ss_environment.php`
- Consider whether you want http vs https, and include this in your domain (but exclude trailing slash!).
- Example: `define('SS_PRIMARY_DOMAIN', 'https://plasticstudio.co.nz');` will redirect  to .
- To completely disable this functionality set `disable_primary_domain_redirection: true` in your project's `config.yml`

### Debug Tools

[](#debug-tools)

[![Debug tools](https://raw.githubusercontent.com/PlasticStudio/dev-tools/master/source/screenshot-debugtools.jpg)](https://raw.githubusercontent.com/PlasticStudio/dev-tools/master/source/screenshot-debugtools.jpg)

- Manage the visibility of the Debug Tools from within the CMS, under *Settings*
- Manage ability to Emulate users, also under *Settings*

### IconSelectField

[](#iconselectfield)

[![IconSelectField](https://raw.githubusercontent.com/PlasticStudio/dev-tools/master/source/screenshot-iconselectfield.jpg)](https://raw.githubusercontent.com/PlasticStudio/dev-tools/master/source/screenshot-iconselectfield.jpg)

- Set your `$db` field to type `Icon` (eg `'PageIcon' => 'Icon'`)
- `IconSelectField::create($name, $title, $iconFolder)`
- `$name` is the database field as defined in your class
- `$title` is the label for this field
- `$iconFolder` (optional) defines the directory where your icons can be found. Defaults to `/site/icons`.
- Use your icon in templates as you would any other property (eg `$PageIcon`). If your icon is an SVG, the SVG image data will be injected into the template. To prevent this, you can call `$PageIcon.IMG` instead to enforce use of `` tags.

### LogJam

[](#logjam)

- `LogJam::Log($message, $environment)`
- `$message` a string that you'd like to log
- `$environment` (optional) the type of environment that should log this message (ie *test*, *dev*, *live*). Defaults to `dev`.

1. Enable LogJam in `_config.php` by adding `LogJam::EnableLog();`
2. Check your log file location. Set this in `_ss_environment.php` with the following:

```
ini_set('log_errors','on');
ini_set('error_log','/home/mywebsite/logs/php.log');

```

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 94.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~28 days

Total

14

Last Release

3051d ago

Major Versions

1.3.1 → 2.0.02018-01-12

### Community

Maintainers

![](https://www.gravatar.com/avatar/2371dec2a32ba3e67a9e741e601722995688a3991b2a8092de9a75fb88e27cf0?d=identicon)[jaedb](/maintainers/jaedb)

---

Top Contributors

[![jaedb](https://avatars.githubusercontent.com/u/1711444?v=4)](https://github.com/jaedb "jaedb (55 commits)")[![stevePlasticStudio](https://avatars.githubusercontent.com/u/13824233?v=4)](https://github.com/stevePlasticStudio "stevePlasticStudio (3 commits)")

---

Tags

silverstripe

### Embed Badge

![Health badge](/badges/jaedb-dev-tools/health.svg)

```
[![Health](https://phpackages.com/badges/jaedb-dev-tools/health.svg)](https://phpackages.com/packages/jaedb-dev-tools)
```

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M83](/packages/silverstripe-userforms)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46299.9k9](/packages/symbiote-silverstripe-advancedworkflow)[lekoala/silverstripe-cms-actions

Add actions to your models in SilverStripe

39317.0k29](/packages/lekoala-silverstripe-cms-actions)[silverstripe/sharedraftcontent

Share draft page content with non-CMS users

21419.6k11](/packages/silverstripe-sharedraftcontent)[lekoala/silverstripe-softdelete

Soft delete extension for SilverStripe

11212.9k](/packages/lekoala-silverstripe-softdelete)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
