前期准备:
一 下载安装创建应用.
- 下载地址 http://yii.googlecode.com/files/yii-docs-1.1.13.e9e4a0.tar.gz 里面有两个文件,其一是一个blog 系统开发实例,另一个是guide文档。
- 下载yiiframework 代码,安装 将framework 和 php 的路径配置为环境变量 PATH 中,我这里地址为 d:/xampp/htdocs/framework;d:/xapmm/php;
- 创建一个web项目 test 进入 webroot 创建 。 d:/xampp/htdocs yiic webapp test
- 二 制作一个简易的blog系统.需求分析
- 登陆用户
登录登出 , 创建,更新,删除blog内容.
发布,取消发布,归档blog.
赞同和删除回复.
其它用户 [游客]
阅读blog,创建评论.
其它附加需求
首页需要显示最新,最近的blog 列表。
如果内容大于十条,将分页处理。
显示一篇blog的同时,也显示 回帖内容。 可以按tag 进行浏览。
可以根据标签的使用频率显示一系列的标签。
系统可以主题化处理。
链接seo 友好化处理
- 三 全局设计.
- 表格设计.
CREATE DATABASE /*!32312 IF NOT EXISTS*/`yii` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `yii`; DROP TABLE IF EXISTS `tbl_comment`; CREATE TABLE `tbl_comment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `content` text, `status` tinyint(1) DEFAULT '0', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `author` int(10) DEFAULT NULL, `email` char(255) DEFAULT NULL, `post_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `tbl_lookup`; CREATE TABLE `tbl_lookup` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) DEFAULT NULL, `code` char(20) DEFAULT NULL, `type` int(11) DEFAULT NULL, `position` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `tbl_post`; CREATE TABLE `tbl_post` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` char(20) DEFAULT NULL, `content` text, `tags` char(255) DEFAULT NULL, `status` tinyint(2) DEFAULT '0', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `update_time` datetime DEFAULT NULL, `author_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*Data for the table `tbl_post` */ insert into `tbl_post`(`id`,`title`,`content`,`tags`,`status`,`create_time`,`update_time`,`author_id`) values (1,'111','222222','3333',1,'2012-08-08 00:00:00','2012-08-08 00:00:00',2); /*Table structure for table `tbl_tag` */ DROP TABLE IF EXISTS `tbl_tag`; CREATE TABLE `tbl_tag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) DEFAULT NULL, `frequency` int(11) DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `tbl_user`; CREATE TABLE `tbl_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` char(20) DEFAULT NULL, `password` char(32) DEFAULT NULL, `email` char(100) DEFAULT NULL, `sex` int(11) DEFAULT '0', `profile` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; insert into `tbl_user`(`id`,`username`,`password`,`email`,`sex`,`profile`) values (1,'admin','e10adc3949ba59abbe56e057f20f883e',NULL,0,NULL),(2,'demo','e10adc3949ba59abbe56e057f20f883e',NULL,0,NULL);
对应内容表,评论表,用户表,lookup 表,标签表.- 里程牌设置。
- 1 创建一个blog原型,有大多的基础的功能。
- 2 完全blog 内容发布管理,包含创建,列表,显示更新,和删除blog内容。
- 3 完善评论管理,。
- 4 实施portlets ,包括用户菜单,登陆,标签云,最近评论。
- 5 上线处理,布署,优化,上线
--------------------------------------------------------------------------------------------------------------------------------------------
二 实施部分.
实现里程牌一.
1 进入 test/protected/config/main.php 设置连接数据库和打开gii.
//约第五十行。
// 'db'=>array(
// 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
// ),
// uncomment the following to use a MySQL database
'db'=>array(
'connectionString' => 'mysql:host=192.168.1.33;dbname=yii',
'emulatePrepare' => true,
'username' => 'root',
'password' => 'admin',
'charset' => 'utf8', 'prefix' => 'tbl'
'tablePrefix'=>'tbl_'
),
[php] view plaincopy
//约第21行,打开gii~
'modules'=>array(
// uncomment the following to enable the Gii tool
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'123456',
// If removed, Gii defaults to localhost only. Edit carefully to taste.
'ipFilters'=>array('127.0.0.1','192.168.1.7'),
),
),
这里补充一句,要做开发,debug 肯定少不了。所以先装一下debug 扩展,这里以 yii-debug-toolbar 为例。有兴趣的可以使用其它的debug扩展。
https://github.com/malyshev/yii-debug-toolbar/archive/master.zip
将下载包其中的yii-debug-toolbar 文件夹 解压到 test/protected/extensions 下.
修改 配置文件 。
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'ext.yii-debug-toolbar.YiiDebugToolbarRoute',
// Access is restricted by default to the localhost
//'ipFilters'=>array('127.0.0.1','192.168.1.*', 88.23.23.0/24),
),
),
),
///打开enableProfiling 和paramlogging 后可追踪mysql 查询。
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=test',
//...
'enableProfiling'=>true,
'enableParamLogging'=>true,
),
界面很漂亮的哟,方便调试,有点像操作firebug 的感觉。
接下来,回到正事了。
3 创建模型。
进入 gii http://yourdomain/myblog/index.php?r=gii 输出密码, 对就 配置文件里面的 123456 .
进入 gii http://yourdomain/myblog/index.php?r=gii 输出密码, 对就 配置文件里面的 123456 .
备注:这玩意,上线后一定要关闭掉
出现如图: 选 model Generator
可以单表创建
更简易的方法 在table Name 输出框直接输入 * 然后可以直接创建所有表了。
4 创建基于post 表[blog内容表的] crud [增删改查]
4.1 选择左边菜单的 crud Generator Model Class * 表单中输入 Post 注意 首字母大写。
5 体验一下。
http://yourdomain/myblog/index.php?r=post 登陆时用户名密码就用 admin admin
接下来创建comment tags user 的crud 里程牌第一部分就完成了。未完待续!