Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spatie/skeleton-nova-tool
A skeleton repository for Spatie's Nova Packages
https://github.com/spatie/skeleton-nova-tool
laravel nova package php skeleton
Last synced: 3 months ago
JSON representation
A skeleton repository for Spatie's Nova Packages
- Host: GitHub
- URL: https://github.com/spatie/skeleton-nova-tool
- Owner: spatie
- License: mit
- Created: 2018-08-13T07:01:52.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2023-05-05T07:42:10.000Z (over 1 year ago)
- Last Synced: 2024-05-09T22:21:54.561Z (6 months ago)
- Topics: laravel, nova, package, php, skeleton
- Language: PHP
- Homepage: https://murze.be/introducing-our-laravel-nova-packages
- Size: 75.2 KB
- Stars: 202
- Watchers: 9
- Forks: 23
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- awesome-laravel-nova - Nova Package Skeleton Generator
README
[](https://supportukrainenow.org)
## Support us
[](https://spatie.be/github-ad-click/skeleton-nova-tool)
We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us).
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](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards).
## 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 [email protected]: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: '[email protected]')
- `: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](https://nova.laravel.com/docs/1.0/installation.html#installing-nova).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](https://img.shields.io/packagist/v/:vendor/:package_name.svg?style=flat-square)](https://packagist.org/packages/:vendor/:package_name)
![CircleCI branch](https://img.shields.io/circleci/project/github/:vendor/:package_name/master.svg?style=flat-square)
[![Build Status](https://img.shields.io/travis/:vendor/:package_name/master.svg?style=flat-square)](https://travis-ci.org/:vendor/:package_name)
[![Quality Score](https://img.shields.io/scrutinizer/g/:vendor/:package_name.svg?style=flat-square)](https://scrutinizer-ci.com/g/:vendor/:package_name)
[![Total Downloads](https://img.shields.io/packagist/dt/:vendor/:package_name.svg?style=flat-square)](https://packagist.org/packages/:vendor/:package_name)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](https://nova.laravel.com) via composer:
```bash
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`.
```php
// 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
``` bash
composer test
```## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) 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](https://spatie.be/en/opensource/postcards).
## Credits
- [:author_name](https://github.com/:author_username)
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.