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. vue-cli中实现全选、单选计算总价格(vue2.0)

    <template> <div> <table> <tr> <td><input type="checkbox" ...

  2. JS学习笔记(2)--正则表达式获取指定字符串

    js 正则提取字串 这里就有:SA 怎么用正则提取sa出来 var str=“这里就有:SA ”怎么用正则提取sa出来 YDhcui | 浏览 2087 次 推荐于2016-05-30 18:25:4 ...

  3. 【基础练习】【区间DP】codevs2102 石子归并2(环形)题解

    题目描写叙述 Description 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次仅仅能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个 ...

  4. 面向对象设计原则三:里氏替换原则(LSP)

    里氏替换原则(LSP)定义:在任何父类出现的地方都可以用它的子类类替换,且不影响功能.解释说明:其实LSP是对开闭原则的一个扩展,在OO思想中,我们知道对象是由一系列的状态和行为组成的,里氏替换原则说 ...

  5. HTML5关于上传API的一些使用(上)

    HTML5提供了很多有用的API,其中就包括上传的API,XMLHttpRequest2.0,在HTML5时代之前,需要进行二进制的上传一般都会才用flash的方案,但是当XMLHttpRequest ...

  6. Ci 错误 In order to use the Session class you are required to set an encryption key in your config file.

    说明自己没有给session 加密  ,在配置文件config中     $config['encryption_key'] = '2rf3f3fwefwefwef2';

  7. dedecms中如何去掉文章页面的广告

    在arcticle_arcticle.htm页面找到广告调用代码{dede:myad name='myad'/}全部去掉就好了,如果要换成自己的广告,就换广告位标识 myad 就可以了

  8. 关于Unity5.5中2D动画的制作

    1.首先要创建一个精灵 GameProject--2Dproject--Sprite 叫bird 2.给这个精灵附加纹理,并让它显示自己想让它显示的场景层中,一般它的静止纹理就是动画的第一张图片 3. ...

  9. opencv 摄像头人脸检测

    PYTHON ubuntu16.04 默认安装的Python版本2.7.12,当用pip install opencv-python 安装了opencv for python 3.3.0.10后,运行 ...

  10. HashSet非常的消耗空间,TreeSet因为有排序功能,因此资源消耗非常的高,我们应该尽量少使用

    注:HashMap底层也是用数组,HashSet底层实际上也是HashMap,HashSet类中有HashMap属性(我们如何在API中查属性).HashSet实际上为(key.null)类型的Has ...