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的提示。

时间: 2024-10-13 20:55:38

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

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

PHP依赖管理工具Composer新手教程 Composer 是 PHP 的一个依赖管理工具.它同意你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理器. 是的,它涉及 "packages" 和 "libraries",但它在每一个项目的基础上进行管理,在你项目的某个文件夹中(比如 vendor)进行安装. 默认情况下它不会在全局安装不论什么东西.因此,这不过一个依赖管理. 这样的想法并不新奇,Composer 受到

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

pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使用教程,希望能给你带来帮助! 目前pycharm一共有两个版本,Professional(专业版本)」和「社区版」,专业版功能最强大,主要是为 Python 和 web 开发者而准备,是需要付费的.社区版是专业版的阉割版,比较轻量级,主要是为 Python 和数据专家而准备的.一般我们做开发,下载专业版本比较合适. 文章转自:django中文网---Pych

Apple Swift编程语言新手教程

Apple Swift编程语言新手教程 作者: 日期: gashero 2014-06-03 FROM:http://gashero.iteye.com/blog/2075324 文件夹 1   简单介绍 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 7   枚举与结构 1   简单介绍 今天凌晨Apple刚刚公布了Swift编程语言,本文从其公布的书籍<The Swift Programming Language>中摘录和提取而成.希望对各位的

【OpenCV十六新手教程】OpenCV角检测Harris角点检测

本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/29356187 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本号: 2.4.9 本篇文章中,我们一起探讨了OpenCV

Play Framework Web开发教程(19): 任务–启动一些进程

有些时候,一个Web应用有需要在正常的请求-响应周期之外执行一些代码,比如一些常时间运行的后台任务,或者也是在请求-响应周期中执行,但无需用户交互.比如我们回到之前的产品分类的例子,我们需要跟踪订单是否有人拣选,打包了和发货了.拣选货物涉及了某个人根据订单在仓库中查找订单中的物品,然后可以打包这些货品,交给物流发货.一个实现方法是生成新图所示的货品目录的物品拣选单(和HTML表单无关). 在过去很长的一段时间内,系统构架都假定这些任务都在Web应用外实现,比如在一些旧系统中的批量任务生成. 而今

MATLAB新手教程

MATLAB新手教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,仅仅需将运算式直接打入提示号(>>)之後,并按入Enter键就可以.比如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上. 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗

ionic新手教程第七课-简要说明几种界面之间的參数传递及优缺点

截至2016年4月13日19点32分,我公布的ionic新手教程,已经公布6课了, 总訪问量将近6000,平均每节课能有1000的訪问量.当中訪客最多的是第三课有2700的訪客. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 事实上我開始的时候计划的挺好的,就依照我这阶段的安排,慢慢的带大家做一个

新手教程之使用Xib自定义UITableViewCell

新手教程之使用Xib自定义UITableViewCell 前言 首先:什么是UITableView?看图 其次:什么是cell? 然后:为什么要自定cell,UITableView不是自带的有cell么? 因为在日常开发中,系统自带的cell满足不了客户和开发人员的需求(并且每个cell中的内容\大小\样式相同),我们就需要自定义cell来实现更加优化的功能.比如下面这种 最后:怎么自定义cell? 1.创建一个新的项目,在storyboard中拖入两个imageView,两个label   2

【OpenCV新手教程之十八】OpenCV仿射变换 &amp;amp; SURF特征点描写叙述合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本号: 2.4.9 本篇文章中.我们一起探讨了OpenCV