Skip to content

CrazyJexon/hello-yii2

 
 

Repository files navigation

目录

说明

这是我在空闲时间用yii2-basic来研究各种杂七杂八的插件的项目,里面的业务代码不一定能在实际工作中使用,仅供参考,当然我用这一套代码在实际工作时有遇到能减少代码量的方法,基本都会加到这里来。

项目部署

PHP配置

  • 扩展:openssl、pdo_mysql、fileinfo

  • 程序上的上传文件大小限制在app\models\Music里,目前的设置是20MB,php.inipost_max_sizeupload_max_filesize两个值需要配置一下,

安装第三方扩展和创建数据库表

你要有composer,执行以下命令:

composer self-update
composer global require "fxp/composer-asset-plugin:^1.2.0"
composer install

创建一个utf8数据库,在config/db.php文件配置好MySql相关参数后,执行以下命令:

php yii migrate --migrationPath=@yii/rbac/migrations
php yii migrate --migrationPath=@mdm/admin/migrations
php yii migrate
php yii migrate --migrationPath=@kartik/dynagrid/migrations

服务器配置

因为路由规则需要,需要开启rewrite而且把web目录设置为站点根目录。

apache的.htaccess文件我已经配置好放在web目录里了。vhost配置可以和以下那么简单(视情况而定,我在windows用的是集成环境PHPStudy,一般直接用集成环境自带的添加网站就好,当然懂自己动手是坠吼的):

<VirtualHost *:80>
    DocumentRoot "path/to/hello-yii2/web"
    ServerName hello-yii2.dev
</VirtualHost>

nginx可以参考这篇文章

详情可以直接参考官方文档

使用

  • config/web.php里找到邮箱的配置并配置好,才能用找回密码的功能。

  • 用户名和密码如下:

身份 用户名 密码
超级管理员 hu hbw12345
普通用户 test qwer1234

结构说明

我的代码是在gii生成的model和CRUD代码上修改而来的,如果你也是这个套路的话,那我的代码应该不怎么难理解,就model和原来的有些区别,详情请往下拉

文件和目录

(写给初学者的)除了入口文件web/index.php配置文件config/web.php数据库配置文件config/db.php以外,其他你只需关注的地方如下:

目录 说明
models 放model的地方,详情请往下拉
modules 模块,控制器和视图都在这里了,模块的名字顾名思义
views 目前只是放布局文件而已,布局结构详情请往下拉

另外没提到的资源、邮件模板、翻译、数据库迁移的文件不重要,想看的随便看看就好。

Model

首先我用gii生成model到models/base目录下,取名为'ModelBase',接着会在models目录下新建一个'Model'来继承'ModelBase',以后有代码都写到'Model'里,这样做的好处是修改了数据库表结构后重新生成model可以直接覆盖'ModelBase'。

Layout

master(最外层,layout不直接指向这里)
├ frontend(前台外层,layout不直接指向这里)
│ ├ main(前台)
│ ├ user(用户模块)
│ └ user_form(用户模块的表单)
└ backend(后台)

layout统一在config/modules.php配置。

打赏

如果觉得我做的内容对你有帮助的话,求打赏,以后我会有更多动力去学习和分享更多yii2的内容。

alipay

wechat

感谢以下这些朋友的支持。

打赏人 QQ 金额
誓言 443536249 50.00
山中石 1146283 50.00
东方不拔 790292520 30.00
欲买桂花同载酒。 1054828207 18.88
a boy with a mission 727492986 8.88

About

练手用的项目

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 98.7%
  • Other 1.3%