PHPackages                             gergo-tar/laravel-package-skeleton - 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. gergo-tar/laravel-package-skeleton

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

gergo-tar/laravel-package-skeleton
==================================

A PHP package to scaffold Laravel package projects with best practices and code quality tools.

v1.4.0(1mo ago)01MITPHPPHP &gt;=8.3CI passing

Since Dec 21Pushed 1mo agoCompare

[ Source](https://github.com/gergo-tar/laravel-plugin-skeleton)[ Packagist](https://packagist.org/packages/gergo-tar/laravel-package-skeleton)[ Docs](https://github.com/gergo-tar/laravel-package-skeleton)[ GitHub Sponsors](https://github.com/gergo-tar)[ RSS](/packages/gergo-tar-laravel-package-skeleton/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (12)Versions (16)Used By (0)

Laravel Package Skeleton
========================

[](#laravel-package-skeleton)

[![Latest Version on Packagist](https://camo.githubusercontent.com/3bebd9d54e2c52ae3e8b8641702ebbe31ac1a3dbb4b8ef9f4cdc2e4eb2645c7e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f676572676f2d7461722f6c61726176656c2d7061636b6167652d736b656c65746f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/gergo-tar/laravel-package-skeleton)

This package provides a modern, interactive skeleton for building Laravel packages with best practices and essential development tools.

Requirements
------------

[](#requirements)

- PHP &gt;= 8.3
- Composer

🚀 How It Works
--------------

[](#-how-it-works)

1. **Clone the skeleton:**

    ```
    git clone https://github.com/gergo-tar/laravel-plugin-skeleton my-package
    cd my-package
    ```
2. **Run the configuration script:**First, run Composer's autoloader dump to ensure classes are properly loaded:

    ```
    composer dump-autoload
    ```

    Run the configurator:

    ```
    php configure.php
    ```

    - The script will prompt for author, vendor, package, and feature options.
    - Based on your selections, it generates all necessary files, and cleans up unused templates.
3. **Start developing your package!**

    - All selected features (config, migrations, commands, etc.) are ready to use.
    - Testing infrastructure (Pest) and dev tools (PHPStan, Rector, Psalm, PHPCS, PHP-CS-Fixer) are pre-configured.

✨ Available Options
-------------------

[](#-available-options)

At the start of each group you can answer **yes** to "Include/Enable ALL …?" to skip individual prompts, or answer **no** to choose one by one.

### Package Features

[](#package-features)

FeatureWhat it generatesMigrations`database/migrations/create__table.php`Config`config/.php`, published via `vendor:publish`Routes`routes/web.php`, `routes/api.php`, or bothViews`resources/views/` directoryTranslations`resources/lang/en/messages.php`Assets`resources/css/` and `resources/js/` directoriesCommands`src/Commands/Command.php`Facade`src/Facades/Facade.php`Tests`tests/Feature/`, `tests/Unit/`, `phpunit.xml`### Development Tools

[](#development-tools)

ToolPurposeCommitlint + CommitizenEnforces conventional commit messages, interactive commit CLIPintLaravel code style fixerPHPStan (Larastan)Static analysis with Laravel-specific rulesPsalmType-safety focused static analysisRectorAutomated code refactoringCoverage (Codecov)CI test coverage reporting via Codecov### GitHub Integrations

[](#github-integrations)

IntegrationWhat it generatesFunding`.github/FUNDING.yml`Security Policy`.github/SECURITY.md`Support Policy`.github/SUPPORT.md`Code of Conduct`.github/CODE_OF_CONDUCT.md`Issue Templates`.github/ISSUE_TEMPLATE/bug_report.yml` + `feature_request.yml`PR Template`.github/pull_request_template.md`🖥️ Generation Flow Examples
---------------------------

[](#️-generation-flow-examples)

### Example: full package with all options enabled

[](#example-full-package-with-all-options-enabled)

```
╔══════════════════════════════════════════════════════════════╗
║          Laravel Package Skeleton Configuration              ║
╚══════════════════════════════════════════════════════════════╝

📝 Author Information
────────────────────────────────────────────────────────────────
Author name [Gergő Tar]:
Author email [dev@gergotar.com]:
Author username (GitHub): gergotar

📦 Package Information
────────────────────────────────────────────────────────────────
Vendor name (e.g., your GitHub username or organization) [gergotar]:
Vendor namespace (e.g., YourGitHubUsernameOrOrganization) [Gergotar]:
Package name [laravel-plugin-skeleton (copy)]: laravel-feature-flags
Class name [LaravelFeatureFlags]:
Package description [This is my package laravel-feature-flags]: Feature flag management for Laravel applications
Select license
  [1] MIT
  [2] GPL-3.0
  [3] Apache-2.0
  [4] BSD-3-Clause
  [5] BSD-2-Clause
  [6] LGPL-3.0
  [7] Unlicensed
Select option [1]:

⚙️  Version Requirements
────────────────────────────────────────────────────────────────
PHP version requirement
  [1] ^8.3
  [2] ^8.4
  [3] ^8.5
  [4] ^8.3|^8.4
  [5] ^8.4|^8.5
  [6] ^8.3|^8.4|^8.5
Select option [6]:
Laravel version support
  [1] ^11
  [2] ^12
  [3] ^13
Select option [3]:
Main branch name [main]:

✨ Feature Selections
────────────────────────────────────────────────────────────────

Select features to include:

Include ALL features? (yes/no) [no]: yes

🛠️  Development Tool Selections
────────────────────────────────────────────────────────────────
Enable ALL development tools? (yes/no) [no]: yes

🐙 GitHub Integration
────────────────────────────────────────────────────────────────
Include ALL GitHub integrations? (yes/no) [no]: yes

📋 Configuration Summary
────────────────────────────────────────────────────────────────
Author       : Gergő Tar (gergotar, dev@gergotar.com)
Vendor       : gergotar (gergotar)
Package      : laravel-feature-flags
Namespace    : Gergotar\LaravelFeatureFlags
Class name   : LaravelFeatureFlags
License      : MIT
PHP Version  : ^8.3|^8.4|^8.5
Laravel      : ^13
Git Branch   : main

Features:
  Migrations     : yes
  Config         : yes
  Views          : yes
  Routes         : both
  Translations   : yes
  Assets         : yes
  Commands       : yes
  Facade         : yes

Dev Tools:
  Commitlint     : yes
  Tests          : yes
  Pint           : yes
  PHPStan        : yes
  Rector         : yes
  Psalm          : yes
  Coverage       : yes (Codecov)

GitHub Integration:
  Funding        : yes
  Security Policy: yes
  Support Policy : yes
  Code of Conduct: yes
  Issue Templates: yes
  PR Template    : yes
══════════════════════════════════════════════════════════════

Proceed with the above configuration? (yes/no) [yes]: yes

🔧 Finalizing Package Setup

Execute `composer install`? (yes/no) [yes]:

🚀 Running composer install...

No composer.lock file present. Updating dependencies to latest instead of installing from lock file.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 162 installs, 0 updates, 0 removals
Installing dependencies from lock file (including require-dev)
Generating autoload files
A config file already exists in the current directory

✅ Package structure generated successfully!

🎉 Your package is ready!

Next steps:
  1. Review the generated files
  2. Start coding in src/
  3. Write your tests in tests/
  4. Run: composer test
  5. Run: composer format
  5. Run: composer analyse

Let this script delete itself? (yes/no) [yes]:

🧹 Cleanup completed. Configuration files have been removed.

```

### Example: choosing options one by one

[](#example-choosing-options-one-by-one)

```
📝 Author Information
────────────────────────────────────────────────────────────────
Author name [Gergő Tar]:
Author email [dev@gergotar.com]:
Author username (GitHub): gergotar

📦 Package Information
────────────────────────────────────────────────────────────────
Vendor name (e.g., your GitHub username or organization) [gergotar]:
Vendor namespace (e.g., YourGitHubUsernameOrOrganization) [Gergotar]:
Package name [laravel-plugin-skeleton (another copy)]: laravel-banner-manager
Class name [LaravelBannerManager]:
Package description [This is my package laravel-banner-manager]: Manage announcement banners across a Laravel app
Select license
  [1] MIT
  [2] GPL-3.0
  [3] Apache-2.0
  [4] BSD-3-Clause
  [5] BSD-2-Clause
  [6] LGPL-3.0
  [7] Unlicensed
Select option [1]:

⚙️  Version Requirements
────────────────────────────────────────────────────────────────
PHP version requirement
  [1] ^8.3
  [2] ^8.4
  [3] ^8.5
  [4] ^8.3|^8.4
  [5] ^8.4|^8.5
  [6] ^8.3|^8.4|^8.5
Select option [6]:
Laravel version support
  [1] ^11
  [2] ^12
  [3] ^13
Select option [3]:
Main branch name [main]:

✨ Feature Selections
────────────────────────────────────────────────────────────────
Select features to include:

Include ALL features? (yes/no) [no]: no
Include migration file? (yes/no) [yes]:
Include configuration file? (yes/no) [yes]:
Include routes? (yes/no) [no]:
Include translations? (yes/no) [no]:
Include assets (CSS/JS)? (yes/no) [no]:
Include views? (yes/no) [no]:
Include Artisan command? (yes/no) [no]:
Include Facade? (yes/no) [no]:
Include test files? (yes/no) [no]:

🛠️  Development Tool Selections
────────────────────────────────────────────────────────────────
Enable ALL development tools? (yes/no) [no]:
Use commitlint, commitizen and semantic versioning? (yes/no) [yes]:
Enable Pint (code style)? (yes/no) [yes]:
Enable PHPStan (Larastan)? (yes/no) [yes]:
Enable Psalm (with psalm-plugin-laravel)? (yes/no) [yes]:
Enable Rector? (yes/no) [no]:
Enable coverage reporting (Codecov)? (yes/no) [no]:

🐙 GitHub Integration
────────────────────────────────────────────────────────────────
Include ALL GitHub integrations? (yes/no) [no]: no
Include funding information? (yes/no) [no]:
Include security policy (SECURITY.md)? (yes/no) [no]:
Include support policy (SUPPORT.md)? (yes/no) [no]:
Include code of conduct? (yes/no) [no]:
Include GitHub issue templates? (yes/no) [no]: yes
Include pull request template? (yes/no) [no]: yes

📋 Configuration Summary
────────────────────────────────────────────────────────────────
Author       : Gergő Tar (gergotar, dev@gergotar.com)
Vendor       : gergotar (gergotar)
Package      : laravel-banner-manager
Namespace    : Gergotar\LaravelBannerManager
Class name   : LaravelBannerManager
License      : MIT
PHP Version  : ^8.3|^8.4|^8.5
Laravel      : ^13
Git Branch   : main

Features:
  Migrations     : yes
  Config         : yes
  Views          : no
  Routes         : no
  Translations   : no
  Assets         : no
  Commands       : no
  Facade         : no

Dev Tools:
  Commitlint     : yes
  Tests          : no
  Pint           : yes
  PHPStan        : yes
  Rector         : no
  Psalm          : yes
  Coverage       : no

GitHub Integration:
  Funding        : no
  Security Policy: no
  Support Policy : no
  Code of Conduct: no
  Issue Templates: yes
  PR Template    : yes
══════════════════════════════════════════════════════════════

Proceed with the above configuration? (yes/no) [yes]:

🔧 Finalizing Package Setup

Execute `composer install`? (yes/no) [yes]:

🚀 Running composer install...

No composer.lock file present. Updating dependencies to latest instead of installing from lock file.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 111 installs, 0 updates, 0 removals
Installing dependencies from lock file (including require-dev)
Generating autoload files
A config file already exists in the current directory

✅ Package structure generated successfully!

🎉 Your package is ready!

Next steps:
  1. Review the generated files
  2. Start coding in src/
  3. Run: composer format
  3. Run: composer analyse

Let this script delete itself? (yes/no) [yes]:

🧹 Cleanup completed. Configuration files have been removed.

```

📁 What Gets Generated
---------------------

[](#-what-gets-generated)

Based on your selections, the configurator generates and updates:

- Package metadata (`composer.json`, optional `package.json` workflows)
- Service provider and optional package classes under `src/`
- Optional resources: `config/`, `database/migrations/`, `resources/views/`, `resources/lang/`, `resources/css/`, `resources/js/`
- Optional route files under `routes/` (API, web, or both)
- Test structure under `tests/`
- Optional GitHub governance and community templates under `.github/` (issue/PR templates, code of conduct, support, security)
- Optional quality/config files (PHPStan, Rector, Pint, commitlint, release tooling)

🧪 Useful Commands
-----------------

[](#-useful-commands)

These commands are for development in the generated package.

### Composer scripts

[](#composer-scripts)

```
composer test     # Run Pest test suite
composer stan     # Run PHPStan on configurator and tests
composer cs       # Run PHPCS checks
composer cs-fix   # Auto-fix style issues with PHP-CS-Fixer
composer rector   # Run Rector refactoring rules
composer psalm    # Run Psalm static analysis
```

Composer scripts are included in generated packages. Some scripts may be removed if you disable the related tool during configuration.

### npm scripts (optional)

[](#npm-scripts-optional)

```
npm run commit    # Interactive conventional commit (Commitizen)
npm run release   # Version/changelog release (standard-version)
```

These npm scripts are only generated when you enable commitlint/commitizen/semantic versioning in the configurator.

📦 Usage
-------

[](#-usage)

- After configuration, your package is ready for local development or publishing.
- See [`CONFIGURATION`](./CONFIGURATION.md) for a full guide to the configuration process and available features.

🧾 Versioning and Changelog
--------------------------

[](#-versioning-and-changelog)

- Conventional commit workflow is supported via Commitizen + Commitlint.
- Release notes/changelog can be generated with `standard-version`.
- Changelog formatting is additionally supported by `cliff.toml`.

📄 License
---------

[](#-license)

MIT. See [LICENSE](LICENSE.md) for more information.

---

**Your package, your way, in seconds! 🚀**

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance93

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 79.1% 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 ~160 days

Total

2

Last Release

35d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/31fe1d8a71e7dd17a24e52430616f823a6937c57e279555993cc9eaf9a976c82?d=identicon)[tgalfa](/maintainers/tgalfa)

---

Top Contributors

[![gergo-tar](https://avatars.githubusercontent.com/u/13517318?v=4)](https://github.com/gergo-tar "gergo-tar (34 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (8 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

phplaravelpackagescaffoldSkeleton

###  Code Quality

TestsPest

Static AnalysisPHPStan, Psalm, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/gergo-tar-laravel-package-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/gergo-tar-laravel-package-skeleton/health.svg)](https://phpackages.com/packages/gergo-tar-laravel-package-skeleton)
```

###  Alternatives

[algoyounes/laravel-package-skeleton

Laravel Package Skeleton for streamlined package development

281.3k](/packages/algoyounes-laravel-package-skeleton)[wujunze/money-wrapper

MoneyPHP Wrapper

103.8k](/packages/wujunze-money-wrapper)

PHPackages © 2026

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