2008-12-12 6 views
7

오픈 소스 PHP 프로젝트에 대한 많은 대중적인 표준 매뉴얼을 읽었습니다.PHP - 함수/변수 이름 지정

변수 공간에 밑줄을 많이 사용하고 camelCase를 많이 적용합니다.

전역 함수와 변수의 이름을 클래스 메서드/속성과 다르게 지정해야합니까?

나는 가장 중요한 것이 일관성이라는 것을 알고 있지만, 이것에 대한 의견을 듣고 싶습니다.

무엇을 권하고 싶습니까?

답변

13

내가 입력하기에 약간 어색한 것을 발견했기 때문에 camelCase를 입력하는 것이 조금 더 즐겁습니다.

전역 변수를 사용하지 마십시오.

PHP에서 절차 코딩을 피하기 때문에 OOP를 사용하면 일을 정리하기가 더 쉬워집니다. 게다가, PHP는 이미 글로벌 네임 스페이스가 충분하지 않은가? Item, , DB, Items :

  • 클래스가 적절한 단수 또는 복수 명사, StudlyCaps 있습니다

    일반적으로 나는에 충실하려고합니다. DEBUG, TYPE_FOO : $name

  • 상수는 단일 대문자 명사, $column :
  • 변수는 소문자가 보유 내용에 따라 단수 또는 복수 명사이다.
  • 방법은 낙타 표기법이며, 그것은 확실히 따라 무엇가 운영 또는 반환 (getThing(), getThings())

기술 (단수 또는 복수) 명사 뒤에 단수 동사 (get, perform, do)로 시작 당신이 코딩하고있는 것. PHP 나 PEAR을 코딩하고 있다면 camelCase를 사용합니다. 파이썬/장고를하고 있다면 under_scores를 사용합니다. ELisp을 쓰고 있다면 대시로 구분 기호를 사용합니다.

+1

동의합니다, 나는 OO를 배우는 과정에 있으며 정적 클래스는 (전역 네임 스페이스에서 모든 문자열 포맷터 등을 옮기기 위해) – alex

+0

동의하지 않습니다. [this] (http://stackoverflow.com/a 참조)/1557799/1870054), 그들은 전역 변수에 대해 이야기합니다. 항상 나쁜 것은 아닙니다. – wener

0

예, 가장 중요한 것은 일관성입니다. 외톨이 개발자의 경우 방법을 고수하십시오. 팀과 함께 일하는 경우 다른 팀원과 이야기하십시오. 전역, 함수/메소드 및 클래스를 구별하면 코드를 훨씬 쉽게 읽을 수 있습니다. 어떤 사람들에게는 camelCase가 using_underlines보다 쉽기 때문에 팀이 옵션에 대해 토론하고 스타일을 선택해야합니다.

0

참고 : 내가 MySQL의 필드 이름을 UpperCamelCase를 사용하여 내 MySQL의 table_names을 위해 밑줄을 사용합니다 이름과 클래스 속성 변수에 대한

일반적으로 내가 사용하는 $ lowerCamelCase하지만 필드에서 값을 포함하는 경우, $ UpperCamelCase 필드 이름을 사용하거나 테이블의 데이터 배열 인 경우 $ table_name을 사용합니다. 이 방법을 사용하면 grepSomeField 또는 some_table으로 쉽게 참조 할 수 있습니다.

이 정확한 시스템을 사용할 필요는 없지만 필드 또는 테이블에 대한 모든 참조를 검색 할 수 있다는 것이 큰 이점입니다.

2

PHP 자체에서 거의 모든 네이티브 함수는 밑줄로 구분됩니다.문서에있는 대부분의 PHP 코드 예제는 밑줄로 구분되어 있습니다.

대부분의 언어에서 Camel 또는 Pascal Casing이 더 적절하다고 생각하지만 PHP에서 밑줄 분리를 사용하는 분명한 역사가 있다고 생각합니다.

0

필자는 camelCase를 사용하는 것을 선호했지만 더 큰 애플리케이션에서 일관성을 유지하기 위해 CodeIgniter의 스타일 가이드를 채택했습니다.

당신이 그들의 프레임 워크를 사용하지 않더라도, 당신은 정의 명확하고 포괄적 인 스타일로 가서 일을 감상 할 수 : http://codeigniter.com/user_guide/general/styleguide.html (PEAR를 기반으로)

1

Zend Frameworks naming convention 당신이 표준에 와서 가장 가까운 아마 PHP 세계에서. 개인적으로, 나는 lowercase_underscore를 변수 이름으로 사용하는 것을 선호하지만, 그렇지 않으면 대부분 ZF의 규칙을 따른다.

0

내 목표 - 이름의 특정 형식이 무엇이든 - 더 많은 정보를 추가하는 중입니다. 이름이 코드의 이해를 향상시키고 중요한 것을 표현합니까?

그렇다면 훌륭합니다. 성공했다면 성공했습니다.

이름에 아무 것도 추가하지 않으면 왜 이름을 지정 했습니까? 나는 PEAR Coding Standards를 읽고 추천 할 것입니다

http://caseysoftware.com/blog/useful-naming-conventions

0

:

나는 이번 주 초에이 일에 썼다. PEAR은 공식적인 PHP Extension and Application Repository이므로 공식적인 코딩 표준으로 간주 될 수 있습니다.