Home

Awesome

Janitor

Build Status Latest Stable Version Total Downloads Scrutinizer Quality Score Code Coverage Dependency Status Support via Gittip

Janitor is a tool to help you remove unused code, routes, views and assets from your codebase.

Install

Simply run the following command via Composer:

$ composer require anahkiasen/janitor --dev

Then add Janitor's service provider to your application's local providers:

'Janitor\JanitorServiceProvider',

Usage

Command-line

You can see the various things Janitor can do by simply running:

$ php artisan list janitor

Programmatically

Janitor can also be used programmatically, in order to do so:

<?php
// Define your codebase
$codebase = new Janitor\Codebase('app');

// Create an instance of any of Janitor's analyzer classes
$analyzer = new Janitor\Services\Analyzers\ViewsAnalyzer($codebase);

// Tell it which files you wish to analyze, and run the process
$analyzer->setFiles('app/views');
$files = $analyzer->analyze();

Here, $files will be a Collection of instances of AbstractAnalyzedEntity. Its most important property is the usage property, it's an integer whose value goes from 0 (file unused) to 1 (file used). The value can vary between these two points to indicate how certain Janitor is that the file is used.

{
  "root": "/Users/foobar/Sites/foo/bar/app/views",
  "name": "_emails/feedback.twig",
  "usage": 0
}

Available analyzers

NameDescriptionStatus
ViewsAnalyzerAnalyzes your codebase and check for unused views
DatabaseAnalyzerChecks your database for dead entriesPlanned
CodebaseAnalyzerChecks your codebase for unused classes, models, etcPlanned
RoutesAnalyzerChecks your views and controllers for unused routesPlanned

Contributions and suggestions are welcome.

Testing

$ phpunit

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License AbstractAnalyzedFile for more information.