Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo hacer que su paquete sea compatible con el módulo SaaS de Laravel-Bagisto

Hoy aprenderemos cómo hacer que su paquete Laravel sea compatible con el Módulo Laravel Bagisto SaaS, puede verificar la función del Módulo Bagisto SaaS siguiendo este enlace .
Para que su paquete sea compatible, debe crear otro paquete para el módulo SaaS. Suponga que el nombre de su paquete es PreOrder y luego cree el paquete SaaSPreOrder. Después de esto, debe seguir los pasos a continuación para hacer que el paquete sea compatible:

Paso 1) Cree migraciones para los modelos de su paquete

Debe crear la migración para todos los archivos del modelo de su paquete base en el nuevo paquete SaaS (es decir, el paquete SaaSPreOrder). Tenemos que hacer una relación entre la “tabla de empresas” y las tablas de su paquete. Para hacer esto posible, debe crear la migración para todas las tablas de su paquete (es decir, el paquete PreOrder) en el nuevo paquete SaaS (es decir, el paquete SaaSPreOrder) para agregar la columna "company_id" en su tabla de paquetes.
php artisan make:migration add_company_id_to_pre_order_items --path=packages/Webkul/SaaSPreOrder/src/Database/Migrations
En la captura de pantalla anterior, verá que hemos creado una migración, es decir, AddCompanyIdToPreOrderItems en el nuevo paquete SaaS (es decir, el paquete SaaSPreOrder) para agregar la columna "company_id" en la tabla "pre_order_items" en la ruta de abajo. Aquí definimos la columna company_id como una restricción de clave externa .
php artisan migrate
Cree la migración para cada uno de los modelos con el comando anterior.
Nota: Si su migración tiene una restricción única en el paquete base (es decir, el paquete PreOrder), primero debe eliminar esa restricción y, después de agregar el campo 'company_id' , debe agregar la restricción única con ambos campos, es decir, el campo único de la tabla base y el campo company_id recién agregado en el nuevo paquete saas (es decir, paquete SaasPreOrder).

Paso 2) Amplíe los modelos de paquete básico

Después de crear la migración de todos los modelos para el paquete Saas (es decir, el paquete SaasPreOrder), debe ampliar cada modelo del paquete base.
En la imagen anterior, extendemos el BaseModel (refiriéndose modelo PreOrderItem del paquete base) en el PreOrderItem modelo del paquete SaasPreOrder.
En el modelo extendido, hemos anulado la propiedad $ fillable agregando el campo 'company_id' . Para obtener más detalles sobre la variable $ rellenable, siga Laravel Fillable Property
También hemos anulado el generador de consultas predeterminado mediante el uso de un campo recién agregado, es decir, ' company_id ' en la cláusula where. Al hacer esto, no necesitamos anular todos los métodos predeterminados del generador de consultas, es decir, getAll () .
En el método newEloquentBuilder anulado , usamos " Company Facade " mediante el cual puede llamar a los métodos comunes del módulo SaaS de Laravel-Bagisto.
Company::getCurrent()Al utilizar el método getCurrent , puede obtener el detalle de la empresa actual. Además, puede utilizar el auth()->guard('super-admin')->check()protector para marcar la diferencia entre el superadministrador y el administrador normal .

Paso 3) Anular los modelos del paquete

Después de extender todos los modelos en el nuevo paquete Saas (es decir, el paquete SaasPreOrder), debe anular cada modelo del paquete base con el modelo recién creado del paquete Saas (es decir, el paquete SaasPreOrder). Para hacer esto posible, debe registrar sus modelos en el archivo “NewSaasServiceProvider.php” de su paquete SaasPreOrder.
Tienes que definir un método, es decir, overrideModels y llamarlo desde el método de arranque (Router $ router) de tu ServiceProvider.php. Para obtener más detalles sobre Laravel ServiceProvider .
Verá, en la captura de pantalla anterior, registramos los contratos modelo Contracts \ PreorderItem del paquete base con el modelo recién creado bajo la declaración del método overrideModels.

Paso 4) Cree observadores para escuchar los eventos modelo

En el paquete Saas, usaremos Laravel Observers para escuchar los múltiples eventos de los modelos anulados. Para esto, debe crear clases de observador para escuchar el evento de modelos anulados en su nueva clase SaasServiceProvider.php.
En la captura de pantalla anterior, puede ver que usamos el modelo anulado, es decir, PreOrderItems del paquete SaasPreOrder y lo pasamos al método de creación como parámetro.
Nota: Puede utilizar los siguientes métodos de una clase de observador: creado, actualizado y eliminado
Para registrar un observador, debe usar el método observe () en el modelo que desea observar.
\ Webkul \ SaasPreOrderPackage \ Models \ PreOrderItems :: observe (\ Webkul \ SaasPreOrderPackage \ Observers \ PreOrderItems Observer :: clase);
Debe registrar sus observadores en el método boot () de la clase de proveedor de servicios de su paquete, es decir, SaasPreOrderServiceProvider.php.
Puede tomar referencias sobre Laravel Observer siguiendo este enlace .
Después de realizar estos cambios, ejecute los siguientes comandos desde Bagisto Root Directory:
$ composer dump-autoload
Gracias por leer este artículo.

Publicar un comentario

0 Comentarios