All Projects β†’ Naoray β†’ Laravel Package Maker

Naoray / Laravel Package Maker

Licence: mit
Get a πŸ“¦ skeleton and all other `make` commands from laravel base for package development.

Projects that are alternatives of or similar to Laravel Package Maker

Nebula
Nebula is a minimalistic and easy to use administration tool for Laravel applications, made with Laravel, Alpine.js, and Tailwind CSS.
Stars: ✭ 190 (+113.48%)
Mutual labels:  hacktoberfest, laravel, package
Laravel Messenger
Simple user messaging package for Laravel
Stars: ✭ 2,140 (+2304.49%)
Mutual labels:  hacktoberfest, laravel, package
Skeleton Nova Tool
A skeleton repository for Spatie's Nova Packages
Stars: ✭ 191 (+114.61%)
Mutual labels:  laravel, package, skeleton
Artisan View
πŸ‘€ Manage your views in Laravel projects through artisan
Stars: ✭ 708 (+695.51%)
Mutual labels:  hacktoberfest, laravel, package
Laravel Acl
This package helps you to associate users with permissions and permission groups with laravel framework
Stars: ✭ 404 (+353.93%)
Mutual labels:  hacktoberfest, laravel, package
Laravelpackage.com
Documentation for LaravelPackage.com: Learn to create Laravel specific PHP packages from scratch, following this open documentation.
Stars: ✭ 214 (+140.45%)
Mutual labels:  hacktoberfest, laravel, package
Laravel Totem
Manage Your Laravel Schedule From A Web Dashboard
Stars: ✭ 1,299 (+1359.55%)
Mutual labels:  hacktoberfest, laravel, package
Comments
Native comments for your Laravel application.
Stars: ✭ 390 (+338.2%)
Mutual labels:  hacktoberfest, laravel, package
Laravel Translatable
A Laravel package for multilingual models
Stars: ✭ 624 (+601.12%)
Mutual labels:  hacktoberfest, laravel, package
Laravel Packager
A cli tool for creating Laravel packages
Stars: ✭ 1,049 (+1078.65%)
Mutual labels:  hacktoberfest, laravel, package
Laravel Ecommerce
AvoRed an Open Source Laravel Shopping Cart
Stars: ✭ 1,151 (+1193.26%)
Mutual labels:  hacktoberfest, laravel
Laravel Philips Hue
Laravel Philips Hue package to control your lights with remote support
Stars: ✭ 67 (-24.72%)
Mutual labels:  hacktoberfest, laravel
Watchable
Enable users to watch various models in your application.
Stars: ✭ 65 (-26.97%)
Mutual labels:  laravel, package
Laravel Packme
A CLI starter pack for developing a package with Laravel 5
Stars: ✭ 64 (-28.09%)
Mutual labels:  laravel, package
Picasso
Laravel Image Management and Optimization Package
Stars: ✭ 70 (-21.35%)
Mutual labels:  laravel, package
Laravel Mentions
End-to-end mentions in Laravel 5.
Stars: ✭ 68 (-23.6%)
Mutual labels:  laravel, package
Laravel Ownership
Laravel Ownership simplify management of Eloquent model's owner.
Stars: ✭ 71 (-20.22%)
Mutual labels:  laravel, package
Env Providers
πŸ‘· Load Laravel service providers based on your application's environment.
Stars: ✭ 73 (-17.98%)
Mutual labels:  laravel, package
Manager
Implementation of the Manager pattern existing in Laravel framework
Stars: ✭ 74 (-16.85%)
Mutual labels:  laravel, package
Shield
The core shield package.
Stars: ✭ 60 (-32.58%)
Mutual labels:  laravel, package

laravel-package-maker

Software License Total Downloads

All the make commands you use in your daily Laravel app development workflow but for packages! This package was created solely for the purpose to make package development as fast and easy as possible. Creating a new package only takes one command (make:package) and you will end up with the following file structure:

.
└── package
    β”œβ”€β”€ .codecov.yml
    β”œβ”€β”€ composer.json
    β”œβ”€β”€ CONTRIBUTING.md
    β”œβ”€β”€ .gitignore
    β”œβ”€β”€ LICENSE.md
    β”œβ”€β”€ phpunit.xml
    β”œβ”€β”€ readme.md
    β”œβ”€β”€ src
    β”‚   └── PackageServiceProvider.php
    β”œβ”€β”€ .styleci.yml
    β”œβ”€β”€ tests
    β”‚   └── TestCase.php
    └── .travis.yml

Install

composer require naoray/laravel-package-maker --dev

Usage

Create a package

php artisan make:package

make:package

Create a nova tool

php artisan make:nova

Inspired by Spatie's nova-skeleton-tool this command clones the repository, replaces all strings with your own and adds it to your own project.

make:nova

Add a package

php artisan package:add

If you have already created a package or you want to add a modified version of a package which is currently only available locally, you can use the following command to add you package to your project. It does simply add your package to your project`s composer repositories and requires a local version of it.

This command is run by make:package automatically, so you have no need to execute it after creating a package!

Save package credentials

php artisan package:save
				{namespace : Root namespace of the package (Vendor\Package_name)}
				{path : Relative path to the package's directory}

Every package:* command needs to know the package's namespace and the relative path to the location your package is stored. Because of that every package:* command comes with those two options by default. To avoid entering those two options every time a package:* command executed this command saves the credentials of your package in the cache.

Delete package credentials

php artisan package:delete

This one wipes all stored credentials from your cache.

Clone a package

php artisan package:clone
                {src : Source path of the package to clone}
                {target : Path where it should be cloned in}

The clone command clones a given repository or directory into the given target.

Replace Content

php artisan package:replace 
                {path : The path to a file or directory}
                {--O|old=* : Old strings which will be replaced}
                {--N|new=* : New strings which will be used as replacement}'

The replace command takes a path of a file or a directory and an indefinite number of 'old' options which will be replaced by the 'new' options.

Make Commands

All of these commands do have all arguments & options to which you are used to in a normal laravel app! To execute any of these commands simply add the prefix package:.

Foundation

  • channel
  • console
  • event
  • exception
  • job
  • listener
  • mail
  • model
  • notification
  • observer
  • policy
  • provider
  • request
  • resource
  • rule
  • test

Database

  • factory
  • migration
  • seeder

Routing

  • controller
  • middleware

Standard Php

All of the following routes only accept a name argument.

  • contract
  • interface (same as contract)
  • trait

Commands used for creating initial package stubs

  • package:basetest {provider : The package's provider name} - creates TestCase in tests folder
  • package:codecov - creates a .codecov.yml file
  • package:composer {--author : The author of the package.} {--email : The author's email.} - creates composer.json
  • package:contribution - creates CONTRIBUTING.md
  • package:gitignore - creates .gitignore file
  • package:license {--copyright : The company or vendor name to place it int the license file} - creates LICENSE.md file
  • package:phpunit - creates phpunit.xml
  • package:readme {--author : The author of the package.} {--email : The author's email.} - creates readme.md
  • package:styleci - creates .styleci.yml
  • package:travis - creates .travis.yml

Example Usage

Use a few make commands package:*

All arguments & options you know from the standard make commands are available. Create a model with all option. package:model --all

Testing

Run the tests with:

vendor/bin/phpunit

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

Security

If you discover any security-related issues, please email [email protected] instead of using the issue tracker.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].