目录
Yii2的相关学习记录,初始化Yii2(二),初始化yii2
首页 php教程 php手册 Yii2的相关学习记录,初始化Yii2(二),初始化yii2

Yii2的相关学习记录,初始化Yii2(二),初始化yii2

Jun 13, 2016 am 08:43 AM
初始化

Yii2的相关学习记录,初始化Yii2(二),初始化yii2

前面已经将Yii2下载下来了,那我们就需要能实际的使用。

一、初始化,因为我都是在windows系统下,所以用cmd命令打开下载下来的Yii2的根目录。然后运行下面命令:

init
登录后复制

会提示选择0为开发环境,1为生成环境。一般选生产环境。后期可以同样输入此命令来切换开发环境和生产环节,但是需要注意切换时需要提前在“environments”目录中中提前写好生产环境的配置,以免切换时覆盖丢失配置项,后面还会说,现在继续往下走。

二、配置数据库,现在前台访问地址为:http://localhost/vishun/backend/web/index.php,后台访问地址为:http://localhost/vishun/frontend/web/index.php,其中vishun是我Yii框架安装的目录名称。现在访问时会报数据库连接的错误,因为数据库没有连接上,所以,我们需要先创建一个数据库(个人比较喜欢用phpmyadmin),然后在Yii2中配置数据库参数:

配置文件在三个地方存在,common/config,frontend/config,backend/config,一般来说common是放前后台都会用到的配置文件,而frontend和backend则是放各自的配置文件,如果重复,则前后台的会覆盖公用的。

每个文件夹下又分为main.php和main-local.php,这主要是为了团队协作,一般团队成员都在自己的电脑环境下开发,然后提交到git或svn上。所以团队成员用自己的数据库账号密码什么的,如果提交上去,其它团队成员更新下来和自己的账号密码不对,就会产生错误,所以数据库等配置文件放在*-local文件中,提交时*-local的文件不提交。

但是如果不提交还是会有问题,像是一个新成员加入,直接从git上下载代码下来,但是数据库配置文件由于所有人都没有提交,整个程序不完整,那就导致新成员根本就没有数据库的配置。所以这里还需要用到上方提到过的environments目录,这里面有dev(开发)和prod(生产)两种环境,主要是存储*-local文件的模板。在使用init命令时,就会根据这里面的文件来生成*-local文件,然后新成员在文件中填上自己的数据库账号密码就可以使用了。

以上团队环境详细说明可以看这里:深入理解Yii2.0--环境和配置文件,说的非常详细。

三、配置完成后就可以,还是会报错,但不是报数据链接的错误了,而是user表没有找到。那我们就创建user表。Yii2高级版框架中user表已经写好了,可以打开console/migrations下有*_init.php文件,这个就是写好的user表。只需在cmd中Yii2根目录下运行命令:

yii migrate
登录后复制

这样user表就创建好了。这时访问前后台都OK了。migrate命令是Yii框架迁移或者修改数据库的工具,尤其的在团队协作中,如果成员在本地电脑上增加了一张表,如何告知其它成员呢,用yii migrate/create命令就可在console/migrations创建一个改动,然后就增加的表内容写在里面,提交后其它成员更新后,用yii migrate命令,即可将自己的数据库同步到最新的,绝对是十分方便。migrate功能还很多,自己也没完全弄清楚呢,可能在下面的前后台分离章节中还会说。

四、顺便说下配置邮箱吧。完成前三步功能时,就可以注册个会员看看,当忘记密码时,则在登录界面点击忘记密码,需要通过邮件来找回,所以我们需要配置下邮箱:

Yii2高级版框架中是集成了邮箱类的,在common/config/main-local.php文件可以看到:

'mailer' =><span> [
    </span>'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',<span>
]</span>,
登录后复制

这就是相关的配置文件,之所以放到*-local文件中,因为包含个人账号的敏感信息。

上面的配置信息是不全的,需要填写发件邮箱,端口号什么的,所以修改上面为:

'mailer' =><span> [
    </span>'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',
    <span>//</span><span> send all mails to a file by default. You have to set
    // 'useFileTransport' to false and configure a transport
    // for the mailer to send real emails.</span>
    'useFileTransport' => <span>false</span>,
    'transport' =><span> [  
        </span>'class' => 'Swift_SmtpTransport',  
        'host' => 'smtp.163.com', <span>//</span><span>我这里用163邮箱 </span>
        'username' => '你的邮箱名',  
        'password' => '你的邮箱密码',  
        'port' => '25',  
        'encryption' => 'tls',<span>
    ]</span>,
登录后复制
<code class="hljs dart"><span class="hljs-string">  //'messageConfig'=>[  
   //  <span class="hljs-string">'charset'=><span class="hljs-string">'UTF-8',  
   //  <span class="hljs-string">'from'=>[<span class="hljs-string">'你的邮箱名'=><span class="hljs-string">'robot']  
   //],  </span></span></span></span></span></span></code><span>           
]</span>,        
登录后复制

而发送邮件的整个流程方法在Yii2高级版中都写好了,所以只需要配置就能发送了。

配置完上方后,可能找回密码发送邮件是应该还会报错,类似这种:

Expected response code 250 but got code "553", with message "553 Mail from must equal authorized user
登录后复制

这是因为有些邮件服务器要求from和username必须一直,例如网易的服务器,而在frontend/models/PasswordResetRequestForm.php中的sendEmail方法规定在63行左右,

 ->setFrom([\Yii::<span>$app</span>->params['supportEmail'] => \Yii::<span>$app</span>->name . ' robot'])
登录后复制

From是取得supportEmail参数,这个参数在common/config/params.php中定义了默认为:admin@example.com,配置文件中的邮箱名和这个不符合所以报错。方法一是把这个参数改成‘你的邮箱名’就可以正常发送了;方法二是将上方配置文件<span class="hljs-string">messageConfig</span>注释的取消,然后->setFrom这行删除掉。(所有的这些首先确保先开通smtp服务)

顺便说下,因为你邮箱配置实在*-local文件中,所以为了其它成员也都能用你这个配置,应该在environments/dev/common/main-local.php中添加:

'mailer' =><span> [
    </span>'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',
    <span>//</span><span> send all mails to a file by default. You have to set
    // 'useFileTransport' to false and configure a transport
    // for the mailer to send real emails.</span>
    'useFileTransport' => <span>false</span>,
    'transport' =><span> [  
        </span>'class' => 'Swift_SmtpTransport',  
        'host' => '', <span>//</span><span>空着,让其他人自己填写</span>
        'username' => '',  
        'password' => '',  
        'port' => '',  
        'encryption' => 'tls',<span>
    ]</span>,

    'messageConfig'=><span>[  
    </span>'charset'=>'UTF-8',  
    'from'=>[''=>'robot'<span>]  
    ]</span>,<span>             
]</span>,        
登录后复制

这样,其他人只需要填上自己的邮箱账号就可以发送邮件了。

很多时候邮件填写都是从数据库获取的,这时候就不应该在配置文件中了,而是应该单独写个类,(类似新建components文件并引入,写在这里面),顺便封装下发送方法。我自己也没实习过,只是思路而已。

以上就是Yii2高级版的初始化,下节可能记录下如何套用好看的后台界面和gii自定义模板什么的。睡觉了先。

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Windows 无法初始化此硬件的设备驱动程序(代码 37)修复 Windows 无法初始化此硬件的设备驱动程序(代码 37)修复 Apr 14, 2023 pm 01:22 PM

当 Windows 检测到设备的驱动程序不兼容或损坏时,它无法对其进行初始化。设备停止工作,当用户调查时,“ Windows 无法为此硬件初始化设备驱动程序(代码 37) ”错误消息显示在“设备状态”窗格中。解决这个问题很容易,你可以很容易地做到这一点。修复 1 – 扫描计算机您可以扫描设备以查找任何硬件更改。Windows 最终将检查并检测任何驱动程序更改。1.您只需右键单击“ Windows键”并点击“设备管理器”。2. 当设备管理器出现在您的系统上时,单击菜单栏上的“操作”。3. 在这里,

修复: Windows 无法初始化此硬件的设备驱动程序 修复: Windows 无法初始化此硬件的设备驱动程序 Apr 13, 2023 pm 01:19 PM

错误代码 37 表示 Windows 检测到设备驱动程序存在问题,无法启动硬件设备。这意味着您的系统上未正确安装软件设备驱动程序,或者您尝试使用的硬件与 Windows 不兼容。您已经知道驱动程序对于设备的平稳运行至关重要,因此如果您要使用硬件设备,则需要立即解决此错误。在本文中,我们将向您展示绕过此错误的各种方法。是什么原因导致 Windows 错误代码 37?当您得到 Windows 无法初始化此硬件的设备驱动程序时。(代码 37) 消息,它可能由几个问题引起,包括:兼容性问题 – 当您将硬

动态链接库初始化例程失败什么办 动态链接库初始化例程失败什么办 Dec 29, 2023 am 10:30 AM

解决办法:1、重新安装应用程序;2、修复或重新安装DLL;3、系统还原或检查点恢复;4、使用系统文件检查器(SFC)扫描;5、检查启动项和服务;6、使用工具;7、查阅官方文档或论坛;8、考虑安全软件;9、查看事件查看器;10、寻求专家帮助等等。

win7怎么初始化电脑 win7怎么初始化电脑 Jan 07, 2024 am 11:53 AM

win7系统是一款非常优秀的高性能系统,在对win7的不断使用中有很多的朋友都在问win7怎么初始化电脑!今天小编为大家带来的就是win7电脑恢复出厂设置的操作方法。win7怎么初始化电脑的相关信息:图文详解操作步骤:1、打开“开始菜单”,然后进入。2、点击进入左侧底部的设置。3、在Win10更新和恢复设置的界面中,选择。4、点击“删除所有内容并重新安装Windows”下方的。5、可以看到如下“初始化”设置了,然后点击。6、进入“你的电脑有多个驱动器”设置选项,这里有和两个选项,可以根据情况选择

修复无法初始化PC上的图形系统错误 修复无法初始化PC上的图形系统错误 Mar 08, 2024 am 09:55 AM

许多游戏玩家遇到了游戏无法初始化图形系统的令人沮丧的问题。这篇文章将深入探讨这个问题背后的常见原因,并找到简单而有效的解决方案,让你重新回到棋盘上,并在任何时间内通过关卡。因此,如果你在过山车大亨、刺客信条、托尼·霍克的职业溜冰者等中收到无法初始化图形系统错误信息,请遵循本文中提到的解决方案。初始化错误无法初始化图形系统。不支持显卡。修复无法初始化图形系统错误信息要解决过山车大亨、刺客信条、托尼·霍克的专业溜冰者等游戏中的无法初始化图形系统错误,可以尝试执行以下解决方法:更新显卡驱动程序在兼容模

如何重置win7网络设置 如何重置win7网络设置 Dec 26, 2023 pm 06:51 PM

win7系统是一款非常优秀的高性能系统,最近一段时间里有很多win7系统的小伙伴们都在找win7怎么初始化网络设置的方法,今天小编为大家带来的就是win7电脑网络初始化的详细教程一起来看看吧。win7怎么初始化网络设置的详细教程:图文操作步骤:1、点“开始”菜单,找到并打开“控制面板”,进去之后再点“网络和共享中心”。2、然后找到并点开“更改适配器设备”。3、接下来,在打开的窗口中,鼠标右键点击“本地连接”,再点“属性”。4、打开之后,就找到“Internet协议版本(TCP/IPv4)”,再双

C++程序初始化字典 C++程序初始化字典 Sep 09, 2023 pm 07:01 PM

C++在同名的字典方面与Python不同,但它具有相似功能的相同数据结构。C++支持映射,可在STL类std::map中使用。映射对象在每个条目中包含一对值,一个是键值,另一个是映射值。键值用于在映射中搜索和唯一标识条目。而映射值不一定是唯一的,键值在映射中必须始终是唯一的。让我们看一下如何使用映射。首先,让我们看看如何在C++中定义一个映射数据结构。语法#includemap<data_type1,data_type2>myMap;让我们举个例子,看看如何做到这一点−示例#incl

修复:新 SSD 未在 Windows 11、10 中显示 修复:新 SSD 未在 Windows 11、10 中显示 Apr 14, 2023 pm 02:52 PM

SSD 彻底改变了技术世界。这些数据存储解决方案凭借其超快和无与伦比的读/写速度,让每个用户都渴望在其中安装系统操作系统。但是,如果您的新 SSD 没有出现在您的 Windows 设备上怎么办?这是插入系统的全新 SSD 可能面临的一个典型问题。不用担心。我们刚刚得到了正确的解决方案,您所要做的就是按照这些步骤操作,SSD 将立即回到您的文件资源管理器。解决方法——1. 检查SSD的连接。如果您使用的是 USB 集线器,请将 SSD 直接连接到您的系统。查看 SSD 的连接器是否有任何物理缺陷。

See all articles