백엔드 개발 PHP 튜토리얼 php开发web网站程序的几点经验记录

php开发web网站程序的几点经验记录

Jun 20, 2016 pm 01:01 PM

php开发web网站程序的几点经验记录

以前把php当作一个纯粹的系统编程脚本,从3月份开始第一次使用php写web网站,一点经验在这里总结一下。

一:打开错误显示和错误日志。在php.ini中把dispaly_errors设置为On,或者在脚本开头用ini_set('display_errors', 'On')。

二: 调试工具必备。需要两种调试工具:第一种是调试php脚本的,就像C调试器那样可以在脚本中设置断点,单步执行,运行时查看变量值、修改变量值等,我用的 是xdebug + vim;第二种是调试HTTP的,当页面打开后一片空白,连个错误信息都没有,或者有些ajax调用的地方出现程序错误,这个时候很需要一个工具来查看实 际的HTTP通信过程,我用的是firefox的插件httpfox。

三:自定义错误处理和异常处理程序。错误处理和异常处理这两个是极 好用的东东,我一般用错误处理来向终端用户报告错误,用异常来记录应用程序运行时错误,比如数据库连接错误等。这两类错误我自己也时常分不清楚,我使用它 们的时候基于这个想法:当程序运行出错时,向用户报告的错误信息一定要友好且隐藏数据库和后台代码细节,这个时候就用trigger_error引发自定 义的错误处理程序来报告错误;同时程序员要能够在事后知道程序为什么会出错,这需要记录错误发生处的调用栈等信息,而异常本身就把这些信息保留得非常完 全,所以这个时候我会throw new Exception("error message")来触发自定义的异常函数,然后在异常函数中把错误信息用error_log记录到日志文件中去。设置自定义错误处理程序用 set_error_handler,设置的这个自定义函数中返回false表示在处理之后再把该错误由php默认的处理函数处理一次,返回true表示 在自己处理后即终止。设置自定义异常处理函数用set_exception_handler。

四:一些辅助工具如firefox的插件firebug极好用。它可以马上查看页面上任何一个元素的html代码和css格式,可以调试javascript。

五:再次推荐xdebug工具。它把所有的错误信息都格式化输出,看起来非常明了。

六: 使用MVC的时候经常判断不清楚哪些应该放在controller里面,哪些应该放到model里面。放错了没关系,一个功能有很多种实现方式,只要保证 统一就好。代码风格糟糕也没关系,多读几个函数就习惯了,只要全局约定都统一起来,代码就无所谓好坏了。全局约定统一这是需要意志力去坚持的,要花时间去 克服那种为了偷机取巧破坏全局规范的坏毛病。

七:考虑问题一定要全面。要把数据库的ER图常放在手边,并且要清楚地理解各个页面的作用和各个页面对模块的引用情况,这样在修改的时候会影响到哪些地方就都清楚了。没有对数据库结构和各页面对各模块的引用的概览,单凭智商来判断,是非常不可靠的,思维也需要工具。

八:太依赖自动化工具和测试数据来发现程序错误会降低人的智商和思考力。

九:数据库表名在windows下是case insensitive的,在linux下case sensitive的,把数据库从一个OS导出再到另一个OS的服务器上导入时代码常出问题。所以数据库表名最好全用小写,表名中单词之间的分隔可以用下划线。


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) 11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) Mar 03, 2025 am 10:49 AM

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄)

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel의 플래시 세션 데이터로 작업합니다

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel 테스트에서 단순화 된 HTTP 응답 조롱

Instagram API 소개 Instagram API 소개 Mar 02, 2025 am 09:32 AM

Instagram API 소개

Laravel Back End : Part 2, React가있는 React 앱 구축 Laravel Back End : Part 2, React가있는 React 앱 구축 Mar 04, 2025 am 09:33 AM

Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트

2025 PHP 상황 조사 발표 2025 PHP 상황 조사 발표 Mar 03, 2025 pm 04:20 PM

2025 PHP 상황 조사 발표

See all articles