2010-02-25 2 views
2

간단한 질문 : PHP 클래스 (예 : 라이브러리 클래스)에 회사 이름을 붙이십니까?접두사에 접두어를 붙이시겠습니까?

예 : "Zend_"로 접두사 접두어를 붙이십시오. 프레임 워크이므로 정상입니다 (충돌을 피하기 위해). 내 회사의 도서관 수업에도 똑같이해야합니까? 갈등이 생길까요?

접두사 (더 짧은 이름) ​​없이는 사용하기가 더 쉽다고 생각하지만 접두어를 사용하는 것이 좋습니다.

답변

12

PHP는 namespaces입니다. 모든 것을 접두어로 붙이지 말고 그것들을 사용해야합니다.

적어도 개발자는 클래스 중 하나를 사용하기 시작하기 만하면 MyFrameworkName...을 계속 입력하지 않아도 고맙다고 말합니다.

+5

+1 : 헝가리 표기법을 피하십시오. http://en.wikipedia.org/wiki/Hungarian_notation –

+6

접두사 수업은 헝가리어 표기법의 일부가 아닙니다. –

+8

부적절한 헝가리 표기법은 피해야합니다. 그러나 진정한 헝가리 인은 특히 PHP와 같은 언어에서 매우 도움이 될 수 있습니다. –

0

아니, 즉이

class MCB_Admin 
{ 
    // class contents... 
} 
$admin = new MCB_Admin; 

그러나, 나는 빨리이 불리한 결정을 지금 바로 표준 클래스 이름을 사용, MCB 내 CMS의 모든 클래스를 접두어로 고려했다 있지만.

3

난 항상 이유로 내 수업을 앞에

  • 5.2 여전히
  • 5.3 네임 스페이스가 완전히 못생긴 몇 년 주위에있을 것입니다, 내가 구역질
  • 를받지 않고 사용할 수 없으며, (NSString, CFXMLParser 등)))

심각하게, 명시 적 클래스 이름을 피하는 것이 좋습니다. 정적을 없애고 new 대신 의존성 주입을 사용하면 클래스 이름 지정에 별다른 어려움이 없을 것입니다.

+0

나는 네임 스페이스가 추악하다는 것에 9001 % 동의합니다. 그러나 그들은 아무것도 아닌 것보다 낫다. –

+0

5.2는 문제가 아니며 실제적인 제약이 없으며 단지 이론적 인 질문 만 있습니다. –

1

예, 있습니다. 나는 네임 스페이스로 전환 할 수 없다. 대부분의 클라이언트가 PHP 5.3을 실행 중이다. 이름 충돌을 피할 수 있다면 조금 더 입력해도 괜찮습니다. 특히 기존 라이브러리의 맨 위에 자체 사용자 정의 라이브러리를 사용하고 있습니다.

+0

우리 회사는 웹 응용 프로그램을 호스팅하며 걱정할 클라이언트 서버 구성은 없습니다. 실용적인 불일치. –

+0

때로는 회사가 웹 응용 프로그램을 호스팅하는 회사이며 업데이트를 의도하지 않습니다. rolleyes : – ZJR

0

내가 그것을 사는 폴더 이름 내 클래스 이름을 접두사가

<?php 
    // filename would be "ClassName.php" in directory "directory" 
    class directory_ClassName{ 

    } 

그 방법으로 당신의 클래스를로드 할 필요가 당신을 결코 의미가없는

function __autoload($class_name){ 
    $file = explode("_", $class_name); 
    $file = 'app/' . implode('/', $file) . ".php"; 
    require_once($file); 
} 

매우 쉽게 __autoload를 사용하여 만드는, 그 모든 일 자동으로

+0

나는이 작업을 수행하기 위해 사용 했었습니다. 그런 다음 모든 것을 하나의 디렉토리에 덤핑했습니다. 아무것도 "cd"를 타이핑하는 것보다 더 화가났다. :) – pestilence669

관련 문제