Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 71 下一页

2010年2月24日

摘要: 目前访问我们各个页面的url地址看上去比较丑陋,比如说文章显式页面的地址是/index.php?r=post/show&id=1在本节中,我们讲述如何使页面地址看上去更漂亮,对SEO更友好。我们目标是在应用中可以使用如下的地址:/index.php/tag/yii: 所有有使用yii标签的文章列表页面;/index.php/posts: 最新文章的列表页面/index.php/post/1... 阅读全文

posted @ 2010-02-24 21:51 analyzer 阅读(476) 评论(0) 推荐(0) 编辑

摘要: 我们建立的应用框架已经自带了一个登陆页面。本节中,我们把这个页面转为一个名字为UserLogin的登陆模块。当用户未登录时将会在侧边栏出现。用户登陆后消失,同时先前开发的用户菜单项显示出来。建立UserLogin类像用户菜单模块一样。我们在blog/protected/components/UserLogin.php建立的UserLogin类,里面包含了用户登陆的逻辑处理,代码如下:<?ph... 阅读全文

posted @ 2010-02-24 21:50 analyzer 阅读(1030) 评论(0) 推荐(0) 编辑

摘要: 这将显示一个最常用的文章tag的列表,根据使用程度,对每个tag使用不同的样式进行修饰。创建TagCloud类我们在文件/blog/protected/components/TagCloud.php中创建TagCloud类,内容如下:<?phpclassTagCloudextendsPortlet{public$title='Tags';publicfunctiongetTagWeights... 阅读全文

posted @ 2010-02-24 21:50 analyzer 阅读(295) 评论(0) 推荐(0) 编辑

摘要: 本节中我们将开发第一个portlet——用户菜单portlet,对已经通过验证的登录用户显示一个菜单列表。包含以下四个菜单:发布评论:到未发布评论列表的超链接添加文章:到添加文章的超链接管理文章:到文章管理页面的超链接注销:注销当前用户的链接按钮创建UserMenu类我们创建UserMenu类来描绘用户菜单的逻辑部分。保存在blog/protected/components... 阅读全文

posted @ 2010-02-24 21:49 analyzer 阅读(636) 评论(0) 推荐(1) 编辑

摘要: 评论的管理包括修改、删除和发布。这些操作由CommentController类中的actions实现。修改和删除评论yiic生成的更新和删除代码并不用怎么修改。因为我们支持评论在更新前进行预览,我们只需要如下修改CommentController的actionUpdate()方法。publicfunctionactionUpdate(){$comment=$this->loadComment... 阅读全文

posted @ 2010-02-24 21:48 analyzer 阅读(281) 评论(0) 推荐(0) 编辑

摘要: 像最新评论列表和tag列表等,用Portlet实现是个不错的选择。一个Portlet就是一个可插入的用户界面组件,显示为聚合的一段HTML片段。在本节中,我们讲述了如何为我们的blog应用。建立portlet构架根据需求分析,我们需要四个不同的 portlet(为方便,以下翻译为模块)。分别是登陆,用户菜单,tag列表和最新评论。这些模块(portlet)会在每个页面的侧边栏显示。建立portle... 阅读全文

posted @ 2010-02-24 21:48 analyzer 阅读(629) 评论(0) 推荐(0) 编辑

摘要: 像文章模块一样,我们需要完善评论模块的rules(), relations() 和 safeAttributes() 方法,另外我们还需要修改attributeLabels()方法,来为一些属性定义显示标签修改rules()方法我们首先修改由Yiic工具生成的验证规则,评论使用如下的验证规则publicfunctionrules(){returnarray(array('author,email,... 阅读全文

posted @ 2010-02-24 21:47 analyzer 阅读(409) 评论(0) 推荐(0) 编辑

摘要: 本节中我们实现了评论的添加和显示显示评论我们采用文章的显示页面来添加和显示评论。在显示完正文之后我们显示评论的列表和添加评论的提交表单。为了在文章显示页面显示评论列表,我们如下修改PostController的actionShow()方法。publicfunctionactionShow(){$post=$this->loadPost();$this->render('show',ar... 阅读全文

posted @ 2010-02-24 21:47 analyzer 阅读(308) 评论(0) 推荐(0) 编辑

摘要: 文章管理主要涉及到把文章列表在管理页面显示,和删除操作。分别由admin操作和delete操作实现。由yiic生成的代码并不需要太大的修改。下面我们主要解释这两个操作是怎么实现的。在table中显示文章列表admin操作在表格中显示所有的文章的列表(包括发布的和没有发布的)。表格有许多列,并提供分页。下面是PostController中的actionAdmin()方法publicfunctiona... 阅读全文

posted @ 2010-02-24 21:46 analyzer 阅读(427) 评论(0) 推荐(0) 编辑

摘要: 我们已经修改好了post model。还需要调整一下PostController控制器的视图(view)和动作(action)。在本节中我们首先完善controller中进行CRUD操作的权限。然后完善添加和更新操作。最后实现文章的预览。操作权限第一件事情便是完善访问权限,因为用Yiic工具生成的并不是我们需要的。我们如下修改/wwwroot/blog/protected/controllers/... 阅读全文

posted @ 2010-02-24 21:45 analyzer 阅读(453) 评论(0) 推荐(0) 编辑

摘要: 在我们blog中,文章可能显示在列表中或者单个显示。前一个由list动作(action)处理,后一个由show动作(action)处理。在本节中我们按照需求修改完善这两个操作完善显示操作显示操作由PostController的actionShow()方法处理数据,由视图文件blog/protected/views/post/show.php展示页面。下面是PostController中的显示操作的... 阅读全文

posted @ 2010-02-24 21:45 analyzer 阅读(496) 评论(0) 推荐(0) 编辑

摘要: 由yiic工具生成的文章模块主要有以下三个地方需要完善:rules()方法:模块属性的验证规则。也就是表中数据的验证规则relations()方法 :各个模块的相互关系,也就是各个表的相互关系。safeAttributes()方法:允许批量赋值的属性。模块有许多和数据表中字段对应的属性。属性可以显式的通过类的变量进行声明,也可以隐式的不采用任何声明。也就是可以把属性都作为变量声明出来,也可以不进行... 阅读全文

posted @ 2010-02-24 21:44 analyzer 阅读(621) 评论(0) 推荐(0) 编辑

摘要: 我们完成了第一个阶段,让我们总结一下目前为止我们完成的工作。我们规划要实现的需求安装了yii framework生成了一个应用的框架设计并建立了数据库修改程序的配置文件以连接到数据库为文章和评论生成基本的CRUD操作完善了用户验证对于这个新项目,在第一个阶段中大多数的时间我们花费在了setp1和4上。尽管生成代码对于数据表有着完善的CRUD功能,在实际应用中也他们往往需要被修改。因此在接下来的两个... 阅读全文

posted @ 2010-02-24 21:43 analyzer 阅读(204) 评论(0) 推荐(0) 编辑

摘要: 增加、显示、修改、删除是持久化数据的四个基本的操作,在我们的应用程序中。主要任务就是对文章和评论实现这些基本的操作。在本节中,我们使用Yiic工具来完成这个工作。这个过程往往被叫做脚手架。开启命令行输入:% /wwwroot/yii/framework/yiic shell /wwwroot/blog/index.phpYii Interactive Tool v1.0Please type 'h... 阅读全文

posted @ 2010-02-24 21:42 analyzer 阅读(600) 评论(0) 推荐(0) 编辑

摘要: 我们的blog应用要区分系统用户和访客的不同身份。所以需要实现用户的验证部分。或许你已经看到系统提供了一个用户验证,通过检查admin和demo的用户名密码。在这节中我们修改这段代码,让用户验证根据User表里的数据进行验证。用户验证是由实现了IUserIdentity接口的的一个类来实现的。我们的应用架构中使用类UserIdentity来实现此目标.该文件存放在/wwwroot/blog/pro... 阅读全文

posted @ 2010-02-24 21:42 analyzer 阅读(692) 评论(0) 推荐(0) 编辑

摘要: 本节中我们将建立blog的数据库,以及配置应用程序连接到数据库。建立数据库我们选择建立SQLite数据库,Because the database support in Yii is built on top of PDO,我们可以方便的切换到不同类型的数据库管理系统(比如 Mysql PostgreSQL)而不需要修改程序的代码。我们可以在目录/wwwroot/blog/protected/da... 阅读全文

posted @ 2010-02-24 21:41 analyzer 阅读(508) 评论(0) 推荐(0) 编辑

摘要: 通过以上分析,我们认为需要建四个表来存储用户、文章、评论和tag用户表(User) 保存用户信息 包括用户名和密码文章表(Post) 保存文章的信息。主要包括以下内容标题(title):必须。内容(content):必须。使用Markdown 格式状态(status):必须。可以是一下个是之一 草稿、发布、存档tags(tags):可选,文章的tags以逗号分割。评论表(Comment):存储评论... 阅读全文

posted @ 2010-02-24 21:39 analyzer 阅读(476) 评论(0) 推荐(0) 编辑

摘要: Yii安装最后更新 2009-07-15 23:08:20在这一节中,我们用Yii创建了一个应用的基本框架作为起点。为方便起见,我们假定WEB服务的根目录为/wwwroot。对应的访问地址为http://www.example.com/安装我们首先安装Yii framework。从yiiframework获取Yii压缩包,将其解压到目录/wwwroot/yii,再次检查,确保目录/wwwroot... 阅读全文

posted @ 2010-02-24 21:38 analyzer 阅读(3450) 评论(1) 推荐(0) 编辑

摘要: 我们准备开发的blog是个单用户系统。系统的用户应具有以下功能:登陆、注销建立、更新、删除文章文章的发布和取消发布批准或者删除评论其他用户作为游客,可进行以下操作阅读文章添加评论根据以上需求系统应包括:系统首页应该有一个最新文章的列表如果有10篇以上的文章应该分页显示显示文章的时候应同时显示相关评论显示文章的时候应同时显示对应的tag系统应显示tag列表,并标明它们使用的频率系统应显示最新的评论列... 阅读全文

posted @ 2010-02-24 21:38 analyzer 阅读(252) 评论(0) 推荐(0) 编辑

摘要: PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”Efficient Pagination Using MySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。首先看一下分页的基本原理:mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT ... 阅读全文

posted @ 2010-02-24 15:26 analyzer 阅读(422) 评论(0) 推荐(0) 编辑

摘要: 查询:MySQL: SELECT * FROM userMongo: db.user.find()MySQL: SELECT * FROM user WHERE name = 'starlee'Mongo: db.user.find({'name' : 'starlee'})插入:MySQL: INSERT INOT user (`name`, `age`) values ('starlee',2... 阅读全文

posted @ 2010-02-24 15:23 analyzer 阅读(921) 评论(0) 推荐(1) 编辑

摘要: 发现包括IIS在内的大多数处理服务器,都是默认不支持shtml的,nginx支持shtml的方法为:在nginx.conf配置文件,添加:ssi on;ssi_silent_errors on;ssi_types text/shtml;然后保存,重启nginx即可。 阅读全文

posted @ 2010-02-24 01:56 analyzer 阅读(2254) 评论(0) 推荐(0) 编辑

摘要: Nginx从0.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它 可以支持任意URL链接,同时也支持404/301/302这样的非200状态码。虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面,但是,通过一个第三方的Nginx 模块... 阅读全文

posted @ 2010-02-24 01:55 analyzer 阅读(497) 评论(0) 推荐(0) 编辑

摘要: 正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* -d和!-d用来判断是否存在目录* -e和!-e用来判断是否存在文件或目录* -x和!-x用来判断文件是否可执行flag标记有:* last 相当于Apache里的[L]标记,表示完成rewrite* br... 阅读全文

posted @ 2010-02-24 01:54 analyzer 阅读(1839) 评论(0) 推荐(0) 编辑

摘要: 转自:http://www.ccvita.com/306.html写在前头偶然之间看到本文的中英文对照版本,感觉看起来不是很方便,于是花费了半个小时的时间,仔细整理出了独立的中文版本,并记录下来。协议memcached 的客户端使用TCP链接 与 服务器通讯。(UDP接口也同样有效,参考后文的 “UDP协议” )一个运行中的memcached服务器监视一些(可设置)端口。客... 阅读全文

posted @ 2010-02-24 01:26 analyzer 阅读(680) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 71 下一页
我要啦免费统计