页面伪装异步加载中...
关闭/显示侧边栏
返回首页 mail me! 订阅rss Follow me

关于ThinkPHP的缓存

昨天在使用TP的AR模式更新数据时,就是在create()后使用 M(‘xxx’)->field 来更新字段值时,老是更新不进去,开始以为是手册哪里没有讲这个方法讲明白,经过后面的排查才发现是因为缓存问题。

因为我在中途更新了表,添加了一个新的字段,而这个字段没写入缓存,删除runtime文件夹下内容后正常。

闲心的时候我看了下runtime目录下的东西。

有4个文件夹, Cache,Data,Logs,Temp,然后是~app.php  和 ~runtime.php 文件。

Cache下生成的PHP文件是模板的缓存,而Data文件夹下有个_fields的文件夹,里面存放的便是对应的Model的表的自动填充字段规则,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
return array (
  0 => 'id',
  1 => 'title',
  2 => 'imageurl',
  3 => 'username',
  4 => 'cid',
  5 => 'postdate',
  6 => 'content',
  7 => 'good',
  '_autoinc' => true,
  '_pk' => 'id',
);
?>

也是因为这两个文件就是导致开头我说的问题的原因了,修改了数据表后,缓存的Data并没有更新。

~app.php文件中保存是各种的系统配置,以及一些自定义的配置。

软件项目开发流程及规范

Web开发的分散性和交互性,决定了Web开发必须遵从一定的开发规范和技术约定,只有每个开发人员都按照一个共同的规范去设计、沟通、开发、测试、部署,才能保证整个开发团队协调一致的工作,从而提高开发工作效率,提升工程项目质量。

一、项目的角色划分

如果不包括前、后期的市场推广和产品销售人员,开发团队一般可以划分为项目负责人、程序员、美工三个角色。

项目负责人在我们中国习惯称为”项目经理”,负责项目的人事协调、时间进度等安排,以及处理一些与项目相关的其它事宜。程序员主要负责项目的需求分析、策划、设计、代码编写、网站整合、测试、部署等环节的工作。美工负责网站的界面设计、版面规划,把握网站的整体风格。如果项目比较大,可以按照三种角色把人员进行分组。

角色划分是Web项目技术分散性甚至地理分散性特点的客观要求,分工的结果还可以明确工作责任,最终保证了项目的质量。分工带来的负效应就是增加了团队沟通、协调的成本,给项目带来一定的风险。所以项目经理的协调能力显得十分重要,程序开发人员和美工在项目开发的初期和后期,都必须有充分的交流,共同完成项目的规划和测试、验收。

二、开发工具的选取

不象C/S结构程序开发,可以一门语言从头到尾,你用Delphi,就是Delphi程序员,你用VC++,你就是VC程序员。B/S结构的Web开发工作,工具的选择是一件痛苦的事情。从Windows到Linux,从IIS到Apache,从J2EE到.NET,从COM到.NET到EJB组件……还有Asp、Asp.net、Jsp、Php、Perl、Javascript、Vbscript……

美工也轻松不了多少,什么”网页三剑客”"新网页三剑客”、FrontPage、Photoshop、CorelDraw……谁都说自己是最强大的!

我们的经验是,选用工具时最好是统一的,比如美工统一用DreamwaverMX制作网页,程序员全部用文本编辑器书写代码。统一工具的好处是可以保持同一个项目文档的一致性,便于开发人员的交流和文档的保存。

但是也不必刻意强求一致,比如美工可以使用任何自己熟悉的图形处理软件,只要最后能生成浏览器支持的图片就可以了。正是Web开发工具的多样性,才成就了今天互联网多姿多彩的局面。

只要程序员的纯Html和Javascript代码的功夫足够过硬,就能胜任最后的网站整合工作。

阅读全文>>>

一个简单的B/S开发流程

1.BD阶段(bussiness develop)

具体的不说了。主要是要根据客户的大概的一个需求,替客户制定出系统构架的建议。
主要包含采用 什么样的技术手段,采用什么样的服务器,什么样的系统结构等等。
产生的文档应该叫系统的整体设计吧。(Proposal)
2.功能分析(function analyse)

与客户进行具体功能和流程的分析和设计,确定功能。
产生的文档:功能说明书Function Spec(B/S结构的系统,一般有做好的整个系统的
静态网页作为DEMO) 此文档需要客户签字认可。
3.项目进程安排与分工计划。(project plan)

这是正式开始项目的第一步工作,安排项目进度。列出项目进度表和分工表。(这个进程表要按项目的实际进程不断修改和完善)
产生文档:项目进度表
4.技术设计阶段(technical design)

主要是从技术角度设计系统,完成系统技术方面的设计和系统整体编码构架的计划。
制定开发规则,编码规则等。
产生文档:技术设计说明书(Technical design spec)
5.编码设计(program design)

根据功能制定编码流程,结构层次和各个接口。
产生文档:编码说明书(Program spec)

阅读全文>>>

无题

php,js,xml,css,框架,linux,apache,mysql,正则,http,架构,高性能,uml建模,迭代开发,系统设计,svn

php程序员的悲哀。

从未停止过的忙碌

现在似乎都不能闲下来,已不是那个时候我矫情的说自己不习惯闲着,现在已经容不得我是否习惯了。

新的开发计划,这次将会是第一次尝试和小汐进行团队开发合作,也开始慢慢的开始培养团队的合作默契。

受到UCD和UED的影响,这次的开发在之前做了不少的细节上的考虑,虽然不能在第一次完全做完所有的想法,但依然要本着以用户为中心的思想进行开发和设计。

因为其中部分的数据多表对应相当复杂,抠光了头皮纠结了一天多,终于把复杂的那部分数据库纠结出来了,图便是使用MySQL Workbench软件做数据库设计时的界面。

Page 1 of 3123