说明:由于近期工作工作关系,须要开发一个在Linux下执行的Web Application,须要对如今比較流行的一些PHP框架做一个了解和评估,以下的这篇文章是笔者近期学习一个比較新的PHP Framework的一点经历和操作步骤,由于官方的手冊写得比較晦涩(特别是中文的),以前尝试遍读它那个手冊再动手,读了一大半发现仍无法理解,于是干脆先下手为强了,因而也就有了以下的文章。

介绍

Yii 是一个基于组件、纯OOP的、用于开发大型 Web 应用的高性能 PHP 框架。它将 Web 编程中的可重用性发挥到极致,可以显著加速开发进程。Yii适合大流量的应用,如门户、BBS、CMS及B2B系统等,功能丰富,性能优异,只是它的中文文档还不完好,而且有些命令行的操作是针对非Windows用户的,不易理解,所以制作了这篇文档。

下载地址:http://www.yiiframework.com/download/

中文文档地址:http://www.yiiframework.com/doc/guide/zh_cn

配置

以下针对本人的机器相关软件环境及路径做下说明:

Apache2.2.4+PHP5.2.5+MySQL5.1.39

在这里须要说明的是须要在设置Windows环境变量,在Path中加入PHP执行环境所在的文件夹(如本人在原有配置后加上”;C:/PHP”),由于使用Yii时须要PHP的执行环境。此外,在PHP版本号选择时建议不要选择比較高的版本号,本人是从PHP5.3.0->PHP5.2.11->PHP5.2.5一路降下来才执行成功的,建议尽量临时不要使用PHP5.3.0、PHP5.2.11,本人在使用这两个版本号过程中常常遇到一个ext文件夹下的dll文件不能载入的情况,当然你确认自己对PHP的配置相当熟悉的话例外。

由于在Yii中须要开启pdo和pdo_mysql,所以请确保在执行环境所使用的php.ini中取消了extension=php_mysql.dll、extension=php_pdo.dll、extension=php_pdo_mysql.dll的凝视。

Apache的站点根路径为D:/wwwroot,在这个根路径下创建一个名为YiiDemo的目录,将从网上下载到的Yii压缩包解压之后,拷贝进D:/wwwroot/YiiDemo目录,文件结构例如以下:

注:上图中demos、framework、requirements是Yii压缩包中的目录,其他文件和目录是本人使用Eclipse时创建的。此外,在D:/wwwroot/YiiDemo/framework目录下有一个yiic.bat文件,这个文件能够帮助我们高速生成站点架构和MVC相关的文件。

另外,在本实例中MySQL和PHP都是用了utf8编码,不建议使用gb2312编码,能显示的中文字符太少,而且对其他东亚语系不支持,甚至连生僻点的繁体中文都不能显示,而utf8能够解决问题。

创建站点初始结构

启动Windows命令行程序(在開始菜单上找到“执行”,然后输入“cmd”并回车),能够看到例如以下命令行窗体:

在命令行方式下切换到Yii的framework文件夹下用以运行yiic命令(实际运行的是yiic.bat),例如以下:

看到如上图所看到的的信息之后,就能够使用yiic来创建站点结构了,在本例中我们在D:/wwwroot/YiiDemo/framework(注意Apache中站点根路径为D:/wwwroot)下创建站点,站点名字为study,先在D:/wwwroot/YiiDemo/framework下手动创建study这个目录,然后使用例如以下命令创建站点:yiic webapp 站点路径,例如以下图:

在输入创建站点的命令之后就会看到如上图所看到的的提示,键入”y”之后就会在D:/wwwroot/YiiDemo/study文件夹创建站点的框架结构,例如以下图所看到的:

依照本人机器配置,如今就能够看到Yii框架的雏形显示了,网址是:http://localhost/YiiDemo/study/index.php

生成MVC文件

依照默认配置还不能使用数据库,要想获取与数据库的练习,须要更改配置,打开D:/wwwroot/YiiDemo/study/protected/config目录下的main.php文件,更改components中的配置就可以,’db’这一參数被凝视掉了,将’db’參数设置例如以下:

'db'=>array(

'connectionString'=>'mysql:host=localhost;dbname=study',

'username'=>'root',

'password'=>'jeri',

),

保存之后就可以连接MySQL数据库了,实际使用时要依据自己的实际情况配置。

在此将继续使用yiic这个命令行工具,通过cd切换工作路径到D:/wwwroot/YiiDemo/study这个目录,然后在命令行中能够创建model和view文件。例如以下:

须要注意的是,如上图所看到的,由于yiic.bat文件在D:/wwwroot/YiiDemo/framework目录下,而当前命令行的工作路径是D:/wwwroot/YiiDemo/study,所以在执行yiic时建议使用全路径。

使用yiic shell命令就能够进入shell命令行,在命令行看到的输入提示变为“>>”,键入model 表名就会创建相应表的model文件,上图以下就是使用“model user”成功之后就能够看到上图相应的情况。

还能够使用crud (crud各自是create/read/update/delete的缩写,表示经常使用的增删改查数据库操作)表名创建相应的coltroller和view文件,例如以下图所看到的:

比方针对表user、userlist等使用model和crud命令之后,我们就能够在浏览器中查看这些文件了,如查看userlist表中的数据,能够在浏览器中输入http://localhost/YiiDemo/study/index.php?r=userlist,看到例如以下所看到的的图:

能够看到虽然MySQL和PHP都是用了utf8编码,可是数据库中的RealName字段由于是中文数据导致不能正常显示,出现这种情况是由于採用了默认的字符集连接MySQL,在PHP中直接连接MySQL时,假设使用了utf8编码,我们会在PHP代码中做例如以下设置:mysql_query("set names 'utf8'");可是在Yii中没有提供这种机会,          

我们能够在设置数据库连接字符串时指定连接数据库所使用的字符集,例如以下:

'db'=>array(

'connectionString'=>'mysql:host=localhost;dbname=study',

'username'=>'root',

'password'=>'jeri',

'charset'=>'utf8',//use charset as utf8

),

这样就能正常显示了。当然也能够更改全局配置,那就是更改D:/wwwroot/YiiDemo/framework/db目录下的CDbConnection.php文件里的

public $charset;

改为public $charset='utf8';也能正常显示了,例如以下图所看到的:

好了,至此没有写一行代码,可是已经完毕了一个站点的大体框架,而且能初步实现增删改查功能了。尽管採用更改所有配置的方式也能够实现显示数据库中的中文,可是不建议採用这样的方式。在此很感谢kingheaven的提示。

Yii PHP Framework有用新手教程的更多相关文章

  1. 有用PHP依赖管理工具Composer新手教程

    PHP依赖管理工具Composer新手教程 Composer 是 PHP 的一个依赖管理工具.它同意你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理 ...

  2. Groovy新手教程

    Groovy新手教程 kmyhy@126.com  2009-5-13 一.groovy是什么 简单地说,Groovy 是下一代的java语言,跟java一样,它也执行在 JVM 中. 作为跑在JVM ...

  3. React JS高速新手教程

    翻译至官方文档<Tutorial>http://facebook.github.io/react/docs/tutorial.html 转载请注明出处:http://blog.csdn.n ...

  4. Android基础新手教程——4.4.1 ContentProvider初探

    Android基础新手教程--4.4.1 ContentProvider初探 标签(空格分隔): Android基础新手教程 本节引言: 本节给大家带来的是Android四大组件中的最后一个--Con ...

  5. Pycharm新手教程,只需要看这篇就够了

    pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使用教程,希望能给你带来帮助! 目前pycharm一共有两个版 ...

  6. Arduino Yun高速新手教程(大学霸内部资料)

    Arduino Yun高速新手教程(大学霸内部资料) 本资料为国内第一本Arduino Yun教程.具体解说Arduino Yun的基本结构.开发环境.系统配置.并着力解说关键功能--Bridge.最 ...

  7. Web项目的发布新手教程

    ASP.NET服务器发布新手教程 ——本文仅赠予第一次做Web项目,需要发布的新手们,转载的请注明出处. 首先我们说一下我们的需要的一个环境.我使用的是Visual Studio 2010,版本.NE ...

  8. APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)

    正值25学堂一周年之际,同时站长和APP设计同仁们在群里(APP界面设计 UI设计交流群,APP界面设计⑥群 APPUI设计③群58946771 APP设计资源⑤群 386032923欢迎大家加入交流 ...

  9. ROS探索总结(三)——ROS新手教程【转】

    转自:http://blog.csdn.net/hcx25909/article/details/8811313 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一ROS的 ...

随机推荐

  1. php调试mysql信息。

    print_r(mysql_error());会返回执行myql的成功或者失败的信息.数据库的编码方式是UTF-8.获取手机号,返回的页面的编码是gb2312.需要转换

  2. (转)JQuery中$.ajax()方法参数详解

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  3. c - 水仙花数.

    #include <stdio.h> #include <math.h> /* *打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身. * ...

  4. 静默安装ORACLE【weber出品必属精品】

    安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...

  5. 重装eclipse要做的事(二)---设置工作空间默认编码

    在Eclipse的开发使用中,我们经常使用的是UTF-8,但是刚刚安装的或者是导入的项目是其他编码的默认是GBK的,这就造成我们的项目乱码,一些中文解析无法查看,对我们的开发造成不便. 我使用的是My ...

  6. java对象初级知识

    this属于类 方法中没有自己的this指针(本来以为js方法中有,其实并没有里,那是被new出来的function 在声明的时候可以赋初值: int a =12 但不能   int a  ;   a ...

  7. securecrt简介

    SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧 VanDyke CRT 和 VanDyk ...

  8. Nuc900 bsp turbowriter使用注意点

    Nuc900 bsp turbowriter使用注意点 一. Nor flash 用turbo 烧写kernel和文件系统时的注意点: 1. kernel的image No要大于rootfs 2.烧写 ...

  9. V9 二次开发技术篇之 模型数据库

    应V9粉丝的建议,本人今天讲一下 MVC中的M 数据库模型 首先 在 phpcms\model  建一个模型文件test_model.class.php <?phpdefined('IN_PHP ...

  10. PHP微信红包的算法实现探讨

    header("Content-Type: text/html;charset=utf-8");//输出不乱码,你懂的 $total=10;//红包总额 $num=8;// 分成8 ...