承接 lvntr/starter-kit 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lvntr/starter-kit

最新稳定版本:v13.0.18

Composer 安装命令:

composer require lvntr/starter-kit

包简介

Laravel Starter Kit with DDD architecture, Inertia.js, Vue 3, PrimeVue, and role-based permissions.

README 文档

README

Tests License Packagist Version Downloads

Lvntr Starter Kit is under active development, and each release is shaping it into a more complete admin-first Laravel platform.

Detailed usage docs: kit-docs.lvntr.dev

A full-featured Laravel admin panel package built with Laravel 12 & 13, Inertia.js v2, Vue 3, PrimeVue 4, and Tailwind CSS 4. Follows DDD (Domain-Driven Design) architecture with built-in role-based permissions, activity logging, settings management, and more.

Version support: the main branch targets Laravel 13 (v13.x tags). For Laravel 12 use the 1.x branch (v12.x tags).

Features

  • DDD Architecture — Actions, DTOs, Queries, Events, Listeners
  • Role & Permission Management — Spatie Permission with dynamic resource-scoped permissions
  • User Management — CRUD with avatar upload, soft deletes, 2FA support
  • Activity Logging — Spatie Activity Log with a browsable admin interface
  • Settings Panel — General, Auth, Mail, Storage settings stored in database
  • OAuth2 API — Laravel Passport with personal access tokens and device authorization
  • Domain Scaffoldingmake:sk-domain command generates full DDD stack interactively
  • FormBuilder / DatatableBuilder / TabBuilder — Reusable Vue component builders
  • Multi-language Support — Translation files included, easily extendable
  • API Response Builder — Fluent, consistent API responses with pagination support
  • Security Headers Middleware — X-Frame-Options, HSTS, CSP and more

Tech Stack

Backend (PHP / Composer)

Package Purpose
Laravel 12 / 13 Core framework (constraint: ^12.0 || ^13.0)
Inertia.js v2 Server-driven SPA — no API layer needed between backend and frontend
Laravel Fortify Authentication backend (login, register, 2FA, password reset)
Laravel Passport OAuth2 API authentication (personal access tokens, device authorization)
Laravel Wayfinder Type-safe route generation for TypeScript
Spatie Permission Role & permission management with dynamic resource-scoped permissions
Spatie Activity Log Model activity logging with browsable admin interface
Spatie Media Library File uploads & media collections (avatars, attachments)
Spatie Query Builder Filter, sort, and include relationships via query string
Spatie Translatable Multi-language model attributes (JSON-based)

Frontend (Node / npm)

Package Purpose
Vue 3 Reactive UI framework
PrimeVue 4 UI component library (DataTable, Dialog, Toast, Menu, etc.)
Tailwind CSS 4 Utility-first CSS framework
Inertia.js Vue 3 Client-side adapter for Inertia SPA
VueUse Collection of Vue composition utilities
laravel-vue-i18n Use Laravel translation files directly in Vue

Dev Tools

Tool Purpose
Vite Frontend build tool with HMR
TypeScript Type safety for frontend code
ESLint + Prettier Code linting and formatting
Vitest Unit testing for Vue components
Husky + lint-staged Pre-commit hooks for code quality
Commitizen Conventional commit messages

Requirements

  • PHP 8.2+ (8.3+ recommended for Laravel 13)
  • Laravel 12 or 13
  • Node.js 18+
  • MySQL / PostgreSQL / SQLite

Installation

1. Require the package

# Laravel 13 (latest)
composer require lvntr/starter-kit:^13.0

# Laravel 12 (maintenance)
composer require lvntr/starter-kit:^12.0

2. Run the install command

php artisan sk:install

This interactive wizard will:

  1. Publish all application scaffolding (Controllers, Models, Routes, Vue pages, etc.)
  2. Publish the package config file
  3. Run database migrations
  4. Run seeders (Roles, Permissions, Definitions, Settings)
  5. Generate Passport encryption keys
  6. Create a default admin user
  7. Install npm dependencies and build frontend assets

Non-interactive mode (CI/CD):

php artisan sk:install --no-interaction

Overwrite existing files:

php artisan sk:install --force

3. Configure your .env

APP_NAME="My Application"
APP_URL=https://my-app.test

DB_CONNECTION=mysql
DB_DATABASE=my_app
DB_USERNAME=root
DB_PASSWORD=

4. Access the admin panel

Open your browser and navigate to your app URL. Log in with the admin credentials shown after installation (default: admin@demo.com / password).

Updating

When a new version of the package is released:

composer update lvntr/starter-kit
php artisan sk:update

The update command uses a hash-based tracking system to safely update files:

  • Core files (BaseAction, BaseDTO, Traits, Middleware, helpers) are always updated
  • User-modifiable files (Controllers, Pages, Routes) are only updated if you haven't changed them
  • New files from the package are automatically added
  • New migrations are detected and optionally run

Preview changes before applying:

php artisan sk:update --dry-run

Force update everything (overwrites your changes):

php artisan sk:update --force

Upgrading from Laravel 12 to 13

The main branch of this package supports both Laravel 12 and Laravel 13. When you move an existing Laravel 12 application to the Laravel 13 line, the upgrade is split into two stages:

1. Bump Laravel yourself

The package does not touch composer.json or upgrade the framework for you — that stays under your control. Update your composer.json:

{
    "require": {
        "php": "^8.3",
        "laravel/framework": "^13.0",
        "lvntr/starter-kit": "^13.0"
    }
}

Then run composer update.

2. Finish the package-side work with sk:upgrade

Once Laravel itself is on 13, run:

php artisan sk:upgrade

The command performs preflight checks (Laravel ≥ 13, Starter Kit ≥ v13, PHP ≥ 8.3) and refuses to run if any of them fails — it will not modify a single file in that case. On success it:

  1. Syncs Starter Kit stubs (sk:update), preserving your edits
  2. Clears framework caches and stale bootstrap/cache/*.php files
  3. Regenerates the Composer autoload
  4. Runs new migrations
  5. Re-seeds roles and permissions
  6. Reinstalls npm dependencies and rebuilds frontend assets

Options:

Option Description
--force Skip all confirmation prompts
--no-interaction CI-friendly non-interactive mode
--skip-build Skip npm install / npm run build

For the full upgrade checklist, rollback plan, and troubleshooting tips, see the Upgrade Guide.

Publishing Optional Assets

The package keeps Vue components, language files, and config inside the package by default. If you need to customize them, publish them to your project:

# Interactive selection
php artisan sk:publish

# Publish Vue components (FormBuilder, DatatableBuilder, etc.)
php artisan sk:publish --tag=components

# Publish language files
php artisan sk:publish --tag=lang

# Publish config file
php artisan sk:publish --tag=config

Available Commands

Command Description
sk:install Full installation wizard
sk:update Update package files preserving user changes
sk:upgrade Finish Laravel 12 → 13 package-side upgrade
sk:publish Publish optional assets for customization
make:sk-domain Scaffold a complete DDD domain interactively
remove:sk-domain Remove a domain and all its files
env:sync Sync .env keys to .env.example

Domain Scaffolding

Create a new domain with all DDD layers:

# Interactive mode
php artisan make:sk-domain

# With options
php artisan make:sk-domain Product --fields="name:string,price:decimal" --admin --api --events --vue=full

This generates: Model, Migration, Factory, DTO, Actions, Events, Listeners, Controllers, FormRequests, Routes, and Vue pages.

Remove a domain:

php artisan remove:sk-domain Product

Architecture

Package Structure

lvntr/starter-kit/
├── src/                          # Core package code (never published)
│   ├── StarterKitServiceProvider.php
│   ├── Console/Commands/         # sk:install, sk:update, make:sk-domain, etc.
│   ├── Domain/Shared/            # BaseAction, BaseDTO, ActionPipeline
│   ├── Enums/                    # PermissionEnum
│   ├── Http/Middleware/          # CheckResourcePermission, SecurityHeaders
│   ├── Http/Responses/           # ApiResponse builder
│   ├── Support/                  # Package support classes
│   ├── Traits/                   # HasActivityLogging, HasMediaCollections
│   └── helpers.php               # to_api(), format_date()
├── resources/
│   ├── js/components/            # Vue components (optionally publishable)
│   └── lang/                     # Translation files (optionally publishable)
├── stubs/                        # Published to app on install
│   ├── app/                      # Controllers, Models, Domain, Providers, Enums
│   ├── config/                   # permission-resources.php, settings.php
│   ├── database/                 # Migrations, Seeders, Factories
│   ├── routes/                   # Web & API routes
│   ├── resources/js/             # Vue pages, Layouts, Composables, Theme
│   └── bootstrap/                # app.php, providers.php
└── config/
    └── starter-kit.php           # Package configuration

Application Structure (after install)

app/
├── Domain/                       # DDD business logic
│   ├── User/                     # Actions, DTOs, Queries, Events, Listeners
│   ├── Role/
│   ├── Auth/
│   ├── Setting/
│   ├── ActivityLog/
│   └── Shared/                   # Base classes (updated by package)
├── Http/
│   ├── Controllers/Admin/        # Admin panel controllers
│   ├── Controllers/Api/          # REST API controllers
│   └── Middleware/
├── Models/
├── Enums/
└── Providers/

Update Strategy

File Category Behavior on sk:update
Domain/Shared/, Traits, Middleware, helpers Always updated
Controllers, Models, Pages, Routes Updated only if user hasn't modified them
User's custom domains Never touched
New files from package Automatically added

Using Package Components

Vue Components (without publishing)

Components are auto-resolved from the package. Use them in your Vue files:

<template>
    <SkForm :config="formConfig" />
    <SkDatatable :config="tableConfig" />
    <SkTabs :config="tabConfig" />
</template>

Translations

// From package namespace
__('starter-kit::admin.menu.dashboard')
__('starter-kit::message.created')

Base Classes

use Lvntr\StarterKit\Domain\Shared\Actions\BaseAction;
use Lvntr\StarterKit\Domain\Shared\DTOs\BaseDTO;
use Lvntr\StarterKit\Enums\PermissionEnum;
use Lvntr\StarterKit\Traits\HasActivityLogging;

License

PolyForm Noncommercial 1.0.0

lvntr/starter-kit 适用场景与选型建议

lvntr/starter-kit 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 146 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 19 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「laravel」 「ddd」 「admin-panel」 「starter-kit」 「vue」 「inertia」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 lvntr/starter-kit 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 lvntr/starter-kit 我们能提供哪些服务?
定制开发 / 二次开发

基于 lvntr/starter-kit 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 146
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 28
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: PolyForm-Noncommercial-1.0.0
  • 更新时间: 2026-03-19