yii2 基础网店系统开发教程 [ 未指定版本 ]
从零起用YII制作电子商务网站
演示:http://shop.onephp.com.cn
前后台管理员:test,111111
前言
我用YII做网站,最主要的原因就是自己“懒”。用PHP做过几年的网站开发,每当写点新东西时,都觉
得挺累的,做一些稍大的开发时,总感觉力不从心。一个偶然的机会,接触了YII框架,经过看手册,感
觉挺深奥的,心里就在想,到底要不要学下去?到底值不值得学?会不会最终半途而废呢?最终还是坚
定了信念。YII很多东西都是现成的,拿过来配置一下直接可以用,何乐不为呢?
这个教程主要是实现一个购物网站的基本功能,属于入门级的资料,但有些地方讲的不是很细,所以,事先要对YII做一些认识,推荐看一下爱慕网上的YIi视频,及对 yiichina上的中文文档先了解一遍。
主要配置实现了RBAC,购物车功能,会员中心,前后台分离,邮件发送,URL管理等功能.
本教程是做完程序之后写出来的,如果有写错或写漏的地方,请多包涵。
1.安装Composer
安装方法介绍:https://getcomposer.org/download/
我采用的是手动安装 直接下载 composer.phar放在项目根目录shop下
CD到shop下
php composer.phar global require "fxp/composer-asset-plugin:~1.0.0"
注:如果composer下载的是可执行文件,上面的 php composer.phar 改为composer
2.安装Yii2高级模板:
php composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.8
数据配置
位置:
common\config\main-local.php
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=shop',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
],
双击advanced目录下面的init.bat文件即可 根据得示进行配置
打开下面文件,可以直接在phpmyadmin里导进去, 用RBAC
vendor\mdmsoft\yii2-admin\migrations\schema-mysql.sql
注:在配置的不同阶段,都可以打开 127.0.0.1/shop/backend/web 查看效果,如有问题,请及时处理
,再住下做
3.但上面的方法是直接连接到国外网站,速度会比较慢,所以,先进行镜像安装。
镜像安装方法:http://pkg.phpcomposer.com/
我这里进行了系统全局配置
php composer.phar config -g repo.packagist composer https://packagist.phpcomposer.com
(注:composer更新命令是 composer selfupdate)
4.安装AdminLTE https://github.com/dmstr/yii2-adminlte-asset
4.1
cd到shop下,执行命令
php composer.phar require dmstr/yii2-adminlte-asset "2.*"
(注:安装过程,如果中断,可多试几次,如果出错,可根据错误提示,进行故障排除)
4.2
把vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app
目录下的layouts和site复制
到backend/views下的lauouts和site,有同名的覆盖掉
5.安装 https://github.com/mdmsoft/yii2-admin
5.1
方法:cd到shop下
php composer.phar require mdmsoft/yii2-admin "~2.0"
找到backend/config/main.php
"modules" => [
"admin" => [
"class" => "mdm\admin\Module",
],
],
"aliases" => [
"@mdm/admin" => "@vendor/mdmsoft/yii2-admin",
],
"components" => [
"authManager" => [
"class" => 'yii\rbac\DbManager', //这里记得用单引号而不是双引号
"defaultRoles" => ["guest"],
],
...
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'*' //不做限制的访问,在测试阶段很有用
]
],
打开文件
vendor/yiisoft/yii2/rbac/migrations/schema-mysql.sql
文件
导入数据库
5.2
打开文件 backend\view\layouts\left.php
添加菜单
<?php
echo dmstr\widgets\Menu::widget( [
'options' => ['class' => 'sidebar-menu'],
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id),
] );
?>
至此,大家就可以自个儿琢磨添加菜单,配置权限
5.3
根据菜单表及对应的相关文件,可以复制出订单列表,商品分类,商品列表等功能,然后再根据实现情况,进行字段的增删及文件的修改。
根据USER及对应的文件,可以复制出会员管理表及文件
5.4 设置为中文语言
对应中文翻译文件
shop\vendor\mdmsoft\yii2-admin\messages\zh-CN
配置文件
Common\config\main.php
'name'=>'OnePHP1.0', //定义名称
'language' => 'zh-CN', //定义语言
至此,后台部分就差不多了。
下面看一下前台部分。
1.1
Cd到shop目录 下载购物车模块
php composer.phar require --prefer-dist omnilight/yii2-shopping-cart "*"
1.2
同时另建一个项目 下载购物车系统
https://github.com/samdark/yii2-shop
git clone https://github.com/samdark/yii2-shop.git
composer self-update
composer global require "fxp/composer-asset-plugin:~1.1.1"
cd yii2-shop
composer install
这个本来是一个完整的购物车系统(基于omnilight),我们只用部分文件就可以了
把这个项目下的catalog,cart部分复制到我们的shop项目对应位置。
这样的话,很轻松的前台部分我们就做出来了。下面进行一些其它工作即可。
1.3前后台用户登陆分开
后台部分
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => [
'name' => '_backendUser', ],
],
]
前台
'components' => [
'user' => [
'identityClass' => 'common\models\Member',
'enableAutoLogin' => true,
'identityCookie' => [
'name' => '_frontendUser', // unique for frontend
],
'idParam' => '__member'
],
]
Common\models\User.php 复制一份为 Member.php 并改动表名
1.4邮箱配置
Common\config\main-local.php
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'mail.onephp.com.cn', //每种邮箱的host配置不一样
'username' => 'support@onephp.com.cn',
'password' => ******,
'port' => '25',
//'encryption' => 'ssl',
],
'messageConfig'=>[
'charset'=>'UTF-8',
'from'=>['support@onephp.com.cn'=>'Support']
],
],
]
演示:http://shop.onephp.com.cn
前后台管理员:test,111111
37389
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝2
- 金钱25
- 威望10
- 积分125
共 3 条评论
这个帖子应该发到源码比较好,另外,你再好好编辑一下,尤其是代码部分。
那你帮我转过去吧,网站和代码都会慢慢完善的。
无法在这里上传图片是怎么回事?
这个本来是一个完整的购物车系统(基于omnilight),我们只用部分文件就可以了
把这个项目下的catalog,cart部分复制到我们的shop项目对应位置。
catalog,cart部分在哪哦,找半天都没找到。
呃呃呃,找到了views里面