Yii框架2.0的安装过程
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 元素。视图使用小部件去创建复杂和动态的用户界面。
请求生命周期
以下图表展示了一个应用如何处理请求:
- 用户向入口脚本 base/web/index.php 发起请求。
- 入口脚本加载应用配置并创建一个应用实例去处理请求。
- 应用通过请求组件解析请求的路由。
- 应用创建一个控制器实例去处理请求。
- 控制器创建一个操作实例并针对操作执行过滤器。
- 如果任何一个过滤器返回失败,则操作退出。
- 如果所有过滤器都通过,操作将被执行。
- 操作会加载一个数据模型,或许是来自数据库。
- 操作会渲染一个视图,把数据模型提供给它。
- 渲染结果返回给响应组件。
- 响应组件发送渲染结果给用户浏览器。
还有更详细的文档参考官方的说明 http://www.yiichina.com/doc/guide/2.0/start-installation。