Yii框架是个不错的php开发框架,大型项目上都可以使用。和大多框架一样他也是开源,而且采用了mvc结构的。

Yii1.*,直接下载然后用脚步可以创建自己的项目了,最近看了下Yii2.0版本的,他推荐用composer来安装。当然也可以用类似1.*版本的安装方式。

这篇咱们就说说2.0的composer方式安装。

1、既然是composer方式安装,那就要先有composer了,如果没有的话就自己下载安装,具体可以参考 https://getcomposer.org/doc/00-intro.md#installation-nix 的说明。咱们具体说下window下的常规安装,就是下载 Composer-Setup.exe 然后按普通的下一步就行,期间可能会让你选择下php.exe 文件的位置,安装完成后他会自动把composer的bin目录加入到 系统变量 %path% 里面。

2、按照Yii Framework中文社区里的说明,接下来就要执行命令 来安装Composer Asset插件,

php composer.phar global require "fxp/composer-asset-plugin:1.0.0"  

这个时候会提示有关 composer.phar的问题,解决的办法是采用全路径,比如:

php C:\ProgramData\ComposerSetup\bin\composer.phar global require "fxp/composer-asset-plugin:1.0.*" 。

3、接下来就是要安装Yii框架了,他分为基础模板和高级模板,我发现只下载高级模板的话会少很多东西,这个以后研究,所以推荐先现在基础模板。同样会有上面第2条的路径问题,所以命令行大概是这样的:

php C:\ProgramData\ComposerSetup\bin\composer.phar create-project yiisoft/yii2-app-basic basic 2.0.3 。

他会在你执行此脚本的路径下新建一个 base 目录,然后把框架代码和插件放到这个目录下,期间可能会提示你输入github的账号信息,如果没有的话需要在 https://github.com/ 去申请,很简单的,在我第二次安装的时候没有提示输入,可能是他有记忆功能,把第一次输入的信息记录了,以后直接使用。此过程还可能提示某些问题,例如:

Problem 1
- yiisoft/yii2 2.0.3 requires bower-asset/punycode 1.3.* -> no matching package found.
- yiisoft/yii2 2.0.2 requires bower-asset/punycode 1.3.* -> no matching package found.
- yiisoft/yii2 2.0.1 requires bower-asset/punycode 1.3.* -> no matching package found.
- yiisoft/yii2 2.0.0 requires bower-asset/punycode 1.3.* -> no matching package found.
- Installation request for yiisoft/yii2 * -> satisfiable by yiisoft/yii2[2.0.0, 2.0.1, 2.0.2, 2.0.3].

这时就要手动去安装下,可以参考上一条的安装指令。比如我刚才提到的那个问题可以用下面的指令去安装:

php C:\ProgramData\ComposerSetup\bin\composer.phar global require "bower-asset/punycode:1.3.*"

然后在运行指令脚步:

php C:\ProgramData\ComposerSetup\bin\composer.phar create-project yiisoft/yii2-app-basic basic 2.0.3

就不会有问题了。

4、然后就可以启动nginx或者apache,通过浏览器访问base这个目录了,我做了host和apache的虚拟主机,访问requirements.php的url,类似这样的地址

http://yii2.wayne.com/requirements.php。

然后可以看到当前系统能否支持Yii2.0框架的最低要求,主要是数据库,gd库,memcache缓存等的扩展,大部分可以通过修改php.ini文件解决。对于warning的也不用都解决,看说明,是不是会用到那部分,而且这个在过后还可以通过修改系统来支持的。

如果conclusion下面有

Your server configuration satisfies the minimum requirements by this application.

这句话就说明满足了最小要求。

5、然后就可以访问 http://yii2.wayne.com/web/ 目录了,这里的index.php是单点接入文件。如果看到 congratulation 就说明成功了。

6、为了访问方便和安全可以把 basic/web 设为 Web 服务器根目录并配置,然后访问的url就更加简短且舒服了。比如 http://yii2.wayne.com/,请注意下页面最下边有个YiiDebugger,这个显示了一些信息,挺不错的。

7、我们先大概了解下Yii框架下的主要文件结构

basic/                  应用根目录
composer.json Composer 配置文件, 描述包信息
config/ 包含应用配置及其它配置
console.php 控制台应用配置信息
web.php Web 应用配置信息
commands/ 包含控制台命令类
controllers/ 包含控制器类
models/ 包含模型类
runtime/ 包含 Yii 在运行时生成的文件,例如日志和缓存文件
vendor/ 包含已经安装的 Composer 包,包括 Yii 框架自身
views/ 包含视图文件
web/ Web 应用根目录,包含 Web 入口文件
assets/ 包含 Yii 发布的资源文件(javascript 和 css)
index.php 应用入口文件
yii Yii 控制台命令执行脚本

新的版本里config下多了两个文件params.php 和 db.php,是把params 和 db的参数分离出来,最终还是包含在web.php 文件里的。

一般来说,应用中的文件可被分为两类:在 basic/web 下的和在其它目录下的。前者可以直接通过 HTTP 访问(例如浏览器),后者不能也不应该被直接访问。

Yii 实现了模型-视图-控制器 (MVC)设计模式,这点在上述目录结构中也得以体现。 models 目录包含了所有模型类,views 目录包含了所有视图脚本,controllers 目录包含了所有控制器类。

默认控制器事 site 控制器,也可以在配置文件 web.php 里配置:

'defaultRoute' => 'main',

以下图表展示了一个应用的静态结构:

每个应用都有一个入口脚本 base/web/index.php,这是整个应用中唯一可以访问的 PHP 脚本。入口脚本接受一个 Web 请求并创建应用实例去处理它。 应用在它的组建辅助下解析请求,并分派请求至 MVC 元素。视图使用小部件去创建复杂和动态的用户界面。

请求生命周期
以下图表展示了一个应用如何处理请求:

  1. 用户向入口脚本 base/web/index.php 发起请求。
  2. 入口脚本加载应用配置并创建一个应用实例去处理请求。
  3. 应用通过请求组件解析请求的路由。
  4. 应用创建一个控制器实例去处理请求。
  5. 控制器创建一个操作实例并针对操作执行过滤器。
  6. 如果任何一个过滤器返回失败,则操作退出。
  7. 如果所有过滤器都通过,操作将被执行。
  8. 操作会加载一个数据模型,或许是来自数据库。
  9. 操作会渲染一个视图,把数据模型提供给它。
  10. 渲染结果返回给响应组件。
  11. 响应组件发送渲染结果给用户浏览器。

还有更详细的文档参考官方的说明 http://www.yiichina.com/doc/guide/2.0/start-installation

Yii框架2.0的安装过程的更多相关文章

  1. Linux Red Hat 8.0虚拟机安装过程

    Linux Red Hat 8.0虚拟机安装过程 一.安装虚拟机所需要的工具: 1.VMware Workstation Pro 2.Red Hat 8.0 虚拟机镜像 3.还有一个就是VMware的 ...

  2. CentOS 7下Cloudera Manager及CDH 6.0.1安装过程详解

    目录 一.概念介绍 1.CDH 概览 2.Cloudera Manager 概览 二.环境准备 1.软件版本选择 2.节点准备(四个节点) 3.配置主机名和hosts解析(所有节点) 4.关闭防火墙 ...

  3. Red5 1.0.5安装过程记录

    Red5从旧的服务器切换到了github上后,截至20150702仍未更新文档.为了搭建Red5开发环境,我像无头苍蝇一样乱转了很多博客和StackOverflow.藉此记录这次安装过程,希望能够帮助 ...

  4. VCenter6.0.0的安装过程

    背景和实验环境介绍 操作系统环境:windows 2008R2 中文企业版 前期环境配置 配置IP信息,把DNS改成自己的IP 修改主机名和后缀 安装和配置DNS服务 Vcenter 添加dns角色 ...

  5. 一,我的Android Studio 3.0.1 安装过程

    安装成功于20171231的0:46分. 简要记录我的安装过程如下: 一,安装JDK1.8.X 二,安装ANDROID STUDIO.ZIP 三,运行AS,后按提示下载SDK,NDK,必要时设置一下J ...

  6. 在Ubuntu 14.04 TLS下openvas V8.0源代码安装过程

    [Qboy原创]详细记录源代码的安装过程 1.下载原代码 在http://www.openvas.org/install-source.html下载 Libraries 8.0.8 Scanner 5 ...

  7. opencv3.4.0 安装过程中出现的问题

    重新安装opencv3.4.0 参考安装博客: opencv 安装版本测试:pkg-config --modversion opencv https://blog.csdn.net/cocoaqin/ ...

  8. Yii框架2.0的Gii

    Yii框架的Gii在我看来算是个快速创建器,当然对于学习来说意义不大,但对于已经懂得他的原理并用他开发的话,就是个快速开发的好工具. 他能快速的创建控制器,模块,crup,插件,Module. 打开g ...

  9. Hadoop2.3.0具体安装过程

    前言:       Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-co ...

随机推荐

  1. CentOS下安装网卡驱动

    前言最近,一台机器从FreeBSD换为CentOS,一路安装顺利.完事之后发现,网卡没有启用,dmesg | grep eth 命令确定网卡没有驱动导致的.于是开始了一路艰辛的安装过程. 安装过程1. ...

  2. Python操作Word:常用对象介绍

    前面已经介绍过了试用win32com类库来进行Word开发,系列文章<Python操作Word>是继承了前面的文章,所以,你应该先查看前面的文章,其实只有两篇,文章地址列在最下面的参考资料 ...

  3. MapReduce编程实例6

    前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop ...

  4. 编译hadoop,spark遇到的问题总结

    编译hadoop2.6.4 1.JDK8版本过高,换成JDK7: 2.换成命令行mvn package -Pdist,native -DskipTests-Dtar-Dmaven.javadoc.sk ...

  5. KMP算法完整教程 (下)

    下面我们用数学归纳法来解决这个填值的问题. 这里我们借鉴数学归纳法的三个步骤(或者说是动态规划?): 1.初始状态 2.假设第j位以及第j位之前的我们都填完了 3.推论第j+1位该怎么填 初始状态我们 ...

  6. Entity Framework(七):Fluent API配置案例

    一.配置主键 要显式将某个属性设置为主键,可使用 HasKey 方法.在以下示例中,使用了 HasKey 方法对 Product 类型配置 ProductId 主键. 1.新加Product类 usi ...

  7. 如何让jquery-easyui的combobox像select那样不可编辑

    http://zhidao.baidu.com/link?url=td61iIn_MBCs1FvT7b-B9Lp9VzlyrcnGmSbkCy1EsSzuod5o47zTmJFRQ-xizxdqv1E ...

  8. 辛星和您一起解析PHP中的单例模式

    事实上单例模式还是用的挺多的,要说到最经典的样例.可能就是操纵数据库的类了,它假设是单例的话,能够避免大量的new操作消耗资源,而假设系统中须要一个类来管理全局的信息,则把它用成单例也是非常不错的.由 ...

  9. 收藏几个支持中文的PHP字符串截取函数

    字符串截取是一个非常常见的编程任务,而往往带中文的字符串截取会经常用到.虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了. <?php func ...

  10. thinkPHP隐藏url地址栏中的index.php方法

    http://localhost/workSpace/First/index.php/Home/Index/index隐藏上面url中的index.php方法如下: 第一步.删除apache配置文件( ...