二:使用yii框架建立应用(数据库增加和列表显示操作)
注:在第一篇中已经描述了yii框架在win下面的安装配置,并且用命令:yiic webapp D:\AppServ\www\Yiiphp 创建了我们自己的应用项目Yiiphp,接下来要做的就是在这个应用项目中进行持续开发操作。在下面的操作中要做一下几件事情:
1:在命令行窗口中,进入apache项目访问目录,然后运行 php -c C:/WINDOWS/php.ini yii/framework/yiic.php shell Yiiphp/index.php。(这的作用是运行的yii框架读取配置指向到php.ini配置文件中,如果不执行该命令,则会在下面的数据库操作中报“YiiBase::include(PDO.php): failed to open stream..."这样的错误)
2:打开c:/window/php.ini文件,找到;extension=php_pdo.dll和;extension=php_pdo_mysql.dll;把前面的“;”号去掉(即开启该扩展)。这的作用是开启pdo驱动扩展和mysql查询扩展,如果不开启会报“PDOException: could not find driver in D:\AppServ\www\yii\framework\db\CDbCo”这样的错误提示。
3:在本地新建数据库和表结构(我本地的数据库为(yiiphp),数据库中的表为(user),并插入几条测试数据),示例如下:
CREATE TABLE user (
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(128) NOT NULL,
password VARCHAR(128) NOT NULL,
email VARCHAR(128) NOT NULL
);
INSERT INTO user (username, password, email) VALUES ('test1', 'pass1', 'test1@example.com');
INSERT INTO user (username, password, email) VALUES ('test2', 'pass2', 'test2@example.com');
INSERT INTO user (username, password, email) VALUES ('test3', 'pass3', 'test3@example.com');
INSERT INTO user (username, password, email) VALUES ('test4', 'pass4', 'test4@example.com');
INSERT INTO user (username, password, email) VALUES ('test5', 'pass5', 'test5@example.com');
INSERT INTO user (username, password, email) VALUES ('test6', 'pass6', 'test6@example.com');
INSERT INTO user (username, password, email) VALUES ('test7', 'pass7', 'test7@example.com');
INSERT INTO user (username, password, email) VALUES ('test8', 'pass8', 'test8@example.com');
做完上面的准备工作后,下面我们就可以继续开发我们自己的应用项目了
一:登录yiiphp项目(http://127.0.0.1/yiiphp/index.php?r=gii),访问该地址会提示输入密码(如图一),这里的密码就是protected/config/main.php中配置的(如图二)
图一:
图二:
二:根据数据库中的表结构创建映射模型类(user--->User):
1:登录成功后,会进入到操作页面,我们点击Model Generator进行模型映射类的创建操作
2:点击Model Generator链接后进入模型映射类创建表单页面如下图,填写完成后点击按钮提交:
注:上面的Database Connection字段中默认不变即可,这是的变量名称和protected/config/main.php中的db变量是对应的,如下图:
Table Name是你数据库中表的名称,即要跟数据库中表的名称一致。
Module Class是你要创建的映射模型类的类名(将在protected/models文件夹下面生成)
三:创建User类的数据库操作代码(CURD代码),访问http://127.0.0.1/yiiphp/index.php?r=gii,点击Crud Generator链接创建数据库操作代码
注:左侧的model class字段即是我们刚刚创建的模型类的类名(User)。
四:访问数据列表显示页面(http://127.0.0.1/yiiphp/index.php?r=user),可以看到刚才我们sql语句插入的数据列表。
五:对数据列表进行管理操作,删改操作。访问:http://127.0.0.1/yiiphp/index.php?r=user/admin,如下图
截止到这里,我们的关于用户的增删改查基本操作的应用项目已经完工了,当然只是功能上面的完工。但是让人感到惊奇的是,你竟然没有写一句业务逻辑代码就把一个数据记录增删改查的功能项目给做完了。这就是YII框架的强大之处,当然,如果你有其他需求(处理基本增删改查操作)你也可以在Controller控制层中添加你自己的业务逻辑代码即可,很方便吧。当然接下来还要继续深入的学习体会Yii框架内部正确强大的内核代码,好好体会OOP编程和整体的框架设计思想。
总结:yii框架的执行流程:用户发起请求->浏览器接受请求发送到web服务器->web根据请求调用相应controller->controller进行逻辑分析,如果需要调用model则调用相应model对象->将处理好的数据返回给web服务器->web服务器将信息返回到浏览器进行显示(通过views层)。
针对上面的操作的处理流程如下:
1:http://127.0.0.1/yiiphp/index.php?r=user 接受到这个请求后,根据user参数会执行protected/UserController.php控制器,默认会执行actionIndex()这个方法(其实你可以直接访问http://127.0.0.1/yiiphp/index.php?r=user/index也是可以的,即也是执行actionIndex()方法),然后调用模型类User中的模型数据,把结果渲染视图程序给用户。
下图添加一副总体执行流程图(转载)