TP工具箱升级了,支持TP1.6的项目
昨晚花时间在tdweb修改版的基础上又修复了一些其他问题。使用TP1.6的项目,也可以用工具箱来管理了。
以前工具箱日志的相关链接:http://yhustc.com/Blog/162.html
新版工具箱可以到TP论坛去下载。http://bbs.thinkphp.cn/viewthread.php?tid=4973&extra=page%3D1
昨晚花时间在tdweb修改版的基础上又修复了一些其他问题。使用TP1.6的项目,也可以用工具箱来管理了。
以前工具箱日志的相关链接:http://yhustc.com/Blog/162.html
新版工具箱可以到TP论坛去下载。http://bbs.thinkphp.cn/viewthread.php?tid=4973&extra=page%3D1
升级到7.0的时候出了问题,导致用户注册的时候数据只添加到UCenter里面了,Discuz的用户表里面没有数据。现在已经搞好了。4月1号以后注册的用户,可以直接登陆。O(∩_∩)O哈哈~
很早就开始搞啊搞,做了一些小功能,比如什么TP项目中支持正则的全文搜索一类的,但是因为都没花时间搞,所以一直拖,搞啊搞的不少代码都不知道搞哪去了。
今天花了点时间把工具箱升级一下,可以当项目管理器使,项目新建与浏览激活后进行管理。Model生成的内容更加详细,给定Model可以选择对应的数据表字段生成自动填充与校验的规则等。
其他的就没啥了,全文搜索就不加了,推荐一个工具,search and replace,相当好使。
查看flash演示请移步至 http://www.yhustc.com/TPToolBox/
下载地址
TPToolBox.rar
看完标题就知道这东西跟PHP有关,所以如果你是做PHP开发的,不管你是否对使用框架有兴趣,我建议你也可以了解一下这个框架。使用框架快速开发是我们的目的,但不是最终目标,应该学习框架架构的思想,深入了解它实现的机理。我对Thinkphp的了解来自与9月分程序员杂志的介绍,于是到它的官方网站看了一下,还真是个好东西。引用一小段关于该框架的说明:“ThinkPHP从Java的Struts结构移植过来,使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,借鉴了国外一些不错的思想,尤其是Java框架方面,因此熟悉J2EE的开发人员相对比较容易上手,其模版引擎、缓存机制、认证机制和扩展性方面均表现不凡。在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、Oracle,以及PDO的支持,让你有更多选择。”
开始学习之前,我想先说明几点:
本文的一些约定:
要构建一个带后台的新闻系统,首先明确需求是什么,然后根据需求设计数据库。因为我们的demo只需要实现一个带后台管理的新闻系统,所以新闻表和用户表就足够了。新闻表是前台网站和后台管理系统共用的,但是前台网站只对其有查询权限。后台管理系统对新闻和用户表有完全的管理权限。
新闻表:CREATE TABLE `prefix_news` ( //prefix替换成你使用的前缀
`id` int(11) NOT NULL auto_increment, //主键,自增的INT型
`up` char(1) NOT NULL default '0', //是否置顶,0表示不置顶,1表示置顶
`title` varchar(255) NOT NULL, //标题
`content` text NOT NULL, //内容
`author` int(11) NOT NULL, //作者,与user表的id对应
`date` date NOT NULL, //发布日期
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='新闻表' AUTO_INCREMENT=1 ;
用户表:由于不使用thinkphp框架集成的RBAC权限控制,所以用户表可以自己随便设计。
CREATE TABLE `prefix_user` (
`id` int(11) NOT NULL auto_increment, //主键ID
`username` varchar(50) NOT NULL, //用户名
`password` varchar(50) NOT NULL, //密码
`opuser` char(1) NOT NULL default '0', //是否运行操作其他用户,0表示不允许,应为只有两个权限级别,所以没有必要再建一个用户类型表
`lastlogin` varchar(255) default NULL, //上次登录时间,我没有使用datetime,请不要惊讶,呵呵
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
使用thinkphp的后台管理系统添加节点(也就是webadmin),创建项目,你会发现thinkphp的文件夹下已经多了一个webadmin的文件夹,项目需要使用的一些目录已经全部给你建好了。关于这些目录是干什么用的,请自己参考thinkphp的手册。
如果你的新闻表使用thinkphp相同的表前缀保存在thinkphp相同的数据库中,那么点击节点名称webadmin,进入模块添加的页面自动创建Action、Dao和VO类,否则可以跳过这一段,下一段我们裸写Action、Dao和VO类,但我建议看过这一端的朋友还是看看下一段。所谓模块,其实就是你要操作的对象,比如你现在要操作的是新闻栏目,那么你可以添加名称为News的模块(名字一定要跟你操作的数据表的出去prefix_的名字对应),这样就可以使用http://localhost/thinkphp/webadmin/index.php/news来访问新闻模块了。项目首页模块请使用Index命名,因为默认http://localhost/thinkphp/webadmin/index.php会调用Index模块。定义好模块后点击模块的名称,进入添加操作的页面。这里添加的所有操作都是对模块而言的,比如你要对新闻进行列表操作,那么添加名为index(名字自己随便取,但最好是使用框架默认的那几个名字,使用自己的实现覆盖默认的操作)的操作,之后定义好index的实现,那么通过地址http://localhost/thinkphp/webadmin/index.php/news/index你就可以看到新闻列表啦。定义好add(显示添加新闻的页面),edit(显示修改新闻的页面),insert(添加新闻到数据库),update(保存修改到数据库),delete(删除表项)等操作后,返回到模块列表,点创建,然后到你的thinkphp/webadmin/Lib目录下看看,NewsVo、NewsDao、NewsAction三个类已经给你自动创建了,刚才定义的News模块的各个操作,也在NewsAction类中自动创建了,问我这三个类都是干嘛的?你还是自己看手册吧。
上面的那个自动创建虽然高级,但是如果项目的数据库与thinkphp使用的数据库不在一个库里,自己使用的前置也和它不一样(对于多个项目,这是常有的),所以自己动手裸写才是王道。从最简单的开始,在thinkphp/webadmin/Lib/Dao目录下建个NewsDao.class.php,内容嘛,下面一句就够了。
class NewsDao extends Dao
{
}
?>
然后是定义VO,VO其实很简单,把数据表翻译过来就OK了
最新评论