定制 sh4rck3/laravel_combo_stack 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

sh4rck3/laravel_combo_stack

Composer 安装命令:

composer require sh4rck3/laravel_combo_stack

包简介

Pacote que instala Jetstream, Spatie e outras ferramentas uteis do laravel, pacote bem indicado para iniciar um projeto com padrao monolito com api, com frontend em vuejs 3 padrao scritp setup

README 文档

README

Laravel Combo Stack

Latest Version on Packagist Total Downloads

Um pacote completo para iniciar projetos Laravel rapidamente, combinando ferramentas essenciais como Jetstream, Inertia.js, Vue 3, e Spatie Permission, além de diversas bibliotecas frontend úteis - tudo pré-configurado e pronto para uso.

📋 Recursos

  • Laravel Jetstream com Inertia.js & Vue 3
  • Sistema de autenticação completo (login, registro, verificação de email, etc)
  • Spatie Laravel Permission para gerenciamento de papéis e permissões
  • Dashboard personalizado pronto para uso
  • Estrutura organizada com separação clara entre controladores web e API
  • Tema Dark integrado
  • 10+ bibliotecas frontend pré-configuradas
  • Helpers de permissão para Vue (verificação fácil de papéis/permissões)
  • Usuários padrão com papéis pré-configurados

🚀 Instalação

# Instalar via Composer
composer require sh4rck3/laravel_combo_stack

# Executar o comando de instalação
php artisan combo-stack:install

O processo de instalação configurará automaticamente:

  1. Jetstream com Inertia e Vue 3
  2. Sistema de papéis e permissões
  3. Middleware e helpers para gerenciamento de permissões
  4. Bibliotecas frontend essenciais
  5. Usuários demo para cada papel configurado

✨ Bibliotecas Frontend Incluídas

Biblioteca Descrição Uso
Vue Select Componente de dropdown avançado <v-select :options="options"></v-select>
SweetAlert2 Caixas de diálogo elegantes $swal('Hello World!')
Vue Toast Sistema de notificações toast $toast.success('Concluído!')
Laravel Vue Pagination Paginação para Laravel <Pagination :data="users" />
Vuex Gerenciamento de estado this.$store.commit('setUser', user)
AOS Animações on-scroll <div data-aos="fade-up">...</div>
Vue Print Impressão de componentes v-print="'#printMe'"
Vue Mask Máscaras de input v-mask="'##.###-###'"
FullCalendar Calendário interativo completo <FullCalendar :options="calendarOptions" />
ApexCharts Gráficos interativos <apexchart type="bar" :options="options" :series="series"></apexchart>
VCalendar Seletor de data e calendário <v-date-picker v-model="date" />

🔐 Gerenciamento de Papéis e Permissões

Papéis Padrão

O sistema vem com os seguintes papéis pré-configurados:

  • Administrador: Acesso total ao sistema
  • Gerente: Gerencia conteúdos e acessa relatórios
  • Usuário: Acesso básico ao conteúdo

Verificando Papéis e Permissões no Frontend

<!-- Verificando um papel específico -->
<div v-if="$hasRole('Administrador')" class="p-2 bg-green-100 dark:bg-green-800 rounded text-gray-900 dark:text-gray-100">
              Você tem o papel de Administrador
          </div>

<!-- Verificando uma permissão específica -->
<div v-if="$can('gerenciar-usuarios')" class="p-2 bg-green-100 dark:bg-green-800 rounded text-gray-900 dark:text-gray-100">
              Você pode gerenciar usuários
          </div>

<!-- Verificando vários papéis -->
 <div v-if="$hasAnyRole(['Administrador', 'Gerente'])" class="p-2 bg-green-100 dark:bg-green-800 rounded text-gray-900 dark:text-gray-100">
              Você é um Administrador ou Gerente
          </div>

<!-- Verificando várias permissões -->
<div v-if="$canAny(['gerenciar-usuarios', 'visualizar-usuarios'])" class="p-2 bg-green-100 dark:bg-green-800 rounded text-gray-900 dark:text-gray-100">
              Você pode gerenciar ou visualizar usuários
          </div>

Verificando no Backend (Controllers)

// Verificando um papel
if ($user->hasRole('Administrador')) {
    // Lógica para administradores
}

// Verificando uma permissão
if ($user->can('gerenciar-usuarios')) {
    // Lógica para quem pode gerenciar usuários
}

// Protegendo rotas com middleware
Route::middleware(['role:Administrador'])->group(function () {
    // Rotas acessíveis apenas para administradores
});

Route::middleware(['permission:gerenciar-conteudo'])->group(function () {
    // Rotas acessíveis apenas para quem tem permissão
});

📁 Estrutura Organizada

O pacote configura uma estrutura de diretórios organizada:

app/
├── Http/
│   ├── Controllers/
│   │   ├── Web/
│   │   │   └── PageController.php  // Controladores para páginas web
│   │   └── Api/                    // Controladores para API
│   └── Middleware/
│       └── HandleInertiaRequests.php  // Configurado para compartilhar papéis
resources/
└── js/
    ├── Components/
    │   └── PermissionExample.vue   // Componente demo de permissões
    ├── Pages/
    │   └── Dashboard.vue           // Dashboard personalizado
    ├── Plugins/
    │   └── Permissions.js          // Helper de permissões
    └── Store/
        └── MyStore.js              // Store Vuex pré-configurada

⚙️ Configuração

Publique o arquivo de configuração para personalizar o comportamento do pacote:

php artisan vendor:publish --tag=combo-stack-config

Opções de Configuração

// config/combo-stack.php
return [
    // Configurações gerais
    'company_name' => env('APP_NAME', 'Laravel'),
    
    // Jetstream
    'jetstream' => [
        'teams' => true,
        'api' => true,
        'dark_mode' => true,
    ],
    
    // Papéis e permissões iniciais
    'roles' => [
        'admin' => [
            'name' => 'Administrador',
            'permissions' => ['gerenciar-usuarios', 'gerenciar-conteudo', 'acessar-relatorios'],
        ],
        'manager' => [
            'name' => 'Gerente',
            'permissions' => ['gerenciar-conteudo', 'acessar-relatorios'],
        ],
        'user' => [
            'name' => 'Usuário',
            'permissions' => ['acessar-conteudo'],
        ],
    ],
    
    // Usuários padrão
    'create_default_users' => true,
    'default_users' => [
        'admin' => [
            'name' => 'Administrador',
            'email' => 'admin@example.com',
            'password' => 'admin123',
        ],
        // Outros usuários...
    ],
];

📊 Componentes e Exemplos

Gráficos com ApexCharts

<template>
  <div class="card">
    <apexchart 
      type="bar" 
      height="350" 
      :options="chartOptions" 
      :series="series">
    </apexchart>
  </div>
</template>

<script setup>
import { ref } from 'vue';

const chartOptions = ref({
  chart: {
    id: 'vuechart-example'
  },
  xaxis: {
    categories: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun']
  }
});

const series = ref([{
  name: 'Vendas',
  data: [30, 40, 35, 50, 49, 60]
}]);
</script>

Calendário Interativo

<template>
  <FullCalendar 
    :options="calendarOptions" 
    class="my-4" 
  />
</template>

<script setup>
import { ref } from 'vue';
import dayGridPlugin from '@fullcalendar/daygrid';

const calendarOptions = ref({
  plugins: [dayGridPlugin],
  initialView: 'dayGridMonth',
  events: [
    { title: 'Reunião', date: '2023-03-12' },
    { title: 'Apresentação', date: '2023-03-15' }
  ],
  headerToolbar: {
    left: 'prev,next today',
    center: 'title',
    right: 'dayGridMonth,dayGridWeek,dayGridDay'
  }
});
</script>

Gerenciamento de Estado com Vuex

<template>
  <div>
    <p>Contador: {{ count }}</p>
    <button @click="increment">Incrementar</button>
    
    <div v-if="notifications.length > 0">
      <div v-for="(notification, index) in notifications" 
           :key="index" 
           class="notification">
        {{ notification.message }}
      </div>
    </div>
  </div>
</template>

<script setup>
import { computed } from 'vue';
import { useStore } from 'vuex';

const store = useStore();

const count = computed(() => store.state.count);
const notifications = computed(() => store.state.notifications);

const increment = () => {
  store.commit('increment');
  store.commit('addNotification', { 
    message: 'Contador incrementado!', 
    type: 'success' 
  });
};
</script>

📱 Responsividade

Todos os componentes são totalmente responsivos e funcionam em dispositivos móveis, tablets e desktops, aproveitando o Tailwind CSS fornecido pelo Jetstream.

🛠️ Requerimentos

  • PHP 8.1 ou superior
  • Laravel 10.x ou superior
  • Node.js e NPM

🔄 Atualização

Para atualizar para a versão mais recente:

composer update sh4rck3/laravel_combo_stack
php artisan combo-stack:install

📝 Licença

O Laravel Combo Stack é um software de código aberto licenciado sob a licença MIT.

🙏 Agradecimentos

Desenvolvido por Luccas Woiciechoski | sh4rck3@gmail.com

Código semelhante encontrado com 1 tipo de licença

sh4rck3/laravel_combo_stack 适用场景与选型建议

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

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

围绕 sh4rck3/laravel_combo_stack 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: Vue

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-12