linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux基础建设 >

Yii2 的安装及简单使用

时间:2019-06-11  来源:未知  作者:admin666

前段时间第一次使用Yii2框架,碰到了一些问题,这里记录一下。

Yii2安装:通过composer安装

1、首先要安装composer,我在另外一篇博客中介绍了如何在Windows下安装composer。

2、全局设置 Composer 使用中国镜像:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

3、安装composer-asset-plugin(如果不安装composer-asset-plugin后面安装yii2时会出现问题,这里默认安装最新版)

composer global require "fxp/composer-asset-plugin"

4、(1)安装基础版,projectName是自己的项目名。

composer create-project --prefer-dist yiisoft/yii2-app-basic projectName

(2)安装高级版。(高级版区分了前后台目录backend,frontend)

composer create-project --prefer-dist yiisoft/yii2-app-advanced projectName

注:高级版安装后需要初始化,双击根目录下的"init.bat"文件,选择"0"(表示开发环境),之后选择"yes"就可以了,会自动生成入口文件。

5、配置域名信息就可以访问了。(高级版需要分别配置前后台域名)

可能出现的问题:

安装下来后可能会出现的问题:找不到vendor文件夹。

原因:composer-asset-plugin没有安装或者版本太低

解决办法:找到文件的根目录,即composer.json文件目录,打开命令行执行:composer update

Yii 2的简单使用:

1、路由优化

找到 /frontend/config/main.php 文件,找到以下代码,去掉注释,运行后发现可以去掉"?r="使用"/"代替,但是还是不能去掉index.php。

'urlManager' => [
    'enablePrettyUrl' => true,  // 美化url去掉 ?r=
    'showScriptName' => false,  // 隐藏index.php
    'rules' => [
    ],
],

要去掉index.php,还需要在入口文件下添加.htaccess文件,文件内容如下:

# use mod_rewrite for pretty URL support
RewriteEngine on
# if a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward the request to index.php
RewriteRule . index.php

注:这个需要前后端都配置一遍。

2、驼峰命名路径访问

在yii2中如果使用驼峰命名,则默认使用"-",如要访问UserAdminController控制器下的actionTestUser方法,则访问路径为:/user-admin/test-user

3、使用post方法访问

在Yii2中如果不做处理,使用post访问会报错。这是因为Yii2使用post请求时默认会使用CSRF验证。

这里可以在表单中加入验证或者后台可以取消掉CSRF验证。

方法一:在表单中加入验证:(如果能使用这种方法最好)

<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>" />

方法二:全局配置,在配置文件中加入 'enableCsrfValidation' => false

在config文件夹下找到"components"配置下的"request"配置,在里面加入'enableCsrfValidation' => false表示取消掉CSRF验证。

方法三:局部配置,在单个控制器下配置

可以在单个控制器下添加代码:

public $enableCsrfValidation = false;

这样在这个控制器下的方法就可以使用post请求了。

Yii2处理密码加密及验证

在Yii2中提供了密码加密以及验证的一系列方法,方便我们的使用,它使用的是bcrypt算法。查看源码我们可以发现它使用的是PHP函数password_hash()和crypt()生成。

加密:

/**
 * $password  要加密的密码
 * $hash    加密后的hash字符串
 */
$hash = Yii::$app->getSecurity()->generatePasswordHash($password);

验证密码:

/**
 * $password  要验证的明文密码
 * $hash    加密后的hash字符串
 */
Yii::$app->getSecurity()->validatePassword($password, $hash);

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

友情链接
  • 适用于Windows 10的Microsoft Edge Dev 76.0.172.0已发布
  • 程序员人脸识别成人视频中的女性引发争议
  • 安装Oracle 11g RAC时报Failed to run “oifcfg” 和 找不到集群
  • Unity Tech正式宣布推出适用于Linux的新Unity编辑器
  • Oracle插入数据时出现 ORA
  • Phoronix Test Suite 8.8.1 发布
  • MySQL中使用group
  • X.Org Server 1.20.5 发布,一些XWayland和GLAMOR修复
  • MySQL中group by 与 order by 一起使用排序问题
  • Fedora 31考虑使用Zstd压缩其RPM包而不是XZ
  • PostgreSQL数据库安装部署
  • Google Chrome 成为互联网的看门人
  • Redis中Scan命令的使用
  • 华为Mate 20 Pro重回Android Q Beta支持名单中
  • TypeScript 3.5 发布,新增Omit 辅助类型
  • Redis集群模式下的redis
  • PyPI宣布2FA用于提高Python包下载安全性
  • MuseScore 3.1 发布,音乐制谱软件
  • openSUSE Leap 42.3 Linux操作系统将于2019年6月30日停止支持
  • Linux新闻 第974页
  • 美国司法部正计划对谷歌进行反垄断调查
  • 超六成Windows 10用户运行着一年前的版本
  • Linux里如何配置本地yum源和外网源
  • MySQL中group by 与 order by 一起使用排序问题
  • yum更换国内源及yum下载rpm包
  • MySQL中使用group_concat遇到的问题及解决
  • Linux 定时任务 Crontab
  • Oracle插入数据时出现 ORA-00001: unique constraint
  • Yii2 的安装及简单使用
  • SpringBoot配置加载顺序
  • git merge的使用
  • 编写shell脚本自动生成开头注释简介
  • JDK动态代理在RPC框架中的应用
  • 将Fedora 29升级到Fedora 30
  • Linux touch命令详述
  • Java实现对图片透明化处理
  • 如何在Ubuntu 18.04,19.04中安装uGet 2.2.2
  • ACL权限设置命令setfacl和getfacl命令
  • Nginx+Tomcat8+Memcached实现负载均衡及session共享
  • Redis集群模式下的redis-py-cluster方式读写测试
  • Linux命令 - facl文件系统的访问控制列表详解
  • 在Linux系统中创建SSH服务器别名
  • Redis中Scan命令的使用
  • Apache Camel XML外部实体注入漏洞(CVE-2019-0188)
  • shell脚本里使用echo输出颜色
  • PostgreSQL数据库安装部署
  • Apache Hadoop远程权限提升漏洞(CVE-2018-8029)
  • Google Chrome成为互联网的看门人
  • 欧洲杯直播频道
  • 彩票平台
  • 澳门银河国际网站
  • 28评测网
  • 新利棋牌
  • 中国娱乐场