定制 innoboxrr/larapack-generator 二次开发

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

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

innoboxrr/larapack-generator

最新稳定版本:5.0.32

Composer 安装命令:

composer require innoboxrr/larapack-generator

包简介

README 文档

README

Apoya Nuestro Trabajo 🙌

Desarrollamos estos paquetes para la comunidad de Laravel con el objetivo de hacer la vida de los desarrolladores más fácil. Si te sientes agradecido por nuestro trabajo y te gustaría apoyarnos, considera inscribirte en uno de nuestros cursos de pago. Nos ayudas a seguir manteniendo estos recursos y mejoras tus habilidades.

Te recomendamos especialmente el curso Desarrollo de Paquetes en Laravel. Aprenderás a crear tus propios paquetes de Laravel y PHP, optimizando tu productividad como desarrollador.

Gracias por tu apoyo, ¡apreciamos enormemente a nuestra comunidad!

Instalación

Para instalar el paquete, ejecuta el siguiente comando:

composer require innoboxrr/larapack-generator

Si tras la instalación no se añade el instalador en la raíz del directorio, ejecuta el siguiente comando:

cp vendor/<vendor>/<package>/builder.example builder

Requerimientos

  1. El paquete supone que el proyecto Laravel tiene por lo menos el modelo App\Models\User.
  2. Se recomienda tener configurado AWS S3 para la exportación de archivos. Si no, modifica el parámetro de configuración export_disk.
  3. Verifica que el modelo App\Models\User tenga el método isAdmin(). Si no tienes un sistema de roles, puedes implementar el siguiente método básico:
public function isAdmin()
{
    return $this->id === 1;
}
  1. La estructura principal del paquete debe estar dentro del directorio src para proyectos de paquetes y app para aplicaciones Laravel.

Comandos Disponibles

JSON Importer

Este comando permite importar modelos y migraciones desde un archivo JSON. Ejemplo de uso:

php builder json:importer /path/to/file.json

Otros Comandos

make:app-service-provider        - Crea un proveedor de servicio de aplicación.
make:auth-service-provider       - Crea un proveedor de servicio de autenticación.
make:config                      - Crea un archivo de configuración.
make:controller                  - Crea un nuevo controlador.
make:event-service-provider      - Crea un proveedor de servicio de eventos.
make:events                      - Crea eventos y listeners para el modelo.
make:excel                       - Crea una clase de Excel.
make:export                      - Crea una clase de exportación.
make:export-notification         - Crea una clase de notificación de exportación.
make:factory                     - Crea una nueva fábrica.
make:filters                     - Crea una clase de filtros.
make:full-model                  - Crea un entorno completo de modelo.
make:migration                   - Crea una nueva migración.
make:model                       - Crea un nuevo modelo.
make:model-traits                - Crea traits para el modelo.
make:model-view                  - Crea la sección de administración en Vue.
make:observer                    - Crea un observer.
make:policy                      - Crea una nueva política.
make:providers                   - Crea todos los proveedores de servicio.
make:requests                    - Crea una clase de requests.
make:resource                    - Crea una nueva clase de recurso.
make:route                       - Crea una nueva ruta.
make:route-service-provider       - Crea un proveedor de servicio de rutas.
make:test                        - Crea una nueva clase de test.

remove:full-model                - Elimina todas las entidades relacionadas con un modelo.

json:importer                    - Importación desde el archivo de importación JSON

Ejemplo de JSON de Importación

{
    "models": [
        {
            "name": "Post",
            "props": [
                {
                    "name": "title",
                    "type": "string",
                    "constraint": null,
                    "default": null,
                    "nullable": false,
                    "fillable": true,
                    "creatable": true,
                    "updatable": true,
                    "exports_cols": true,
                    "cast": null,
                    "form": true,
                    "form_component": "TextInputComponent",
                    "form_submit": true,
                    "enum": {
                        "op1": "Option 1",
                        "op2": "Option 2"
                    },
                    "datatable": true
                },
                {
                    "name": "payload",
                    "type": "longText",
                    "constraint": null,
                    "default": null,
                    "nullable": true,
                    "fillable": true,
                    "creatable": true,
                    "updatable": true,
                    "exports_cols": true,
                    "cast": "json",
                    "form": false,
                    "form_component": null,
                    "form_submit": false,
                    "enum": {
                        "op1": "Option 1",
                        "op2": "Option 2"
                    },
                    "datatable": true
                },
                {
                    "name": "user_id",
                    "type": "foreignId",
                    "constraint": "users",
                    "default": null,
                    "nullable": false,
                    "fillable": true,
                    "creatable": true,
                    "updatable": true,
                    "exports_cols": true,
                    "cast": null,
                    "form": false,
                    "form_component": null,
                    "form_submit": true,
                    "enum": {
                        "op1": "Option 1",
                        "op2": "Option 2"
                    },
                    "datatable": true
                }
            ],
            "metas": true,
            "load_relations": [
                {
                    "type": "belongsTo",
                    "namespace": "App\\Models",
                    "related": "User",
                    "name": "user"
                }
            ],
            "editable_metas": [],
            "assignments": [],
            "filters": [
                {
                    "name": "Title",
                    "mode": "like"
                }
            ],
            "requests": [
                {
                    "name": "Create",
                    "rules": {
                        "title": "required|string|max:255",
                        "payload": "nullable",
                        "user_id": "required|exists:users,id"
                    }
                },
                {
                    "name": "Update",
                    "rules": {
                        "title": "nullable|string|max:255",
                        "payload": "nullable",
                        "user_id": "nullable|exists:users,id"
                    }
                }
            ],
            "load_counts": []
        }
    ],
    "pivots": [
        {
            "name": "role_user",
            "props": [
                {
                    "name": "role_id",
                    "type": "foreignId",
                    "constraint": "roles",
                    "default": null,
                    "nullable": false
                },
                {
                    "name": "user_id",
                    "type": "foreignId",
                    "constraint": "users",
                    "default": null,
                    "nullable": false
                }
            ]
        }
    ]
}

Notas Importantes

  • Para el empleo de este paquete en el desarrollo de paquetes, se espera que el directorio que contenga la lógica principal tenga el nombre "src". En una aplicación de Laravel, la carpeta predeterminada es "app".

统计信息

  • 总下载量: 562
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 2
  • 依赖项目数: 22
  • 推荐数: 0

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-03-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固