构建知识体系之一--PHP代码规范
首秀啊!-----PHP代码规范
之前的博客“构建知识体系“中,提到了很多细节性的问题,接下来就以上个博客为纲,细细的讨论一下:
每个人,每个公司的规范可能不同,我只说一下自己的规范哈!
提高代码的可读性:
- 给代码加注释,读一份没有注释的代码,就像是唐僧西天取经,不经历九九八十一难,你就是看不懂!
- 给代码加空行,善于利用空行的代码就像是有节奏感的音乐,多一行太多,少一行太少!
- 30秒法则:其他的程序员完全理解你的成员函数代码,不超过30秒,否则,这份代码就比较难以维护
- 一行代码不要超过120个字符,否则换行缩进,一个函数最好在一个屏幕的大小内显示,最长不超过三个屏幕
- 一行代码只做一件事,同理一个函数也只负责一个功能。
- 循环比较大的时候不要使用$i这样的,起个有意义的名字
- while,if,else嵌套不要超过三层,要不30秒怎么读的懂?
- 一个函数最少的注释应该有作用、所有参数、所有返回值,最好注释上作者(追究责任
)
- 所有的缩进均为4个空格而非tab,所有的换行符均为unix换行符,为保证100%正确可以开启IDE的显示空白和不可见字符的功能
提升代码效率和健壮:
- 如未使用DB类的公共处理,则SQL语句查询前,应使用mysql_escape_string对查询串进行转义
- 在第一个引入的文件中定义好包含绝对路径的常量,其他引入的文件路径都常量开始
- 所有的类常量、静态变量、成员变量都应该提前申明,在申明的地方注释说明其用途,并将其值初始化为一个安全值
- 如未使用DB类的公共处理,则SQL语句查询前,应使用mysql_escape_string对查询串进行转义
- 调用外部接口和函数,要放在try/catch块中,也要检查返回值, 做足够健壮的错误处理,记录日志
- PHP文件尾部不闭合避免PHP标签避免输出多余的空行!!!
命名规则:
- 命名要有意义,有注释,其他程序员读的时候,一眼就能看懂,读懂,记住
- 所有不区分大小写的PHP关键字均使用小写,例如:true false null break等等
- 所有的变量、类成员变量、函数名、类成员函数名均采用驼峰式命名规范
- 所有的常量、类常量、静态变量等全部使用大写字母,下划线分割单词
- private和protected属性的类静态变量、类成员变量和类成员函数名在原有命名规范的基础上以下划线开头
- 文件名由字母、数字和下划线组成,首字符必须为字母,如果文件是一个类,则文件名应该为"类class.php",如"DBConfig.class.php",否则文件名全部为小写,多个单词下划线分隔,如"post_list.php"
- 类名称采用帕斯卡命名规则,即所有单词首字母大写,括号跟在类名后边间隔一个空格
- 类常量全部大写,用下划线分隔单词
争论性
- 所有的"{"左大括号都以空格紧跟前文,不能独立成为一行
- 对于关联数组,我们鼓励将代码分成多行,缩进每一行的KEY以对齐,"=>"左右
有很多没有写的,希望多多建议啊,让我们代码越来越规范
---本规范参照福州车友网络科技有限公司代码规范

tomakephpapplicationsfaster,關注台詞:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,關注台詞:1)啟用opcodeCachingwithapCutoredUcescriptexecutiontime.2)實現databasequerycachingingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandreduceconnection.4 limitesclection.4.4

依赖注入(DI)通过显式传递依赖关系,显著提升了PHP代码的可测试性。1)DI解耦类与具体实现,使测试和维护更灵活。2)三种类型中,构造函数注入明确表达依赖,保持状态一致。3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

phpisusedforsenderemailsduetoitsbuilt-inmail()函數andsupportivelibrariesLikePhpMailerAndSwiftMailer.1)usethemail()functionForbasiceMails,butithasimails.2)butithasimail.2)

PHP性能瓶颈可以通过以下步骤解决:1)使用Xdebug或Blackfire进行性能分析,找出问题所在;2)优化数据库查询并使用缓存,如APCu;3)使用array_filter等高效函数优化数组操作;4)配置OPcache进行字节码缓存;5)优化前端,如减少HTTP请求和优化图片;6)持续监控和优化性能。通过这些方法,可以显著提升PHP应用的性能。

依賴性注射(DI)InphpisadesignPatternthatManages和ReducesClassDeptions,增強量強制性,可驗證性和MATIALWINABIOS.ItallowSpasspassingDepentenciesLikEdenciesLikedAbaseConnectionStoclasseconnectionStoclasseSasasasasareTers,interitationAseTestingEaseTestingEaseTestingEaseTestingEasingAndScalability。

cachingimprovesphpermenceByStorcyResultSofComputationsorqucrouctationsorquctationsorquickretrieval,reducingServerLoadAndenHancingResponsetimes.feftectivestrategiesinclude:1)opcodecaching,whereStoresCompiledSinmememorytssinmemorytoskipcompliation; 2)datacaching datacachingsingMemccachingmcachingmcachings


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。