PHP7에서 피해야 할 10가지 함정
추천(무료): PHP7
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. *
을 사용하지 마세요. 물론 이것은 MySQL 문제에 더 가깝지만, 우리는 PHP에서 SQL 코드를 작성하는 데 익숙하므로 동일합니다. 그럼에도 불구하고, 가능하다면, 특히 데이터베이스에 많은 열이 있는 경우 SQL 쿼리에 와일드카드를 사용하지 마십시오.
필요한 행을 명시적으로 지정하고 해당 행만 가져와야 합니다. 이는 사용되는 리소스를 줄이고, 데이터를 보호하며, 상황을 최대한 명확하게 만드는 데 도움이 됩니다.
SQL의 경우 사용 가능한 모든 기능을 알고 속도를 최대한 테스트해야 합니다. 평균, 합계 또는 유사한 수치 계산을 계산할 때 PHP 함수 대신 SQL 함수를 사용하십시오. 특정 쿼리의 속도가 확실하지 않은 경우 테스트하고 다른 컴파일을 시도한 다음 가장 좋은 쿼리를 사용하십시오.
7. 사용자 입력을 신뢰하지 마세요.
사용자 입력을 신뢰하는 것은 현명하지 않습니다. 항상 검증하고, 필터링하고, 탈출하고, 확인하고, 탈출구를 남겨두세요. 사용자 데이터에는 세 가지 문제가 있습니다. 우리 개발자는 모든 가능성을 고려하지 않고, 종종 부정확하며, 의도적으로 손상될 수 있습니다.
사려 깊은 시스템이 이러한 위협으로부터 보호합니다. filter_var()와 같은 내장 함수를 사용하여 적절한 값을 확인하고, 데이터베이스를 다룰 때는 이스케이프(또는 프리컴파일)하십시오.
WordPress에는 문제를 해결하는 몇 가지 기능이 있습니다. 자세한 내용은 사용자 데이터 유효성 검사, 이스케이프 및 필터링 문서를 참조하세요.
8. 똑똑해지려고 하지 마세요
당신의 목표는 당신의 의도를 더 명확하게 표현하기 위해 우아한 코드를 작성하는 것이어야 합니다. 여러 레이어의 삼항 논리 및 기타 수단을 사용하여 모든 것을 한 단어 변수로 단축함으로써 각 페이지에서 0.01초를 최적화할 수 있습니다. 그러나 이것은 당신과 당신 주변 사람들에게 큰 문제를 야기할 뿐입니다.
변수 이름을 현명하게 지정하고, 코드를 문서화하고, 간결함보다 명확성을 우선시하세요. 많은 인라인 값이 필요 없이 문서 자체인 표준 객체 지향 코드를 사용하는 것이 훨씬 더 좋습니다.
9. 바퀴를 재발명하지 마세요
PHP는 오랫동안 존재해왔고 웹사이트는 훨씬 더 오랫동안 만들어졌습니다. 구축해야 하는 것이 무엇이든 누군가가 이미 구축했을 가능성이 있습니다. 다른 사람들에게 지원을 요청하는 것을 두려워하지 마세요. Github은 여러분의 친구이고 Composer도 마찬가지이며 Packagist도 마찬가지입니다.
로깅 도구부터 색상 교정 도구까지, 성능 분석기부터 단위 테스트 프레임워크까지, Mailchimp API부터 Twitter Bootstrap까지 모든 것을 키를 누르거나 명령을 입력하여 사용할 수 있습니다.
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 앱 개발을 배우고 이를 사용하여 작업을 훌륭하게 수행하는 것은 어떻습니까? 그들이 당신의 안전 지대를 벗어나고 직업에 요구되는 것이기 때문에 이것이 무의미하다고 생각할 수도 있지만 그것이 바로 그들이었습니다. 모든 언어에는 배워야 할 실용적인 것뿐만 아니라 이전에 접해본 적이 없는 새로운 것도 있습니다.
위 내용은 PHP7에서 피해야 할 10가지 함정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











PHP 7.0에서 설치된 플러그인이 표시되지 않는 문제를 해결하려면: 플러그인 구성을 확인하고 플러그인을 활성화하세요. 구성 변경 사항을 적용하려면 PHP를 다시 시작하세요. 플러그인 파일 권한이 올바른지 확인하세요. 플러그인이 올바르게 작동하도록 하려면 누락된 종속성을 설치하세요. 다른 모든 단계가 실패하면 PHP를 다시 빌드하세요. 다른 가능한 원인으로는 호환되지 않는 플러그인 버전, 잘못된 버전 로드 또는 PHP 구성 문제 등이 있습니다.

php5에서는 fsockopen() 함수를 사용하여 TCP 포트를 감지할 수 있습니다. 이 기능은 네트워크 연결을 열고 일부 네트워크 통신을 수행하는 데 사용할 수 있습니다. 그러나 php7에서는 fsockopen() 함수에 포트를 열 수 없거나 서버에 연결할 수 없는 등의 몇 가지 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해, 우리는 소켓_create() 함수와 소켓_연결() 함수를 사용하여 TCP 포트를 감지할 수 있습니다.

php7.0에서 mongo 확장을 설치하는 방법: 1. mongodb 사용자 그룹 및 사용자를 생성합니다. 2. mongodb 소스 코드 패키지를 다운로드하고 소스 코드 패키지를 "/usr/local/src/" 디렉터리에 넣습니다. "src/" 디렉터리를 입력합니다. 4. 소스 코드 패키지의 압축을 풉니다. 5. mongodb 파일 디렉터리를 생성합니다. 6. "mongodb/" 디렉터리에 파일을 복사합니다. 7. mongodb 구성 파일을 생성하고 구성을 수정합니다.

php7.0 설치 및 배포 방법: 1. PHP 공식 웹사이트로 이동하여 로컬 시스템에 해당하는 설치 버전을 다운로드합니다. 2. 다운로드한 zip 파일을 지정된 디렉터리에 추출합니다. 3. 명령줄 창을 열고 다음으로 이동합니다. "E:\php7" 디렉토리 "php -v" 명령을 실행하세요.

PHP 서버 환경에 대한 일반적인 솔루션에는 올바른 PHP 버전이 설치되어 있는지, 관련 파일이 모듈 디렉터리에 복사되었는지 확인하는 것이 포함됩니다. SELinux를 일시적으로 또는 영구적으로 비활성화합니다. 필요한 확장이 추가되고 올바르게 설정되었는지 확인하려면 PHP.ini를 확인하고 구성하십시오. PHP-FPM 서비스를 시작하거나 다시 시작합니다. 해결 문제에 대해서는 DNS 설정을 확인하세요.

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

PHP7과 비교하여 PHP8은 성능, 새로운 기능 및 구문 개선, 유형 시스템, 오류 처리 및 확장 측면에서 몇 가지 장점과 개선 사항을 가지고 있습니다. 그러나 사용할 버전을 선택하는 것은 특정 요구 사항과 프로젝트 상황에 따라 다릅니다. 자세한 소개: 1. 성능 향상, PHP8은 코드 실행 속도를 향상시킬 수 있는 JIT(Just-in-Time) 컴파일러를 도입합니다. 2. 새로운 기능 및 구문 개선, PHP8은 명명된 매개 변수 및 선택적 매개 변수 선언을 지원합니다. 함수 만들기 호출이 더 유연해졌습니다. 익명 클래스, 속성 유형 선언 등이 도입되었습니다.
