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

介绍

Yii 是一个基于组件、纯OOP的、用于开发大型 Web 应用的高性能 PHP 框架。它将 Web 编程中的可重用性发挥到极致,可以显著加速开发进程。Yii适合大流量的应用,如门户、BBSCMSB2B系统等,功能丰富,性能优异,只是它的中文文档还不完好,而且有些命令行的操作是针对非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.0PHP5.2.11,本人在使用这两个版本号过程中常常遇到一个ext文件夹下的dll文件不能载入的情况,当然你确认自己对PHP的配置相当熟悉的话例外。

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

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

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

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

创建站点初始结构

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

在命令行方式下切换到Yiiframework文件夹下用以运行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这个目录,然后在命令行中能够创建modelview文件。例如以下:

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

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

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

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

能够看到虽然MySQLPHP都是用了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. Groovy新手教程

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

  2. 指爱打字群添雨跟打器使用教程(指爱群新手教程)-by指爱群友

    指爱打字群添雨跟打器使用教程(指爱群新手教程)-by指爱群友 更新时间: 指爱群新手教程 本教程以添雨跟打器为例,其他两个跟打器功能大同小异,大家试一下应该就可以了,跟打器在群共享里有得下 用跟打器练 ...

  3. Clang 新手教程来啦!

    长话短说! 这篇新手教程会让你弄清楚什么是clang.clang AST.clang plugins 和clang tools 等等,让你大概知道clang 可以解决什么问题,而且小白也是可以用cla ...

  4. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

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

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/29356187 作者:毛星云(浅墨) ...

  6. python完全新手教程-Python完全新手教程

    Python完全新手教程 更新时间:2007年02月08日 00:00:00 作者: Python入门教程FROM:http://www.cnblogs.com/taowen/articles/112 ...

  7. python详细安装教程linux-Linux系统如何安装Python?新手教程

    新手入门Python的第一步就是要在你的计算机上安装好Python.有些人可能要问了,Linux系统如何安装Python?本文为你准备了一份新手安装Python的教程,几乎是手把手教你如何操作,你只要 ...

  8. 从小白到精通python要多久-超适合小白的python新手教程

    python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...

  9. hibernate官方新手教程 (转载)

    hibernate官方新手教程第一部分 - 第一个Hibernate程序 首先我们将创建一个简单的控制台(console-based)Hibernate程序.我们使用内置数据库(in-memory d ...

最新文章

  1. 设置图例字体_plotly_标题参数详解(大小,颜色,字体,位置)
  2. 微服务架构设计模式读书笔记
  3. python下载图片、已知url_python 爬虫之requests爬取页面图片的url,并将图片下载到本地...
  4. HDFS EditsLog和FsImage日志机制
  5. mysql倍增表的内容_MySQL入门(7)——表数据的增、删、改
  6. 微信小程序没登录跳到登录页怎么做_微信小程序手机端如何实现登录页面跳转含有Tabar页面...
  7. leetcode896. 单调数列
  8. 社交应用动态九宫格图片的规则
  9. BlackBerry 开发笔记入门 J2ME
  10. html设置外边距不合并,CSS外边距合并代码
  11. Notepad++ 查找替换 换行符的方法
  12. python字符串转成数组_python将字符串转换成数组的方法
  13. VisionMaster 学习笔记(仪表盘检测)
  14. WPF ListView控件的简单使用
  15. 2021-2004中国环境统计年鉴面板数据、环境面板数据
  16. Gradle报 skkiped gradle skipped due to earlier error
  17. VML编辑器代码实现(转载)
  18. 抓包分析 TCP 握手和挥手
  19. 华为视频终端默认的Web页面用户名和密码是多少
  20. JavaScript11:事件

热门文章

  1. python selenium滚动条下拉操作汇总
  2. 设置更换 PyCharm 的主题和字体与下载导入其他PyCharm主题
  3. 激光镜像 傻瓜方法 c++
  4. robots-txt
  5. Android应用图标尺寸以及drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)
  6. ICLR 2020关键亮点与发展趋势总结(附python实战分析PyTorch vs Tensorflow使用情况)|文末送书...
  7. 【CVPR 2020】化繁为简,弱监督目标定位领域的新SOTA - 伪监督目标定位方法(PSOL)...
  8. 学习笔记:waf帮助构建及编译系统
  9. WPF 捕获键盘输入事件
  10. Rust入坑指南:步步为营