PHP가 대규모 시스템 구축에 적합하지 않은 이유는 무엇입니까? 모두가 이것이 보안 문제라고 생각해야 합니다. 그러나 그것만이 아닙니다. 아래에서 소개해드리겠습니다.
왜 대규모 시스템에 PHP를 사용할 수 없나요? 이유는 무엇입니까?
헷갈리는 라이센스
PHP는 무료라고 생각할 수도 있고, 매뉴얼에 언급된 모든 PHP 모듈도 무료입니다. 예를 들어, PHP에서 PDF 파일을 생성하려는 경우 설명서에는 PDF와 ClibPDF라는 두 가지 모듈이 있습니다. 그러나 이 두 가지 모두 상업적으로 라이센스가 부여되었습니다. 따라서 사용하는 모든 모듈에 대해 해당 라이센스에 동의해야 합니다.
일관되지 않은 함수 명명 규칙
일부 함수 이름은 여러 단어로 구성됩니다. 일반적으로 단어 조합에는 세 가지 습관이 있습니다:
직접 연결: getnumberoffiles
밑줄로 구분: get_number_of_files
Camel의 규칙: getNumberOfFiles
대부분의 언어는 그중 하나를 선택합니다. 하지만 PHP가 사용됩니다.
Hell of Magic Quotes
마법의 인용문은 SQL 삽입 공격으로부터 PHP 스크립트를 보호할 수 있습니다. 이것은 좋다. 그러나 어떤 이유로 인해 php.ini에서 이 구성을 끌 수 있습니다. 따라서 유연한 스크립트를 작성하려면 항상 매직 참조가 켜져 있는지 꺼져 있는지 확인해야 합니다. 이러한 "기능"은 프로그래밍을 더 쉽게 만들어 주지만 실제로는 프로그래밍을 더 복잡하게 만듭니다.
많은 PHP 모듈은 스레드로부터 안전하지 않습니다.
몇 년 전 Apache는 웹 서버 버전 2.0을 출시했습니다. 이 버전은 소프트웨어의 한 부분이 동시에 여러 부분을 실행할 수 있는 멀티스레딩 모드를 지원합니다. PHP의 발명가는 PHP의 핵심은 스레드로부터 안전하지만 비핵심 모듈은 그렇지 않을 수 있다고 말합니다. 그러나 10번 중 9번은 이 모듈을 PHP 스크립트에서 사용하고 싶지만 이로 인해 스크립트가 Apache의 다중 스레드 모드와 호환되지 않게 됩니다. 이것이 바로 PHP 팀이 Apache 2의 다중 스레드 모드에서 PHP를 실행하는 것을 권장하지 않는 이유입니다. PHP의 열악한 멀티스레드 모드 지원은 Apache 2가 여전히 인기가 없는 이유 중 하나로 자주 언급됩니다.
비표준 날짜 형식 문자
많은 프로그래머는 UNIX 및 C 언어에서 온 날짜 형식 문자에 익숙합니다. 여러 다른 프로그래밍 언어가 이 표준을 채택했지만 이상하게도 PHP에는 완전히 호환되지 않는 날짜 형식 문자 세트가 있습니다. C에서 "%j"는 올해의 날짜를 나타내고, PHP에서는 해당 월의 날짜를 나타냅니다. 그러나 상황을 더욱 혼란스럽게 만드는 것은 Smarty(인기 있는 PHP 템플릿 엔진)의 strftime 함수와 date_format 함수가 C/UNIX 형식 문자를 사용한다는 것입니다.
추천 학습: PHP 튜토리얼
위 내용은 PHP가 대규모 시스템을 수행할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!