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. doc转docx以及type对应的类型

    https://blog.csdn.net/flagang/article/details/51454665 // 作为type格式保存到临时文件 // *Variant(0):doc // *Var ...

  2. MySQL编程API

    1.MySQL API数据结构 MySQL API中用到了很多结构体类型,下面就简单说一下常用的结构体. MYSQL 连接数据库前,必须先创建MYSQL变量,此变量在很多MySQL API函数中会用到 ...

  3. std::string与output-operator"<<"的兼容问题

    经查阅资料得知,“在某些编译器下std::string,需要使用c_str()才能作为output-operator "<<" 的参数” std::string tit ...

  4. windows7环境下使用pip安装MySQLdb

    1.首先,需要确定你已经安装了pip.在Python2.7的安装包中,easy_install.py和pip都是默认安装的.可以在Python的安装目录先确认,如果\Python27\Scripts里 ...

  5. Spider Studio 新版本 (20140225) - 设置菜单调整 / 提供JQueryContext布局相关的方法

    这是年后的第一个新版本, 包含如下: 1. 先前去掉的浏览器设置功能又回来了! 说来惭愧, 去掉了这两个功能之后发现浏览经常会被JS错误打断, 很不方便, 于是乎又把它们给找回来了. :) 2. 为J ...

  6. shell向python传参数

    想要在shell中调用python脚本时实现: python pyServer.py argu1 argu2 argu3 利用 sys.argv 即可读取到 相应参数: # coding=utf-8 ...

  7. 回文树(回文自动机) - URAL 1960 Palindromes and Super Abilities

     Palindromes and Super Abilities Problem's Link: http://acm.timus.ru/problem.aspx?space=1&num=19 ...

  8. 你不知道的JavaScript学习笔记1——作用域

    处理程序三要素: 引擎:编译与执行过程. 编译器:语法分析与代码生成等. 作用域:收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套非常严格的规则,确定当前执行的代码对这些标识符的访问权 ...

  9. TensorFlow基础笔记(3) cifar10 分类学习

    TensorFlow基础笔记(3) cifar10 分类学习 CIFAR-10 is a common benchmark in machine learning for image recognit ...

  10. Unity四元数和旋转

    四元数介绍 旋转,应该是三种坐标变换——缩放.旋转和平移,中最复杂的一种了.大家应该都听过,有一种旋转的表示方法叫四元数.按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法——矩阵旋转和欧拉旋转. ...