dvizh / shop-skeleton
电子商务MVP开发的骨架
dev-master
2018-10-16 11:52 UTC
Requires
- php: >=5.4.0
- dmstr/yii2-adminlte-asset: 2.*
- dvizh/yii2-cart: @dev
- dvizh/yii2-certificate: @dev
- dvizh/yii2-order: @dev
- dvizh/yii2-promocode: @dev
- dvizh/yii2-review: @dev
- dvizh/yii2-shop: @dev
- pheme/yii2-settings: *
- yiisoft/yii2: ~2.0.6
- yiisoft/yii2-authclient: ~2.1.0
- yiisoft/yii2-bootstrap: ~2.0.0
- yiisoft/yii2-swiftmailer: ~2.0.0
Requires (Dev)
- codeception/base: ^2.2.3
- codeception/verify: ~0.3.1
- yiisoft/yii2-debug: ~2.0.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.0.0
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(基于角色的访问控制)解决方案。
安装
安装模块有两种方法:
- 通过使用Git克隆仓库到Yii2项目的自定义文件夹中,并在composer.json文件的autoload部分中添加模块(执行composer update)。请记住在配置文件中的bootstrap、extensions和modules部分连接模块(类似于该骨架中dektrium模块的方式)。
- 通过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分支的基本定制方法。
- 大多数模块、服务和组件都提供了灵活的设置,以便在典型项目中集成到界面和业务流程中。所有内容将在文档中描述;
- 通过在dvizh/yii2-field模块中创建额外的字段。模块仅提供后端的CRUD,前端需要自行编写,并且可以使用模块yii2-field的API进行自定义字段的搜索和内容显示;
- 通过viewPath。当需要在GridView中添加额外的列时;
- 通过controllerMap模块。当需要在模型和dvizh/yii2-field模块中添加字段时;
- 通过贡献。如果您创建了可能对社区有用的组件或创建了有用的API方法,欢迎加入贡献者行列。创建分叉并提交pull request,总负责人将审查提案。如果此更改对所有人都有用,而不是解决特定问题,则更改将被接受到主仓库;
- 通过单独的分支。这是最不希望看到的情况,表明项目已经超过了MVP。您可以分支模块并独立开发。
使用
根据模块的文档使用模块组件(目前所有内容都在README文件中)。