Winxp下建立第一个 Yii 框架应用(连接MYSQL数据库)

为了对 Yii 有个初步认识,我们在本节讲述如何建立第一个 Yii 应用。我们将使用强大的 yiic 工具,它用来自动生成各种代码。假定YiiRoot (我的机器是d:/web/yii)为 Yii 的安装目录。
Winxp下,在命令行运行 yiic,如下所示:
YiiRoot/framework/yiic webapp WebRoot/testdrive

截图1如下:
 
图1
图1所示,我是把testdrive目录创建在了d:/web/yii/demos目录下,d:/web/yii/demos这个目录也是yii框架的默认的演示文件所在的目录。图1中询问你是否要在d:/web/yii/demos/testdrive下创建一个yii应用,输入yes。一个yii应用就创建成功了,最后出现图2的创建成功的提示。创建完以后直接去d:/web/yii/demos/testdrive下查看,所有的文件都已经创建好了。
 

图2
这将在 WebRoot/testdrive (我的测试目录是d:/web/yii/demos/testdrive)目录下建立一个最基本的 Yii 应用,WebRoot 代表你的 Web 服务器根目录。这个应用具有所有必须的目录和文件,因此可以方便地在此基础上添加更多功能。
不用写一行代码,我们可以在浏览器中访问如下 URL 来看看我们第一个 Yii 应用:
http://hostname/testdrive/index.php
正如我们看到的,这个应用包含三个页面:首页、联系页、登录页。首页展示一些关于应用和用户登录状态的信息,联系页显示一个联系表单以便用户填写并提交他们的咨询,登录页允许用户先通过认证然后访问已授权的内容。查看下列截图了解更多:

 

首页
 

联系页

登录页

 
下面的树图描述了我们这个应用的目录结构。请查看约定以获取该结构的详细解释。

testdrive/
   index.php                 Web 应用入口脚本文件
   assets/                   包含公开的资源文件
   css/                      包含 CSS 文件
   images/                   包含图片文件
   themes/                   包含应用主题
   protected/                包含受保护的应用文件
      yiic                   yiic 命令行脚本
      yiic.bat               Windows 下的 yiic 命令行脚本
      commands/              包含自定义的 'yiic' 命令
         shell/              包含自定义的 'yiic shell' 命令
      components/            包含可重用的用户组件
         MainMenu.php        'MainMenu' 挂件类
         Identity.php        用来认证的 'Identity' 类
         views/              包含挂件的视图文件
            mainMenu.php     'MainMenu' 挂件的视图文件
      config/                包含配置文件
         console.php         控制台应用配置
         main.php            Web 应用配置
      controllers/           包含控制器的类文件
         SiteController.php  默认控制器的类文件
      extensions/            包含第三方扩展
      messages/              包含翻译过的消息
      models/                包含模型的类文件
         LoginForm.php       'login' 动作的表单模型
         ContactForm.php     'contact' 动作的表单模型
      runtime/               包含临时生成的文件
      views/                 包含控制器的视图和布局文件
         layouts/            包含布局视图文件
            main.php         所有视图的默认布局
         site/               包含 'site' 控制器的视图文件
            contact.php      'contact' 动作的视图
            index.php        'index' 动作的视图
            login.php        'login' 动作的视图
         system/             包含系统视图文件

 
连接到数据库MYSQL
大多数 Web 应用由数据库驱动,我们的测试应用也不例外。要使用数据库,我们首先需要告诉应用如何连接它。修改应用的配置文件 WebRoot/testdrive/protected/config/main.php 即可,如下所示:
return array(
......
'components'=>array(
......
'db'=>array(
'connectionString'=>'mysql:host=localhost;dbname=yii',
'username'=>'root',
'password'=>'111',
'charset'=>'utf8'
),
),
......
);

 

在上面的代码中,我们添加了 db 条目至 components 中,指示应用在需要的时候连接到 Mysql 数据库 yii(指的是数据库的名字)中。
注意: 要使用 Yii 的数据库功能,我们需要启用 PHP 的 PDO 扩展和相应的驱动扩展。对于测试应用来说,我们需要在php.ini中启用 php_pdo 和 php_pdo_mysql 扩展。
接下来,我们需要准备一个Mysql数据库以使上面的配置生效。使用一些 Mysql 管理工具,我们可以建立一个包含如下模式的数据库:
CREATE TABLE IF NOT EXISTS `user` (
`id` int(10) NOT NULL auto_increment,
`username` varchar(128) NOT NULL,
`password` varchar(128) NOT NULL,
`email` varchar(128) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
简单起见,我们只在库中建立了一个 User 表。
实现 CRUD 操作
我们想要为刚才建立的 User 表实现 CRUD (create, read, update 和 delete) 操作,这也是实际应用中最常见的操作。
我们还是用 yiic 工具来帮助我们生成需要的代码,这个过程通常称为"脚手架"。
首先使用命令行进入到d:/web/yii/demos/testdrive下,也就是你刚才创建的一个yii应用testdrive下。为什么要使用命令行进入到这个目录呢,因为这个目录下有yiic工具,我们可以使用。执行如图3所示的命令,
yiic shell d:/web/yii/demos/testdrive/index.php是命令的启动。截图如下

图3
出现>>符号后执行其他命令。
>> model User命令来生成user的model文件。
截图4如下:

图4
通过截图4可以看出生成了一个d:/web/yii/demos/testdrive/protected/models/user.php文件,文件中生成了一个user类

>> crud User 命令来生成user的crud操作的相关文件

执行截图5如下:

图5
通过图5可以看出生成了一个目录d:/web/yii/demos/testdrive/protected/views/user,然后这个目录下,生成了6个文件,分别是create.php,update.php,list.php,show.php,admin.php和_form.php。
并且提示你可以通过http://hostname/testdrive/index.php?r=user查看user文件的显示效果
如上所示,我们使用 yiic 的 shell 命令来和我们刚才建立的应用进行交互。在提示符后面,我们可以输入一个有效的 PHP 语句或表达式来运行并显示。我们还可以完成一些诸如 model 或 crud 之类的任务。model 命令自动生成一个基于 User 表结构的 User 模型类,crud 命令生成实现 User 模型 CRUD 操作的控制器类和视图。
注意: 如果你更改了你的任何代码或配置,请重新输入 yiic shell 以使你的新代码或配置文件生效。还有,确保你使用了正确的 PHP CLI 来运行 yiic,否则你会碰到 "...could not find driver" 之类的错误(即使你确信已经启用了 PDO 和相应的驱动)。这类错误通常是因为 PHP CLI 使用了不恰当的 php.ini。
让我们看看成果,访问如下 URL:看到如图6所示的效果

http://hostname/testdrive/index.php?r=user

图6显示了两条用户记录,这两条记录是我自己创建的。也就是这里显示一个 User 表中记录的列表。如果我们的表是空的,那么这里将什么都没显示。

 

 

 

转载自:http://rzchina.net/node/5918(融智技术学院)

 

 

阅读更多
个人分类: PHP
上一篇JDK6
下一篇Yii的认识
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭