Sistema de gestión de fondo Alpaca-Spa-Laravel: separación frontal y posterior

lpaca-Spa-Laravel es una DEMO de un sistema de gestión de back-end desarrollado con Alpaca-Spa + Laravel separado del front y back-end. Los principales módulos funcionales son inicio de sesión, gestión de tareas cronometradas, gestión de usuarios, gestión de autoridad, gestión de información personal etc. En el desarrollo real, se pueden agregar nuevas funciones de acuerdo con las necesidades específicas. El modelo de desarrollo es un desarrollo separado por delante y por detrás. Alpaca-Spa es responsable de implementar las funciones de front-end, incluida la organización de la estructura de la página, la representación de datos de la página, los estilos, la lógica de interacción, etc. Laravel es responsable de proporcionar funciones de back-end, acceder a bases de datos , procesando la lógica empresarial y proporcionando interfaces de datos al front-endhttp://www.tkc8.com


Introducción a Alpaca-Spa-Laravel

Alpaca-Spa-Laravel es   una DEMO de un sistema de gestión de back-end desarrollado por separado de los front-end y back-end . Laravel se usa para implementar funciones de back-end, Alpaca-Spa se usa para implementar funciones de front-end y los datos se intercambian entre los front -end y back-end a través de Json.

Las principales funciones del ejemplo son:

 Inicio y cierre de sesión 
 Gestión de usuarios Gestión de 
 autoridad Gestión de 
 información personal Gestión de 
 tareas cronometradas

En el desarrollo real, se pueden agregar nuevas funciones de acuerdo con las necesidades específicas.

imagen

Dirección de demostración

contenido Descripción dirección
Alpaca-Spa Página principal http://www.tkc8.com
Alpaca-Spa-Laravel Gestión de backstage http://full.tkc8.com
Alpaca-Spa-Sui Teléfono móvil sui http://full.tkc8.com/app
oschina Código http://git.oschina.net/cc-sponge/Alpaca-Spa-Laravel
github Código https://github.com/big-sponge/Alpaca-Spa-Laravel

La cuenta de inicio de sesión en el terminal de administración de back-end es una cuenta de prueba con solo funciones de navegación y sin funciones de edición.

Método de instalación (asegúrese de prestar atención al almacenamiento, directorio de arranque y sus subdirectorios, permisos de archivo)

    Asegúrese de que el entorno de desarrollo cumpla con los siguientes requisitos: 

    Versión PHP> = 5.6.4 
    Extensión PHP: Extensión PHP OpenSSL: Extensión 
    PHP PDO 
    : Extensión 
    PHP Mbstring: Extensión 
    PHP Tokenizer : XML 

    (referencia detallada: Laravel 5.4) Después de 

    descargar el código fuente, necesita configurarlo El directorio raíz del servidor web es el directorio público. 
    El archivo index.php en este directorio sirve como procesador frontal para todas las solicitudes HTTP que ingresan a la aplicación. 

    Necesita configurar algunos permisos. 
    Los directorios de almacenamiento y arranque deberían permitir que su servidor web escriba; de lo contrario, Laravel no podrá escribir. 

    Acerca del archivo de configuración: Después de 

    descargar el código fuente, cree un archivo .env en el directorio / config. Por supuesto, también puede copiar .env.development y cambiarle el nombre a .env. 
    No se recomienda agregar .env al control de versiones de git, porque su cuenta de acceso a la base de datos personal puede estar almacenada en el archivo de configuración. 
    Para obtener detalles del archivo de configuración, consulte el capítulo "Archivo de configuración" del 

    script de la base de datos: 
    /storage/sql/db_full.sql 


    Si solo desea ver las funciones de front-end localmente, establezca el valor de g_url en / public / admin / index.html Establecer en "http://full.tkc8.com/".

    <script> 
            var g_baseUrl = "/"; // Ruta raíz del recurso front-end (js, css, etc., utilizada en la plantilla de vista) 
            var g_url = "/"; // Ruta raíz de la interfaz back-end 
            $ (document ) .ready (function () { 
                g_baseUrl = "http: //" + window.location.host + "/ admin /"; 
                // g_url = "http: //" + window.location.host; 
                g_url = "http : // completo. tkc8.com "; 
                Alpaca.Config.baseUrl =" / admin / "; // ruta raíz de alpaca-spa 
                Alpaca.run (" # / main / index / index "); 
            }); 
    </ script > 

    para que pueda utilizar el front-end local para acceder a la interfaz proporcionada por el servidor (full.tkc8.com). 

    Suponga que su nombre de dominio configurado localmente es: 127.0.0.

Estructura de directorios

| --app 
| --Common - utilizado para colocar algunas clases públicas, funciones, etc. 
| --Models - utilizado para colocar archivos de clase de entidad correspondientes a la base de datos 
| --Modules - almacena información relacionada con el módulo, que contiene controles 
Server , lógica de negocios, etc. | | --Gestión - código del módulo de administración de back-end (servidor), desarrollo separado antes y después, aquí solo devuelve la interfaz en formato Json 
| | --Servidor --- módulo de front-end de usuario back- El código end (Server), igual que el anterior, solo devuelve la interfaz en formato Json 
| ExceptionHandler.php - configuración de manejo de excepciones 
| RouteProvider.php - configuración de enrutamiento 
| --bootstrap - es un directorio que viene con el marco de Laravel, el principal La función es proporcionar Algunas funciones relacionadas con la inicialización de la aplicación requieren permisos de lectura y escritura (incluidos los subdirectorios) 
| --Consola - Laravel Cli 
| --builder - Herramienta de generación automática de código 
| --crontab - Herramienta de tareas de sincronización (shell no Linux)  
| - -config - directorio del archivo de configuración
| . env - movió el .env original de Laravel al directorio de configuración
| --public - Directorio de entrada. Al configurar el servidor, el directorio raíz del sitio web debe establecerse en public 
| --admin - La parte de front-end (cliente) del módulo de administración de back-end (aquí está el front-end- desarrollo final y posterior, que no contiene php El código también se puede implementar de forma independiente) 
| --app - La parte frontal (cliente) del módulo frontal del usuario (aquí está el desarrollo frontal y posterior, el mismo que el anterior) 
| index.php - archivo de entrada php 
| --storage - programa de almacenamiento El registro en tiempo de ejecución, el caché, la sesión y otros archivos requieren permisos de lectura y escritura (incluidos los subdirectorios) 
| --vendor - directorios relacionados con el 
compositor | compositor .json 
| composer.lock

Función de enrutamiento

Se recomienda que cada módulo tenga su propio archivo de configuración de enrutamiento

1 La estructura de organización de enrutamiento de todo el sistema se puede configurar en app / RouteProvider.php 
2 app / Modules / Manage / router.php configura el enrutamiento relacionado del módulo de administración 
3 app / Modules / Server / router.php configura el enrutamiento relacionado del módulo de servidor 
4 bootstrap / builder / router.php configura el enrutamiento de la herramienta de generación de código 
5 bootstrap / crontab / router.php configura el enrutamiento de la herramienta de tareas de tiempo

Archivo de configuración

1 El archivo de configuración se almacena en el directorio de configuración, que es el mismo que las reglas originales de Laravel 

2 Maneja la configuración relacionada con el entorno del sistema. 

  Si se establece la variable de entorno MOD_ENV = DEVELOPMENT, el sistema cargará el archivo de configuración .env.development. 
  Si se establece la variable de entorno MOD_ENV = PRODUCTION, el sistema cargará el archivo de configuración .env.production. 
  Si la variable de entorno MOD_ENV = TEST está configurado, el sistema cargará el archivo de configuración .env .test; de lo 
  contrario, el archivo de configuración .envt se cargará de forma predeterminada

Control de acceso

1 Para realizar la función de permisos, hay 5 tablas en la base de datos: 

  tabla de usuarios, tabla de roles, tabla de permisos, tabla de relaciones de roles de usuarios y tabla de relaciones de permisos de roles. 

  De esta forma, se establece la relación correspondiente de usuario-rol-autoridad. 

2 Control de permiso de inicio de sesión 

  1) Si una determinada acción en el controlador actual no requiere permiso de inicio de sesión: 

      función protegida noLogin () 
      { 
          // La siguiente acción no requiere permiso de inicio de sesión 
          return ['action1', 'action2']; 
      } 
      Entonces action1 y action2 Puede acceder sin iniciar sesión 

  2) Si todas las acciones bajo el controlador actual no requieren permisos de inicio de sesión: 

      función protegida noLogin () 
      { 
          this-> isNoLogin = true; 
      } 
     para que todas las acciones bajo el controlador actual no requieran permisos de inicio de sesión Puede acceder directamente al 

control de permisos de 3 roles 

  1) Si una determinada acción en el controlador actual no requiere control de permisos de roles: 

      función protegida noAuth () 
      { 
          // La siguiente acción no requiere permiso de inicio de sesión
          return ['action1', 'action2'];  
      }
     por lo que se puede acceder a action1 y action2 sin permisos de rol 

  2) Si todas las acciones bajo el controlador actual no requieren permisos de inicio de sesión: 

      función protegida noAuth () 
      { 
          this-> isNoAuth = true; 
      } De 
     esta manera, se puede acceder directamente a todas las acciones bajo el controlador actual sin la necesidad de iniciar sesión. 

  3) Vuelva a escribir los permisos de rol de una acción bajo la 

      función protegida del controlador actual noAuth () 
      { 
          return [ 
                'actionName' => function ($ result) { 
                     if ($ _ GET ['id'] == 1) { 
                        return true; 
                     } 
                 }, 
          ]; 
      } 

     La función de control de permisos de rol de la acción se puede personalizar especificando una función para la acción. La 

     función tiene un parámetro $ resultado,

     Si $ result es verdadero, significa que el control de permisos de rol predeterminado del sistema juzga que la acción actual tiene permiso de acceso, y falso significa que no hay permiso de acceso.

Función de tarea de sincronización

    El ejemplo proporciona la función de PHP para implementar tareas de sincronización (modo de shell no Linux, independiente del sistema operativo). 

    Es adecuado para cronometrar y el tiempo preciso no es inferior a 1 segundo. Reinicio del servicio web o reinicio de PHP. La tarea programada no se reiniciará automáticamente. 
    Se puede usar para manejar el plan final de la mayoría de las tareas programadas. La tienda recibirá productos automáticamente a intervalos regulares, cerrará comentarios y revertirá pedidos; enviará correos electrónicos a intervalos regulares, respaldo de datos y otros 

    principios de implementación y contenido más detallado, por favor. consulte el siguiente artículo: 
    https: // my.oschina.net/u/3381391/blog/1510260

imagen

Función de front-end

    El código de front-end se almacena en 
    public \ admin , public \ admin \ index.html es el archivo de entrada de front-end, 
    public \ admin \ main \ controller almacena el controlador del módulo principal de front-end y 
    public \ admin \ main \ view almacena la página de vista del módulo principal de front-end.

Generación automática de código

En el proyecto se proporciona una herramienta para generar código: Alpaca-Builder

El propósito es escribir código rápidamente y reducir el trabajo repetitivo. La función principal es generar el siguiente contenido de acuerdo con el nombre de la tabla de la base de datos de entrada:

1 Generar clase de entidad de back-end 
2 Generar controlador de back-end 
3 Generar enrutamiento de back-end 
4 Generar controlador JS de front-end 
5 Generar página de edición de front-end 
6 Generar página de lista de front-end 
7 Generar URL de interfaz de configuración 
8 Seleccionar si copiar a la página correspondiente

imagen

Método de acceso, ingrese la dirección en el navegador: su nombre de dominio \ constructor

(Nota: solo cuando APP_ENV = local en el archivo de configuración, se permite el acceso)

Ejecute WebSocket

Necesita estar en el entorno Linux, el directorio raíz del proyecto.

#debug运行
php artisan ws start
#常驻后台运行
php artisan ws start --d

开发流程

    后端(服务端)部分:

    1 建立数据表
    2 编写模型类,放在/app/Models
    3 编写控制器类,放在模块的Controllers目录下面,例如: /app/Modules/Manage/Controllers/{name}Controller.php
    4 *(可选)如果有比较复杂的业务逻辑需要处理,可以加一个Service层,放在模块的Service目录下面
    5 路由配置:路由一般放在当前模块目录下面,例如:/app/Modules/Manage/router.php

    前端(客户端)部分:

    项目采用前后分离开发,因此前端代码会更独立,html文件中不含有任何php代码
    1 编写列表显示页面(两个html)
       /public/admin/view/{name}/{name}ListView.html       页面主体
       /public/admin/view/{name}/{name}ListDisplay.html    页面table部分
    2 编写编辑页面(新增和修改用一个)
       /public/admin/view/{name}/{name}EditView.html
    3 编写前端控制器,实现与后端数据交互, :
       路径:/public/admin/controller/{name}.js
       一般有三个方法:
       {nombre} Método ListView, muestra la página de lista, llama a la interfaz de datos de fondo para encontrar los datos de la lista 
       {nombre} Método ListDisplay, renderiza los datos de pantalla 
       {nombre} Método EditView Muestra la página de edición, llama a la interfaz de fondo 
    4 Menú de configuración: 
        Ruta : / public / admin / view /layout/part/pageSidebar.html 
    5 Para configurar la interfaz de back-end, se recomienda escribir la dirección de back-end en el archivo de configuración: 
        Ruta: variables API en / public / admin / main /main.js


Imagen del proyecto

imagen 


Supongo que te gusta

Origin blog.51cto.com/15127568/2667265
Recomendado
Clasificación