English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP에서 기억해야 할 것은 7하지 않아야 할10이 일
1mysql_ 함수를 사용하지 마세요
이 일이 드디어 오았습니다. 이제 더 이상 '불应该在' mysql_ 함수를 사용해야 할 것입니다. PHP 7 모든 것을 핵심에서 제거했습니다. 따라서 mysqli_ 함수로 이전하거나 더 유연한 PDO 구현을 사용해야 합니다.
2불필요한 코드를 작성하지 마세요
이 것은 이해하기 쉬울 수 있지만, PHP로 점점 더 중요해질 것입니다. 7 속도 향상이 당신의 일부 문제를 숨기는 수 있을 수 있습니다. 단순히 사이트 속도에 만족하지 마세요, PHP로 이전하면서. 7 그것을 빠르게 만들기 위해.
속도가 얼마나 중요한지 그리고 더 나은 방법을 이해하기 위해, 우리의 속도 최적화 초보자 가이드를 보세요.
개발자로서 항상 필요에 따라 스크립트를 로드하고, 가능한 한 연결하여 효율적인 데이터베이스 쿼리를 작성하고, 가능한 한 캐시를 사용하고, 그리고 다른 것들을 보장해야 합니다.
3파일 마지막에 PHP 닫는 태그를 사용하지 마세요
파일이 PHP 코드로 끝나는 경우 WordPress의 많은 핵심 코드는 마지막 PHP 태그를 제거합니다. 실제로, Zend 프레임워크는 특별히 그렇게 금지합니다. PHP는 파일 마지막에 닫는 태그가 필요하지 않으며, 그를 제거하여 추가로 공백 문자가 추가되지 않도록 할 수 있습니다.
4불필요한 참조 전달을 하지 마세요
저는 참조 전달을 개인적으로 좋아하지 않습니다. 때로는 매우 실용적이지만, 다른 경우에는 코드를 이해하기 어렵게 하고 결과를 예측하기 어려워집니다.
그러나 어떤 사람들은 이것이 코드 실행 속도를 빨리 만들어준다고 생각하지만, 일부 PHP 고급 프로그래머들이 말하길 그렇지 않습니다.
PHP에서 shuffle()와 sort()가 원본 배열을 수정하는 대신 처리된 배열을 반환하지 않기 때문에 불합리한 예제로 설명할 수 있습니다.
5순회에서 쿼리를 실행하지 마세요
순회에서 쿼리를 실행하는 것은 매우 낭비적입니다. 이는 시스템에 불필요한 부담을 주며, 순회 밖에서 더 빠르게 같은 결과를 얻을 수 있습니다. 이러한 경우, 일반적으로 두 개의 분리된 쿼리를 사용하여 문제를 해결하고, 그들을 데이터 배열을 구축하는 데 사용합니다. 그런 다음 배열을 순회하며, 이 과정에서 쿼리를 실행하지 않습니다.
WordPress가 여기에 적합하다면, 몇 가지 예외가 있을 수 있습니다. get_post_meta()는 많은 데이터를 데이터베이스에서 가져오지만, 특정 포스트의 메타데이터를 순회하면서 사용할 수 있습니다. 이는 첫 번째 호출 때 WordPress가 모든 메타데이터를 가져오고 캐시에 저장했기 때문입니다. 이후의 호출은 이 캐시 데이터를 사용하여 데이터베이스 호출 없이 이루어집니다.
이를 이해하는 가장 좋은 방법은 함수 문서를 읽고, Query Monitor와 같은 도구를 사용하는 것입니다.
6SQL 쿼리에서 와일드 카드를 사용하지 마세요 *
물론, 이는 MySQL의 문제입니다. 하지만 우리는 PHP에서 SQL 코드를 작성할 수 있기 때문에, 그들은 모두 비슷합니다. 어떠한 경우에도, 가능하다면 SQL 쿼리에서 와일드 카드를 사용하지 마세요. 특히 데이터베이스의 열이 많을 때.
필요한 행을 명확하게 지정하고, 그것만 가져와야 합니다. 이는 사용한 자원을 줄이고, 데이터를 보호하고, 일이 가능한 한 명확하게 만들어줍니다.
SQL에 대해, 모든 사용 가능한 함수를 알아야 하며, 가능한 한 빠르게 테스트해야 합니다. 평균, 합계 또는 비슷한 값을 계산할 때, SQL 함수를 PHP 함수 대신 사용하세요. 어떤 쿼리의 속도가 불확실하다면, 테스트하고 다른 컴파일을 시도해야 합니다. 그런 다음 가장 좋은 것을 사용하세요.
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가 아니며, 그를 더 효율적으로 사용하기 위해 적절히 배우는 것이 중요합니다.
저도 PHP의面向对象的 PHP를 추천할 계획입니다. 시간을 절약하고 코드 규모가 커질 때 더 나아질 것입니다. C#과 Java와 같은 언어에서 OOP을 배웠다면, 이들은 더 쉽게 이해됩니다.
패키지 관리자, 빌드 스크립트, CoffeeScript, LESS, SASS, YAML, 스크립트 엔진 그리고 다른 강력한 도구들을 통해 지식 범위를 확장하세요. 나는 다른 프레임워크를 특히 Laravel을 권장합니다.
그들이 너무 잘 작업을 수행할 때, Ruby, RoR, Android, iPhone, Windows Phone 애플리케이션 개발을 배우는 것은 어떨까요? 이들은 너무 의미가 없다고 생각할 수도 있습니다. 왜냐하면 그들은 너무 편안한 영역과 필요한 작업 범위 밖에 있기 때문입니다. 하지만 이것이 바로 그들의 의미입니다. 각 언어는 배우는 것이 있는 실용적인 것들과 아직 만나지 못한 새로운 지식들이 있습니다. 모든 PHP 최상급 개발자들은 많은 다른 프로그래밍 언어를 알고 있으며, 이는 우연이 아닙니다.
이 글의 모든 내용이 끝났습니다. 여러분의 학습에 도움이 되길 바랍니다. 또한, 나락 튜토리얼에 많은 지지를 부탁드립니다.