加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP变量 [精选] PHP开发中,需要注意哪些代码规范?PSR有哪些?

发布时间:2022-12-07 15:32:37 所属栏目:PHP教程 来源:网络
导读: 再次仔细的看了一下关于PHP代码的书写规范,我发现自己确实有很多不足的地方,需要改进,PHP代码遵循PSR(PHP Standard Recommendation)规范,之前忘了看哪本书看到psr4,psr4优化的是com

再次仔细的看了一下关于PHP代码的书写规范,我发现自己确实有很多不足的地方,需要改进,PHP代码遵循PSR(PHP Standard Recommendation)规范,之前忘了看哪本书看到psr4,psr4优化的是composer的依赖倒置,现在已经到psr18了,官网链接 php-fig() 。

代码如果写的很随意,就会显得自己不专业,也会给别人的阅读带来不便。

1、变量、函数写法驼峰

我之前的代码里就是变量有下划线、有驼峰非常不标准

public function readMessage(){ $fdServer = new FdServer(); $countServer = new CountServer();
$toUid = $this->request->getToUid($this->body['to_uid']); $syncStamp = $this->request->getSyncStamp($this->body['syncstamp']); ##略}

2、如果只是当前类使用,不涉及外面的类调用,控制权限给private,方法名用下划线,如果返回数据,返回数据类型最好也保持统一。

private function _formatData($data){ if(!$data) return [];
foreach ($data as $val){ //...略 }
return $data;}

3、if条件和嵌套

个人习惯如果是if最好是加上{},也有人习惯不加,没有权威手册说加好还是不加好。

function getPayAmount() { let result; if (isDead) result = deadAmount(); else { if (isSeparated) result = separatedAmount(); else { if (isRetired) result = retiredAmount(); else result = normalPayAmount(); } } return result;}

优化后,是不是清爽了太多?

function getPayAmount() { if (isDead) return deadAmount(); if (isSeparated) return separatedAmount(); if (isRetired) return retiredAmount(); return normalPayAmount();}

4、重复2次的地方,要写一个函数处理

写函数处理代码的好处是修改时可以统一修改,方便调用,而且在性能上也更优,PHP的底层调用函数结束后,释放资源,如果不分离代码,需等待全部程序执行完毕在统一释放。

5、ORM层数据库的链式调用,ORM主要是采用面向对象的思想对数据库进行操作。

Model::create()->where('status',?1)->where('?(id?>?10?or?id?<2)?')->get();

底下的链式对Sql执行进行了预处理,防止Sql注入

public function getNovelApplyCount(int $nid){ $sql = "SELECT COUNT(*) number FROM {$this->table} WHERE `novel_id` = :novel_id"; $data = [ ':novel_id' => $nid, ];
$tag = $this->getNovelTag($nid); $res = $this->dao->conn(false)->setTag($tag)->preparedSql($sql, $data)->fetchOne(); return $res['number'] ?? 0;}

6、PHP5到PHP7的变化

虽说现在已经8.0了,但还是很有必要看一下的。PHP5最重要的特性就是丰富了面向对象的设计和语法,PHP7最大的特性就是提升了性能,PHP7还有个小细节是弱类型语法像强类型语法转变的风格,参数做了很大的限制。我个人猜想可能是限制了数据类型,考虑的是性能的提升PHP变量,底层少了一层类型转化。

protected function onRequest(?string $action): ?bool{ //接收参数 $this->params = $this->request()->getRequestParam(); $this->method = $this->request()->getMethod(); return true;}
private static function _formatQueryData(string $loginKey): string{ $data['timestamp'] = time(); $data['loginKey'] = $loginKey; $token = self::setToken($data); $data['token'] = $token; $params = http_build_query($data); return $params;}

7、代码列最好不要超过120,单个函数不要超过100行(psr2原文)

There MUST NOT be a hard limit on line length.
The soft limit on line length MUST be 120 characters; automated style checkers MUST warn but MUST NOT error at the soft limit.
Lines SHOULD NOT be longer than 80 characters; lines longer than that SHOULD be split into multiple subsequent lines of no more than 80 characters each.
There MUST NOT be trailing whitespace at the end of non-blank lines.
Blank lines MAY be added to improve readability and to indicate related blocks of code.
There?MUST?NOT?be?more?than?one?statement?per?line.

8、psr14的主题是Event Dispatcher,大概就是把定义的对象写在调用函数里。

class WebSocketEvent{ const MYSQL_CONN_NAME = 'mysql-msg'; /** * @param \Swoole\Http\Request $request * @param \Swoole\Http\Response $response * @return bool */ public function onHandShake(\Swoole\Http\Request $request, \Swoole\Http\Response $response){ /** 此处自定义握手规则 返回 false 时中止握手 */ if (!$this->customHandShake($request, $response)) { $response->end(); return false; }
/** 此处是 RFC规范中的WebSocket握手验证过程 必须执行 否则无法正确握手 */ if ($this->secWebsocketAccept($request, $response)) { $response->end(); return true; }
$response->end(); return false; }}

9、代码分层

就像Tcp/Ip协议一样,复杂的处理过程就是进行人为的逻辑分层,PHP的分层有之前的MVC和现在流行的DDD模式,有人说MVC是滴血模式,我个人觉得MVC也是很好用的,不能网上流行什么我们就用什么,主流的一般都是大公司的处理方式和模式,可是互联网一共有多少大公司呢,开发者要有自己的思维方式,用什么看具体的业务需要。

10、PhpStrom的设置

命名规范还有个小窍门,如果是命名不规范,PHPstrom会提示绿色波浪线,注释不规范就会提示黄色波浪线,下面是不规则的Demo。

php变量转换成字符串_php eval 变量_PHP变量

Mac格式化代码:shift+alt+command+l

原文链接:以上就是本篇分钟的全部内容,希望各位程序员们努力提升个人技术。最后,小编温馨提示:每天阅读5分钟,每天学习一点点,每天进步一点点。

PHP变量_php变量转换成字符串_php eval 变量

点个赞

再走吧

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!