우아하고 내구성이 뛰어난 PHP 코드를 작성하는 방법은 무엇입니까? 이 글은 PHP 코드의 기본 작성 사양과 프레임워크 사양을 안내합니다. 이를 이해하면 PHP 코드가 더욱 우아해집니다!
Lao Wang이 오늘 나에게 그의 코드가 너무 나빠서 엉망이라고 말했습니다. 다리가 긴 소녀를 보면 눈이 반짝반짝 빛나는
것처럼 내 코드의 품질을
향상시켜 내 코드를 더욱 보기 좋고 편안하게 만드는 방법을 저에게 물어보세요.
그래서 나: 이렇게 먼저 하고, 그다음에 이거 하고, 그다음에 저거. . . . . .
동급생 Lao Wang: 그만 괴롭혀, 대체 무슨 일이야?
그래, 이제 13살인 척 시작할 거야. . .
가장 기본적인 사항부터 먼저 이야기해 보겠습니다.
변수 이름에는 카멜 표기법을 사용하세요. 이해하지 못하는 단어에는 병음을 사용하지 말고, 사전을 찾아 해당 단어를 찾으세요.
상수 이름을 지정할 때 대문자 밑줄을 사용하세요. 예: SYSTEM_EROOR = 50000
. SYSTEM_EROOR = 50000
。
缩进使用Tab键,不要打一堆空格做缩进。
类名首字母大写驼峰命名,需要见名知其意,注释说明这个类的功能。例如:
预期结果是输出: 2 4 6
,实际结果是2 4 4
PHP中
&符号你真的了解吗?。 可以使用
array_walk`方法避免这个问题, 示例:
if
, elese
嵌套过深,很多嵌套可以通过提前终止来消除, 举个简单的例子:建议使用第二种方式,不符合条件的直接返回,剩下的就是符号条件的,那么避免了在if里面写很多代码。
多个if/else
使用switch来替代,PHP8.0版本可以使用match
更为简洁。
phpstorm
中安装SonarLint
插件。如果你写的代码出现虚线,说明不太理想,那么可以根据提示修改,相信有强迫症的同学一定会改,久而久之代码就很规范了。例如:
方法未使用,方法名不规范已经告诉你了,可以快捷修改,也可以自己修改。
前面说得都是比较基础的东西,接下来才是主要的内容。
相信很多同学都用过常用的thinkphp
丶laravel
丶yii
중괄호는 단독으로 한 줄을 차지합니다. 예:
2 4 6
, 실제 결과입니다. 결과는 2 4 4
입니다. 이유는 무엇인가요?
내 이전 기사를 살펴보세요. PHP
의 & 기호를 정말로 이해하고 계십니까?. 이 문제를 방지하려면
array_walk` 메서드를 사용할 수 있습니다. 예: if
, elese
중첩을 너무 깊게 하지 마십시오. 조기 종료를 통해 중첩을 제거할 수 있습니다. 예 간단한 예: 🎜🎜🎜🎜🎜조건에 맞지 않으면 직접 반환하는 두 번째 방법을 사용하는 것이 좋으며, 나머지는 기호 조건이므로 if에 많은 코드를 작성하지 않아도 됩니다. 🎜🎜🎜🎜스위치를 사용하여 여러 if/else
를 교체하세요. PHP8.0 버전에서는 match
를 사용하여 더 간결하게 만들 수 있습니다. 🎜🎜🎜🎜phpstorm
에 SonarLint
플러그인을 설치하세요. 작성한 코드에 점선이 있으면 이상적이지 않다는 의미이므로 강박 장애가 있는 학생들은 분명히 코드를 변경할 것이며 시간이 지남에 따라 코드가 매우 표준화될 것이라고 믿습니다. . 예: 🎜🎜🎜🎜🎜🎜메서드가 사용되지 않습니다.메소드 이름이 표준화되어 있지 않다고 말씀드렸으니 빠르게 수정하셔도 되고, 직접 수정하셔도 됩니다. 🎜thinkphp
丶laravel
丶yii
와 같은 인기 있는 프레임워크 중 하나를 사용한 것 같습니다. 🎜🎜🎜🎜이 프레임워크는 모두 MVC 아키텍처를 기반으로 하며 컨트롤러나 모델에서 비즈니스 로직을 작성하는 것이 컨트롤러에서 작성하는 것보다 상대적으로 좋습니다. 사실 대규모 프로젝트에는 그다지 우호적이지 않습니다. 🎜🎜🎜🎜다음은 Laravel 프레임워크를 예로 사용합니다. 🎜🎜🎜🎜🎜매개변수 확인🎜🎜🎜🎜🎜API에는 매개변수 확인이 필요하지만 매개변수 확인을 작성하는 가장 우아한 방법은 어디에 있습니까? 많은 사람들이 컨트롤러에서 규칙을 정의한 다음 확인 방법을 호출할 수 있습니다. 그러면 동료가 작성한 것과 같은 확인 코드가 모든 API에 나타납니다. 🎜🎜🎜🎜🎜🎜🎜🎜🎜이 코드는 각 API에 한 번씩 표시됩니다. 너무 장황하지 않나요? 🎜🎜🎜🎜🎜🎜Requsts
目录,用于存放请求的参数验证类。建立一个BaseRequest
类:比如登录需要参数验证再建立一个LoginRequest
类继承这个BaseRequest
를 생성하세요.
여기에서 요청 매개변수를 얻으면 양식이 확인됩니다. 그렇지 않으면 매개변수 확인에 실패하면 요청 누적에 의해 방금 정의된 메서드가 호출되어 Json 예외가 발생하고 정보가 반환됩니다. 고객.
컨트롤러의 주요 워크로드는 요청 데이터를 얻고 콘텐츠를 반환하는 것입니다. 더 이상의 작업을 수행해서는 안 되며, 비즈니스 로직을 처리하기 위해 서비스 레이어를 정의할 수 있습니다. 따라서 내 컨트롤러에는 코드 한 줄만 있습니다.
그런 다음 사용자 관련 비즈니스 로직을 처리하기 위한 UserService를 생성합니다.
다음을 사용하여 이 UserService를 UserController에 삽입합니다.
Model 비즈니스 로직을 작성하는 것은 권장되지 않습니다. 모델은 주로 일부 콘텐츠를 정의하는 데 사용되며 데이터를 조작해서는 안 됩니다.
모델의 데이터 조작은 Repository에 배치하고 Laravel의 앱 디렉토리Repositories
에 폴더를 생성해야 합니다.
BaseRepository 정의:
사용자 데이터 관련 작업을 위한 UserRepository 정의, 생성 방법에 UserModel 삽입:
프로젝트에서 많은 상수를 정의하는 방법은 무엇입니까?
앱 디렉토리에 Constant 디렉토리를 생성한 다음 Constant 클래스를 생성하여 이러한 사용자 정의 상수를 저장하세요.
장점:
원본 주소 : https://juejin.cn/post/6957290009682509854
저자 : ClassmateLin
추천 학습 : "PHP Video Tutorial"
위 내용은 우아하고 매력적인 PHP 코드를 작성하는 방법은 무엇입니까? 작문 표준에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!