dvizh/shop-skeleton

电子商务MVP开发的骨架

安装: 639

依赖: 0

建议者: 0

安全: 0

星星: 26

关注者: 8

分支: 15

类型:项目

dev-master 2018-10-16 11:52 UTC

This package is not auto-updated.

Last update: 2024-09-15 04:15:46 UTC


README

基于Dvizh的Yii2模块和第三方开发者构建的骨架,用于快速构建MVP(最小可行产品)网店。此解决方案强制应用其模块化-方面架构,旨在

  • 通过使用现成的可配置CRUD模块、服务、方面和小部件来快速开发应用程序的第一个版本;
  • 长期发展和维护,无需进行全面重构或从头开始重写,直到项目成功。

演示: http://demo-dss.dvizh.net(这是带有基本小部件的前端) http://demo-dss.dvizh.net/backend/web(这是后台管理)

管理员:10111988

目标受众为经验丰富的程序员。

与CMS相比,骨架的入门门槛较高。为了使用Dvizh的模块来构建商店,需要了解

  • PHP(必须使用面向对象语法)
  • HTML
  • Yii2框架
  • Git

骨架基于Yii2,大多数术语来自该框架的文档

  • 骨架是应用程序的基本框架,依赖于某些模块,并包含有关模块如何在服务所涉及的领域内关联的信息方面;
  • 模块是尽可能与其他模块隔离的类集;
  • CRUD - 控制器和视图文件,通过模型形成和保存数据;
  • 服务 - 全局系统中可访问的对象实例(通常为单例),通过yii::$app->serviceName提供API以操作任何数据;
  • 事件 - 模块中的某些事件,可能“感兴趣”其他模块和应用程序。事件订阅者可以影响事件发生的程序执行逻辑。类似于WordPress中的钩子;
  • 模型 - AR模型,包含实体的getter/setter和用于操作实体数据的基本API;
  • 小部件 - 可移植的HTML代码,带有CSS和JS处理器。类似于Bitrix中的组件;
  • 方面 - 了解系统中所有模块并对其中的事件做出反应的回调。通常通过Yii2的行为实现。从应用程序架构的角度来看,方面位于模块的交叉处。例如,通过“订单”模块创建订单时,该订单应填充“购物车”模块的元素 - 正是方面执行这项工作;

模块

骨架中使用的重要模块

  • dvizh/yii2-shop - 用于管理商品、修改、价格、分类、生产商、过滤值等的CRUD;
  • dvizh/yii2-filter - 用于网站过滤器的CRUD,一套用于通过Ajax快速在前端应用过滤器的插件;
  • dvizh/yii2-field - 用于管理任何AR实体的自定义字段的CRUD;
  • dvizh/yii2-gallery - 图像上传小部件,图像展示小部件;
  • dvizh/yii2-seo - 允许将重要的SEO字段附加到模型的插件;
  • dvizh/yii2-order - 用于订单的CRUD,用于创建订单和提供关于订单的周期性分析报告的插件;
  • dvizh/yii2-cart - 一个用于快速开发网站购物车功能的模块和组件集合。可以将任何实现所需接口的模型放入购物车;
  • dvizh/yii2-promocode - 用于管理网站上的折扣的CRUD工具和折扣服务;
  • dvizh/yii2-certificate - 用于管理网站上的礼品卡和折扣服务的CRUD工具;
  • dektrium/yii2-user - 管理网站用户的CRUD工具;
  • dektrium/yii2-rbac - 网站的RBAC(基于角色的访问控制)解决方案。

安装

安装模块有两种方法:

  1. 通过使用Git克隆仓库到Yii2项目的自定义文件夹中,并在composer.json文件的autoload部分中添加模块(执行composer update)。请记住在配置文件中的bootstrap、extensions和modules部分连接模块(类似于该骨架中dektrium模块的方式)。
  2. 通过Composer
composer create-project --prefer-dist --stability=dev dvizh/shop-skeleton

在项目根目录中执行git init。您已经创建了DSS的自己的分支,现在需要使用组件为客户的网站构建前端。

在项目根目录中执行以下命令:

php init

更新Composer

composer update

在以下文件中配置数据库连接

*/common/config/main-local.php */console/config/main-local.php

执行模块迁移

sh migrate.sh

如果您的网站使用Apache,那么安装就完成了,.htaccess文件包含在骨架中,所有用户请求都将指向/frontend/web。如果没有Apache,则需要配置前端(frontend/web)和后端(backend/web)的入口点。

默认管理面板

/backend/web/

管理员:10111988

定制

我们将探讨不将模块移动到单独的Git分支的基本定制方法。

  1. 大多数模块、服务和组件都提供了灵活的设置,以便在典型项目中集成到界面和业务流程中。所有内容将在文档中描述;
  2. 通过在dvizh/yii2-field模块中创建额外的字段。模块仅提供后端的CRUD,前端需要自行编写,并且可以使用模块yii2-field的API进行自定义字段的搜索和内容显示;
  3. 通过viewPath。当需要在GridView中添加额外的列时;
  4. 通过controllerMap模块。当需要在模型和dvizh/yii2-field模块中添加字段时;
  5. 通过贡献。如果您创建了可能对社区有用的组件或创建了有用的API方法,欢迎加入贡献者行列。创建分叉并提交pull request,总负责人将审查提案。如果此更改对所有人都有用,而不是解决特定问题,则更改将被接受到主仓库;
  6. 通过单独的分支。这是最不希望看到的情况,表明项目已经超过了MVP。您可以分支模块并独立开发。

使用

根据模块的文档使用模块组件(目前所有内容都在README文件中)。