Skip to content
/ skeleton-nova-tool Public template

A skeleton repository for Spatie's Nova Packages

License

Notifications You must be signed in to change notification settings

spatie/skeleton-nova-tool

Repository files navigation

Support us

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Using this skeleton (remove this section after you have completed these steps)


This repo can be used to scaffold a Laravel package. Follow these steps to get started:

  1. Press the "Use this template" button at the top of this repo to create a new repo with the contents of this skeleton.
  2. Run "php ./configure.php" to run a script that will replace all placeholders throughout all the files.
  3. Have fun creating your package.
  4. If you need help creating a package, consider picking up our Laravel Package Training video course.

Manual Setup

This repo contains a skeleton to easily create Nova Tool packages. It contains a few niceties not present in the default Nova Tool scaffolding.

First clone this repo to your development machine and remove the .git directory. Next run git init to create another repo. Create a new repo on GitHub (or another source control saas) and point the origin remote of your cloned repo to the one you just created. Here's an example: git remote add origin git@github.com:spatie/newly-created-repo.git. Commit all files and push to master.

Next replace these variables in all files of your repo:

  • :author_name (example: 'Freek Van der Herten')
  • :author_username (example: 'freekmurze')
  • :author_email (example: 'freek@spatie.be')
  • :package_name (example: 'nova-tail-tool')
  • :package_description (example: 'A tool to tail the log')
  • :vendor (example: 'spatie')
  • :namespace_vendor (example: 'Spatie')
  • :namespace_tool_name (example: 'TailTool')

Next run composer install, yarn and yarn production.

If you don't have a Nova app already head over the nova installation instructions.

To use your customized package in a Nova app, add this line in the require section of the composer.json file:

   ":vendor/:package_name": "*",

In the same composer.json file add a repositiories section with the path to your package repo:

    "repositories": [
        {
            "type": "path",
            "url": "../:package_name"
        },

Now you're ready to develop your package inside a Nova app.

When you are done with the steps above delete everything above!

:package_description

Latest Version on Packagist CircleCI branch Build Status Quality Score Total Downloads

This is where your description should go. Try and limit it to a paragraph or two.

Add a screenshot of the tool here.

Installation

You can install the package in to a Laravel app that uses Nova via composer:

composer require :vendor/:package_name

Next up, you must register the tool with Nova. This is typically done in the tools method of the NovaServiceProvider.

// in app/Providers/NovaServiceProvider.php

// ...

public function tools()
{
    return [
        // ...
        new \:namespace_vendor\:namespace_tool_name\Tool(),
    ];
}

Usage

Click on the ":package_name" menu item in your Nova app to see the tool provided by this package.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email :author_email instead of using the issue tracker.

Postcardware

You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium.

We publish all received postcards on our company website.

Credits

License

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