当前位置:文档之家› 第五篇 创建实用的php和MySQL项目 笔记

第五篇 创建实用的php和MySQL项目 笔记

php+mysql第五篇创建实用的php和MySQL项目php+mysql第五篇创建实用的php和MySQL项目 (1)1.在大型项目中使用php和mysql (4)1.1.在web开发中应用软件工程 (4)1.2.规划和运行web应用程序项目 (4)1.3.重用代码 (4)1.4.编写可维护代码 (4)1.4.1.编码标准 (4)1.4.1.1.定义命名惯例 (4)1.4.1.2.对代码进行注释 (4)1.4.1.2.1.对文件或包含文件注释 (4)1.4.1.2.2.对函数进行注释 (4)1.4.1.2.3.类注释 (4)1.4.1.2.4.脚本或一大段代码 (4)1.4.1.2.5.复杂的代码 (5)1.4.1.3.代码缩进 (5)1.4.2.分解代码 (5)1.4.3.使用标准的目录结构 (5)1.4.4.文档化和共享内部函数 (5)1.5.实现版本控制 (5)1.6.选择一个开发环境 (5)1.7.项目的文档化 (5)1.7.1.设计文档 (6)1.7.2.技术文档/开发指南 (6)1.7.3.数据词典(包含类文档) (6)1.7.4.用户指南(尽管大多数web程序是自我解释的) (6)1.8.建立原型 (6)1.9.分离逻辑.内容和外观.php+html+css (6)1.9.1.用包含文件保存不同部分的内容 (6)1.9.2.用一个函数或者带有一组成员函数的类api将动态内容插入到静态网页模版中61.9.3.使用模版系统.用来解析静态模版 (6)1.10.优化代码 (6)1.10.1.使用简单优化 (6)1.10.1.1.减少数据库连接 (6)1.10.1.2.加速数据库查询 (7)1.10.1.3.使php中生成的静态内容减少到最小 (7)1.10.1.4.尽可能使用字符串函数代替正则表达式 (7)1.10.2.使用zend产品 (7)1.11.测试 (7)1.11.1.代码审查让同事帮忙看看 (7)1.11.2.让最终客户测试web程序 (7)2.调试 (7)2.1.编程语法/运行时以及逻辑错误 (7)2.1.1.编程错误 (7)2.1.1.1.语法错误 (7)2.1.1.2.运行时错误 (7)2.1.1.2.1.调用不存在的函数 (8)2.1.1.2.2.读写文件错误 (8)2.1.1.2.3.与mysql或其他数据库的交互 (8)2.1.1.2.4.连接到网络服务 (8)2.1.1.2.5.检查输入数据失败 (8)2.1.1.3.逻辑错误 (8)2.2.错误级别 (8)2.3.改变错误报告设置 (8)2.3.1.报告除了通知之外的所有错误 (8)2.3.2.以html形式将出错信息输出到标准输出接口 (8)2.3.3.不将错误信息作为日志记录到磁盘 (8)2.3.4.不跟踪错误.将错误保存在变量$php_errormsg中 (8)2.4.触发自定义错误 (9)2.5.巧妙的处理错误 (9)3.建立用户身份验证机制和个性化设置 (9)3.1.方案需求 (9)3.2.设计的函数 (9)3.2.1.先制作bookmarks.sql文件方便导入 (10)3.2.2.登录页面.调用一个函数库 (10)3.2.3.用try{}catch(){}语句进行判断验证 (10)3.2.4.注册用函数 (10)3.2.4.1.filled_out()函数 (10)3.2.4.2.valid_email()函数 (10)3.2.4.3.register(用户名.邮箱.密码)函数 (10)3.2.4.4.db_connect()函数 (10)3.2.5.登录用函数 (10)3.2.5.1.login(用户名.密码)函数 (10)3.2.5.2.check_valid_user()函数 (10)3.2.6.修改密码用的函数 (10)3.2.6.1.change_password(用户名.老密码.新密码) (11)3.2.7.重置密码用的函数 (11)3.2.7.1.reset_password(用户名)函数 (11)3.2.7.2.get_random_word(最小长度.最大长度)函数 (11)3.2.7.3.notify_password(用户名.密码)函数 (11)3.2.8.添加书签 (11)3.2.8.1.add_bm(url)函数 (11)3.2.9.显示书签用的函数 (11)3.2.9.1.get_user_urls()函数 (11)3.2.10.删除书签 (11)3.2.10.1.delete_bm(用户名.url地址) (11)3.2.11.推荐非用户自己书签函数 (11)3.2.11.1.recommend_urls(用户.显示数量)函数 (11)3.3.考虑可能的扩展 (12)3.3.1.按主题分类的一组书签 (12)3.3.2.一个管理界面用以创建管理用户的书签 (12)3.3.3.书签推荐直接添加到自己书签的功能 (12)1.在大型项目中使用php和mysql1.1.在web开发中应用软件工程软件开发过程中系统化可以量化的开发方法1.2.规划和运行web应用程序项目规划项目怎么弄page4061.3.重用代码php有大量内置函数库多看手册或用别人写好的函数1.4.编写可维护代码1.4.1.编码标准1.4.1.1.定义命名惯例文件名命名体现功能干什么的1.4.1.2.对代码进行注释1.4.1.2.1.对文件或包含文件注释通篇注释知道大局1.4.1.2.2.对函数进行注释指明函数功能输入参数和返回值1.4.1.2.3.类注释描述类的用途类方法同上1.4.1.2.4.脚本或一大段代码描述这一段主要干啥的1.4.1.2.5.复杂的代码不好理解的标记一下说明1.4.1.3.代码缩进容易阅读让人理解1.4.2.分解代码分解代码到一个文本并引用比如可以将所有与数据库相关的函数放到一个名为dbfunctions.php文件中这样可以使文本代码易读易懂1.4.3.使用标准的目录结构考虑组件结构如何反映到网站目录中在开始一个项目的时候,必须考虑组件结构如何反应到网站目录结构中,就像用一个重大的脚本实现所有的功能是十分糟糕的一样,用一个大目录包含所有的东西也是非常糟糕的做法.决定如何按照组件.逻辑,内容和源代码库将目录分成多个部分,对目录结构进行文档化处理,并确认开发本项目的每一位工作人员都有一个副本,以确保他们可以从中查找需要的东西.1.4.4.文档化和共享内部函数文档化说明各个函数功能让别人理解1.5.实现版本控制访问和共享别人代码提供一个可控制的接口大多数unix开发人员和开放源代码开发人员使用版本控制系统是cvs.它是cvs并发版本系统的缩写.1.6.选择一个开发环境就是编辑器了, 比如zend studio1.7.项目的文档化正开发的项目制作许多种文档在一些语言中,有一些自动生成这些文档的方法,特别是技术文档和数据词典.比如javadoc可以生成html格式的树形结构文件目录,该树形结构就包含了java程序中类成员的原型及描述对于php也有一些可以提供该功能的工具.比如phpdoc1.7.1.设计文档1.7.2.技术文档/开发指南1.7.3.数据词典(包含类文档)1.7.4.用户指南(尽管大多数web程序是自我解释的)1.8.建立原型适用于开发web程序的开发周期个人感觉就是和客户讨论需求需要什么界面什么功能想象草拟的样子图1.9.分离逻辑.内容和外观.php+html+css有3种基本方法1.9.1.用包含文件保存不同部分的内容使用require_once和include这种方法虽然过于单纯,但是如果网站主要是静态的,却很有效1.9.2.用一个函数或者带有一组成员函数的类api将动态内容插入到静态网页模版中1.9.3.使用模版系统.用来解析静态模版通过正则表达式动态数据代替占位符标记.推荐1.10.优化代码1.10.1.使用简单优化1.10.1.1.减少数据库连接连接数据库比较慢1.10.1.2.加速数据库查询通常原则是减少连接增加索引1.10.1.3.使php中生成的静态内容减少到最小每个html都用echo效率慢1.10.1.4.尽可能使用字符串函数代替正则表达式字符串处理函数速度更快1.10.2.使用zend产品他可以优化代码提高脚本运行速度1.11.测试审查和测试代码是软件工程一个基本要点1.11.1.代码审查让同事帮忙看看1.11.2.让最终客户测试web程序2.调试讨论如何调试php脚本2.1.编程语法/运行时以及逻辑错误2.1.1.编程错误用什么语言编程都会遇到这3种错误类型2.1.1.1.语法错误代码不规范.容易发现2.1.1.2.运行时错误找不到文件或是权限不够等等原因解决运行时错误需要一定程度的可预见性2.1.1.2.1.调用不存在的函数函数名写错等等2.1.1.2.2.读写文件错误磁盘满了或是没有权限2.1.1.2.3.与mysql或其他数据库的交互2.1.1.2.4.连接到网络服务连接卡或是网络不通等2.1.1.2.5.检查输入数据失败对输入数据进行过滤2.1.1.3.逻辑错误最难发现和清除的错误类型2.2.错误级别默认php将报告除了通知之外的错误参考page4262.3.改变错误报告设置通过php.ini或在脚本中进行错误报告设置2.3.1.报告除了通知之外的所有错误默认的全局设置如下2.3.2.以html形式将出错信息输出到标准输出接口2.3.3.不将错误信息作为日志记录到磁盘2.3.4.不跟踪错误.将错误保存在变量$php_errormsg中2.4.触发自定义错误trigger_error()可以用来触发错误2.5.巧妙的处理错误异常处理允许函数发出信号通知错误出现异常机制是在大型项目中处理错误的好方法.当用户级别的错误,警告和通知发生时,set_error_handler()函数可以提供一个可供调用的函数,可以将用错错误处理程序的函数名称作为set_error_handler()的参数比如:set_error_handler('mabt'),如果文件出错了将调用mabt()函数3.建立用户身份验证机制和个性化设置制作一个在线书签系统写一个程序的套路一般是先require_once('xxx.php')引入文件,引入支持的函数以及数据库连接,html输出函数等等然后在开启session_start()开启会话设置以获取服务器中的会话变量然后分别定义上一页面传递的值和SESSION值$a=$_POST['xxx'];$b=$_SESSION['valid_user'];然后输出html头部,验证用户是否登录,再判断post的值是否合法接着就进行相关操作了,到最后输出html尾部函数一调用就可以了.3.1.方案需求查看page4323.2.设计的函数一个功能除了有函数之外还有对应这个功能的php文件用来提取数据判断合法性再显示3.2.1.先制作bookmarks.sql文件方便导入创建数据库用户以及数据表3.2.2.登录页面.调用一个函数库3.2.3.用try{}catch(){}语句进行判断验证3.2.4.注册用函数3.2.4.1.filled_out()函数检查一个参数参数(表单)是否完全填写3.2.4.2.valid_email()函数参数是邮箱.检查邮箱是否有效3.2.4.3.register(用户名.邮箱.密码)函数注册将用户信息提交到数据库3.2.4.4.db_connect()函数没有参数连接数据库返回句柄3.2.5.登录用函数3.2.5.1.login(用户名.密码)函数连接数据库出错报错3.2.5.2.check_valid_user()函数无参数检查是否设置了$_SESSION[valid_user]判断是否登录3.2.6.修改密码用的函数3.2.6.1.change_password(用户名.老密码.新密码)更新用户的密码3.2.7.重置密码用的函数3.2.7.1.reset_password(用户名)函数把用户密码重置为单词加随机数返回新密码3.2.7.2.get_random_word(最小长度.最大长度)函数随机获取一个单词.并先限定长度3.2.7.3.notify_password(用户名.密码)函数将新密码发送给用户3.2.8.添加书签3.2.8.1.add_bm(url)函数将用户提交的书签添加到数据库中3.2.9.显示书签用的函数3.2.9.1.get_user_urls()函数从数据库取回用户书签返回一个数组3.2.10.删除书签3.2.10.1.delete_bm(用户名.url地址)从用户的书签列表中删除一个书签3.2.11.推荐非用户自己书签函数3.2.11.1.recommend_urls(用户.显示数量)函数检索数据库并推荐其他书签返回一个数组3.3.考虑可能的扩展可以考虑添加其他扩展功能3.3.1.按主题分类的一组书签3.3.2.一个管理界面用以创建管理用户的书签3.3.3.书签推荐直接添加到自己书签的功能。

相关主题