Yii PHP Framework有用新手教程
说明:由于近期工作工作关系,须要开发一个在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有用新手教程的更多相关文章
- 有用PHP依赖管理工具Composer新手教程
PHP依赖管理工具Composer新手教程 Composer 是 PHP 的一个依赖管理工具.它同意你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理 ...
- Groovy新手教程
Groovy新手教程 kmyhy@126.com 2009-5-13 一.groovy是什么 简单地说,Groovy 是下一代的java语言,跟java一样,它也执行在 JVM 中. 作为跑在JVM ...
- React JS高速新手教程
翻译至官方文档<Tutorial>http://facebook.github.io/react/docs/tutorial.html 转载请注明出处:http://blog.csdn.n ...
- Android基础新手教程——4.4.1 ContentProvider初探
Android基础新手教程--4.4.1 ContentProvider初探 标签(空格分隔): Android基础新手教程 本节引言: 本节给大家带来的是Android四大组件中的最后一个--Con ...
- Pycharm新手教程,只需要看这篇就够了
pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使用教程,希望能给你带来帮助! 目前pycharm一共有两个版 ...
- Arduino Yun高速新手教程(大学霸内部资料)
Arduino Yun高速新手教程(大学霸内部资料) 本资料为国内第一本Arduino Yun教程.具体解说Arduino Yun的基本结构.开发环境.系统配置.并着力解说关键功能--Bridge.最 ...
- Web项目的发布新手教程
ASP.NET服务器发布新手教程 ——本文仅赠予第一次做Web项目,需要发布的新手们,转载的请注明出处. 首先我们说一下我们的需要的一个环境.我使用的是Visual Studio 2010,版本.NE ...
- APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)
正值25学堂一周年之际,同时站长和APP设计同仁们在群里(APP界面设计 UI设计交流群,APP界面设计⑥群 APPUI设计③群58946771 APP设计资源⑤群 386032923欢迎大家加入交流 ...
- ROS探索总结(三)——ROS新手教程【转】
转自:http://blog.csdn.net/hcx25909/article/details/8811313 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 一ROS的 ...
随机推荐
- apache添加php支持
在php编译安装好后,需要在apache中添加对php的支持,方法:找到“#AddType application/x-gzip .gz .tgz”并在后面加入AddType application/ ...
- java rmi 小记
最近在搞Quartz任务监控管理,碰到了jmx,后来发现Quartz对jmx的支持不是很好,介绍的文档也比较少,另外Quartz可以很方便的支持rmi于是就看了一下rmi.下面把写的一些测试小例子附上 ...
- 【JQuery学习笔记】一、基础篇
Lesson2 Ready 和onload类似,但onload只能注册一次,后注册的取代现注册的,而Ready可以多次注册都会执行 onload是所有院所创建完毕.图片.Css等都加载完毕后才触发,而 ...
- myql查询创建表语句SHOW CREATE TABLE table_name
技术背景:刚开始学习MySQL时候,有时偷懒,会用SHOW CREATE TABLE 表名\G来复制表创建语句,可是当运行的时候总会因为"表名和列名上有单引号",提示语法错误不能运 ...
- QT高级运用之粒子模拟(Particle Simulations)
粒⼦模拟是计算机图形技术的可视化图形效果.典型的效果有:落叶,⽕焰,爆炸,流星,云等等.它不同于其它图形渲染, 粒⼦是基于模糊来渲染.它的结果在基于像素下是不可预测的.粒⼦系统的参数描述了随机模拟的边 ...
- MySQL重置root用户密码的方法(转)
本教程适用于采用Win2003.WinXP操作系统的迅美VPS和云主机产品. 当管理员忘记MySQL密码怎么办?屡次输入密码,仍然提示错误,网站无法正常运行,数据库也无法管理,管理员束手无策. 网站程 ...
- IBM X3650 服务器更换内存的过程记录
前几天,由于天气气温太高,导致中心机房UPS自动保护性关闭,最终导致所有服务器都掉电.其中一台IBM X3650服务器报警,显示内存故障.原来这台服务器共有4G内存,现在打开服务器进入系统后,显示只有 ...
- 实现单实例多线程安全API问题
前阵子写静态lib导出单实例多线程安全API时,出现了CRITICAL_SECTION初始化太晚的问题,之后查看了错误的资料,引导向了错误的理解,以至于今天凌晨看到另一份代码,也不多想的以为singl ...
- 不要依赖hibernate的二级缓存
一.hibernate的二级缓存 如果开启了二级缓存,hibernate在执行任何一次查询的之后,都会把得到的结果集放到缓存中,缓存结构可以看作是一个hash table,key是数据库记录的id ...
- favicon支持的图片格式
为网站设置favicon有两种方式: 1.网站根目录下放置名为favicon.ico的图片,浏览器就会自动获取: 2.在页面中通过<link rel="shortcut icon&qu ...