>백엔드 개발 >PHP 튜토리얼 >php7의 10가지 금기 사항

php7의 10가지 금기 사항

PHP中文网
PHP中文网원래의
2017-02-10 14:21:19985검색

1. mysql_ 함수를 사용하지 마세요

드디어 이제 mysql_ 함수를 사용하지 말아야 할 날이 왔습니다. PHP 7에서는 이러한 기능을 모두 코어에서 제거했습니다. 즉, 훨씬 더 나은 mysqli_ 기능이나 보다 유연한 PDO 구현으로 마이그레이션해야 한다는 의미입니다.

2. 정크 코드를 작성하지 마세요

이것은 이해하기 쉽지만 PHP 7의 속도 향상으로 인해 일부 문제가 숨겨질 수 있으므로 점점 더 중요해질 것입니다. PHP 7로 마이그레이션하면 속도가 빨라지므로 사이트 속도에만 만족하지 마십시오.

속도가 얼마나 중요한지, 더 나은 작업을 수행하는 방법을 이해하려면 속도 최적화 시작하기 기사를 살펴보세요.

개발자로서 항상 요청 시 스크립트를 로드하고, 가능하면 연결하고, 효율적인 데이터베이스 쿼리를 작성하고, 가능하면 캐싱을 사용하는 등의 작업을 수행해야 합니다.

3. 파일 끝에 PHP 닫는 태그를 사용하지 마세요

보세요. 파일이 PHP 코드로 끝나면 대부분의 WordPress 핵심 코드는 PHP 태그를 제거합니다. 마지막에. 실제로 Zend Framework는 이를 특별히 비활성화합니다. PHP는 파일 끝에 닫는 태그를 요구하지 않으며, 이를 제거하면 끝에 공백 문자가 추가되지 않도록 할 수 있습니다.

4. 불필요한 참조 전달을 하지 마세요

저는 개인적으로 참조 전달을 좋아하지 않습니다. 때로는 이것이 유용하다는 것을 알고 있지만 때로는 코드를 이해하기 어렵게 만들고 결과를 예측하기 어렵게 만듭니다.

어떤 사람들은 코드 실행 속도가 빨라진다고 생각하지만 일부 수석 PHP 프로그래머에 따르면 이는 사실이 아닙니다.

인용이 나쁜 이유의 예는 PHP에 shuffle() 및 sort()가 내장되어 있다는 것입니다. 그들은 처리된 배열을 반환하는 대신 원래 배열을 수정하는데, 이는 매우 비논리적입니다.

5. 루프에서 쿼리를 실행하지 마세요

루프에서 쿼리를 실행하는 것은 매우 낭비입니다. 이는 시스템에 불필요한 스트레스를 주며 루프 외부에서 동일한 결과를 더 빠르게 얻을 수 있습니다. 이와 같은 것이 필요한 상황에 직면하면 일반적으로 데이터 배열을 구축하는 데 사용하는 두 개의 별도 쿼리를 사용하여 문제를 해결합니다. 그런 다음 배열을 반복하고 프로세스에서 쿼리를 수행할 필요가 없습니다.

여기서는 WordPress를 사용하기 때문에 일부 예외가 있을 수 있습니다. get_post_meta()는 데이터베이스에서 많은 데이터를 가져오지만 특정 블로그 게시물의 메타데이터를 반복하는 경우 루프에서 이를 사용할 수 있습니다. 이는 WordPress가 실제로 모든 메타데이터를 가져오고 처음 호출할 때 이를 캐시하기 때문입니다. 후속 호출에서는 데이터베이스 호출 없이 이 캐시된 데이터를 사용합니다.

이를 파악하는 가장 좋은 방법은 함수 설명서를 읽고 쿼리 모니터와 같은 도구를 사용하는 것입니다.

6. SQL 쿼리에 *를 사용하지 마세요

물론 이는 MySQL 문제에 가깝지만 우리는 SQL 코드를 PHP로 작성하는 데 익숙하므로 거의 동일합니다. . 그럼에도 불구하고, 가능하다면, 특히 데이터베이스에 많은 열이 있는 경우 SQL 쿼리에 와일드카드를 사용하지 마십시오.

어떤 행이 필요한지 명시적으로 지정하고 해당 행만 가져와야 합니다. 이는 사용되는 리소스를 줄이고, 데이터를 보호하며, 상황을 최대한 명확하게 만드는 데 도움이 됩니다.

SQL의 경우 사용 가능한 모든 기능을 알고 가능하면 속도를 테스트해야 합니다. 평균, 합계 또는 유사한 수치 계산을 계산할 때 PHP 함수 대신 SQL 함수를 사용하십시오. 특정 쿼리의 속도가 확실하지 않은 경우 테스트하고 몇 가지 다른 컴파일을 시도한 다음 가장 좋은 것을 사용하십시오.

7. 사용자 입력을 신뢰하지 마세요

사용자 입력을 신뢰하는 것은 현명하지 않습니다. 항상 검증하고, 필터링하고, 탈출하고, 확인하고, 탈출구를 남겨두세요. 사용자 데이터에는 세 가지 문제가 있습니다. 우리 개발자는 모든 가능성을 고려하지 않고, 종종 부정확하며, 의도적으로 손상될 수 있습니다.

세심하게 고안된 시스템이 이러한 위협으로부터 보호합니다. filter_var()와 같은 내장 함수를 사용하여 적절한 값을 확인하고, 데이터베이스를 다룰 때는 이스케이프(또는 프리컴파일)하십시오.

WordPress에는 문제를 해결하는 몇 가지 기능이 있습니다. 자세한 내용은 사용자 데이터 유효성 검사, 이스케이프 및 필터링 문서를 참조하세요.

8. 영리하게 노력하지 마세요

당신의 목표는 당신의 의도를 더 명확하게 표현하는 우아한 코드를 작성하는 것이어야 합니다. 여러 레이어의 삼항 논리 및 기타 수단을 사용하여 모든 것을 한 단어 변수로 단축함으로써 각 페이지에서 0.01초를 최적화할 수 있습니다. 그러나 이것은 당신과 당신 주변 사람들에게 큰 문제를 야기할 뿐입니다.

변수 이름을 현명하게 지정하고, 코드를 문서화하고, 간결함보다 명확성을 우선시하세요. 많은 인라인 값이 필요 없이 문서 자체인 표준 객체 지향 코드를 사용하는 것이 훨씬 더 좋습니다.

9. 바퀴를 재발명하지 마세요

PHP는 오랫동안 존재해왔고 웹사이트는 훨씬 더 오래 존재해 왔습니다. 구축해야 하는 것이 무엇이든 누군가가 이미 이전에 구축했을 가능성이 있습니다. 다른 사람들에게 지원을 요청하는 것을 두려워하지 마세요. Github은 여러분의 친구이고 Composer도 마찬가지이며 Packagist도 마찬가지입니다.

로깅 도구부터 색상 교정 도구까지, 성능 분석기부터 단위 테스트 프레임워크까지, Mailchimp API부터 Twitter Bootstrap까지 모든 것을 키를 누르거나 명령을 입력하여 사용할 수 있습니다. Bar를 사용하세요!

10. 다른 언어도 무시하지 마세요 ​​

PHP 프로그래머라면 지금이 최소한 HTML, CSS, JavaScript, MySQL을 알 수 있는 좋은 기회입니다. 이러한 언어를 더 잘 다루게 되면 JavaScript를 다시 배울 때입니다. JavaScript는 jQuery가 아니며, JavaScript를 좀 더 효율적으로 사용하려면 JavaScript를 제대로 배워야 합니다.

또한 객체지향 PHP를 배우라고 권하고 싶습니다. 시간을 절약하고 코드 크기가 커질수록 더 좋아질 것입니다. C#이나 Java 같은 언어의 경우에도 OOP를 이해하고 나면 이해하기가 더 쉽습니다.

패키지 관리자, 빌드 스크립트, CoffeeScript, LESS, SASS, YAML, 스크립팅 엔진 및 기타 강력한 도구에 대해 학습하여 지식을 확장하세요. 다른 프레임워크, 특히 Laravel을 살펴보는 것이 좋습니다.

Ruby, RoR, Android, iPhone 및 Windows Phone 앱 개발을 배우고 이를 사용하여 훌륭하게 작업을 수행하는 것은 어떻습니까? 그들이 당신의 안전 지대를 벗어나고 직업에 요구되는 것이기 때문에 이것이 무의미하다고 생각할 수도 있지만 그것이 바로 그들이었습니다. 모든 언어에는 배워야 할 실용적인 것뿐만 아니라 이전에 접해본 적이 없는 새로운 것도 있습니다. 모든 최고의 PHP 개발자가 다른 프로그래밍 언어를 많이 알고 있다는 것은 우연이 아닙니다.


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