yii-blog 学习笔记 一

  • 前期准备:
    一 下载安装创建应用.
  • 下载地址 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 .

备注:这玩意,上线后一定要关闭掉

出现如图 选  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  里程牌第一部分就完成了。未完待续!





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值