2009-07-28 5 views
7

먼저, 나는 그런 것들에 대해 항문이라고 인정할 것입니다. (나쁜, 나쁜, 나를.) 그러나, 그냥 PHP를 포함하는 파일의 이름면에서 모범 사례로 간주 궁금하네요.PHP는 파일 확장 권장 사항을 포함합니다

기본 케이스로는 .php를 최종 확장자 (파싱되지 않은 파일을 가져 오는 것을 방지하기 위해)로 유지하지만 프런트 엔드 파일과 포함 파일을 구별하는 데 도움이됩니다. 하나에가는 :

  1. 이름 잠재적으로 편리 ClassName.class.php로 포함 XXX.inc.php

  2. 이름 일반 (비 클래스) 위와 같이 파일을 파일 및 클래스 정의의 모든 (자동 로더 사용률은 줄서도 있지만, 그렇지 않습니다. 자동 로더의 큰 팬.)

나는 현재 옵션 2 플럼 핑 해요,하지만 당신은 권하고 싶습니다 다른 제안이나 조언의 비트가 있다면 난 그냥 궁금 해서요.

답변

7

우선, 모든 PHP 파일의 최종 확장자는 ".php"여야한다고 전적으로 동의합니다. 그 두 가지 이유 :

  • 당신이 언급 한 바와 같이, 그것은되는 해제 구문 분석 파일을 방지하는 데 도움이 가져온
  • 그것은 또한 파일 이름에 따라 구문 착색을 IDE/에디터에 도움이
  • : 당신이 구성 할 필요가 없습니다 ".inc"를 PHP 파일로 간주하는 것입니다.

그렇지 않은 경우가 있습니다. 그 주된 이유는 파일 이름 지정에 대한 몇 가지 규칙이있는 도구 (CMS, Framerwork, 라이브러리 등)를 사용할 때입니다. 필자는 그 파일을 좋아하지 않더라도 그 파일을 따르는 경향이 있습니다. 예를 들어

:

드루팔로
  • , 나는 ".inc", ".module", ".install"를 사용하여 ... 젠드 프레임 워크와
  • , 내가가 "로 .phtml"를 사용 보기 스크립트 (HTML + PHP)

클래스가 들어있는 파일의 경우 ".class.php"가 마음에 들지 않습니다. 나는 "MyClassName.php"를 사용하는 경향이 있으며 이것을 자동로드에 사용합니다.
는 (!) 참고로

(BTW, 그 젠드 프레임 워크 또는 교리 ORM 추천 같은 프레임 워크 기능) : 당신은 당신이 자동 로더의 큰 팬이 말하는; 왜 ?

  • 성능을 위해 일반적으로 더 나은 : 당신이 정말로 사용하는 경우에만 코드가로드 (NO require/include)
+0

나는 수동으로 포함하는 것만 큼 명확하지 않기 때문에 일반적으로 자동 로더의 팬이 아니다. (내 마음 속에서 변수의 선언을 설명하는 것은 다소 동등합니다.) 그렇습니다. 상황이 진행되고 있고 리소스 오버 헤드가 거의 무의미하다는 사실을 깨달았습니다. –

+0

우리는 하나의 사실에 동의합니다 : 매뉴얼처럼 명확하지 않습니다 :-) (최소한 코드 작성시 클래스 이름이 알려졌을 때) –

+0

저는 이것이 오래된 게시물이라는 것을 알고 있습니다 만, 이제는 할 일이 무엇입니까? Interfaces와 Traits은'ClassName.php' 파일에서'InterfaceName.php'와'TraitName.php'가 모두 실제 이름과 동일하게 보입니다. –

6

클래스 파일에는 ClassName.class.php을 사용하고 클래스 파일에는 SomeDescription.lib.php을 사용합니다.

.inc.php의 팬이 아닙니다. 파일 대신 내용을 가져올 수있는 방법으로 파일을 설명하는 것이 잘못된 것처럼 보입니다.

+0

를 작성/

  • 적은 코드를 파싱 내가 할 수있는대로
    나는 많은 사람들을 사용 나는 일반적으로 포함될 정적 HTML에'.inc' 파일을 사용합니다. 그래서,'login.inc' –

  • +1

    많은 프레임 워크를 살펴보면, 클래스를위한 폴더가 있다면 거기에 .class.php를 넣을 필요가 없습니다. 다른 한편, 모든 파일이 담긴 "app"폴더가있는 경우 폴더 구조를 다시 생각해보십시오. – Garrett

    +1

    .lib.php 아이디어와 같고 XXX.inc.php를 사용하지 않는 이유에 완전히 동의합니다. 이것이 아마도 나에게 '옳은'느낌을주지 않는 이유 일 것입니다. –

    관련 문제