내 함수에 비슷한 이름이 없으면 네임 스페이스를 사용해야합니까? 내 기능이 유사한 이름이없는 경우PHP 네임 스페이스 : 이미 사용 된 함수를 다시 선언해야 할 필요가 없다면 어떻게해야합니까?
플러스 난 ... 궁금하네요
내 함수에 비슷한 이름이 없으면 네임 스페이스를 사용해야합니까? 내 기능이 유사한 이름이없는 경우PHP 네임 스페이스 : 이미 사용 된 함수를 다시 선언해야 할 필요가 없다면 어떻게해야합니까?
플러스 난 ... 궁금하네요
을, 특정 폴더에서 모든 네임 스페이스를 가져 오는 그립을 얻을 수 없다, 내가 필요로 할 것을 네임 스페이스를 사용 하시겠습니까?
번호
그러나, 네임 스페이스 충돌을 피하고보다 더 많은 혜택을 제공 않습니다 네임 스페이스 지정, 그것은 또한 찾을 파일을 쉽게 좋은 디렉토리 및 파일 구조를 유지하도록 강제하고 결정하는 부모 직관적 인 접근 방식/자식 관계. 예를 들어
:
// Zend/Translate/Adapter.php
class Zend_Translate/Adapter {}
// Zend/Translate/Adapter/Csv.php
class Zend_Translate_Adapter_Csv extends Zend_Translate_Adapter {}
는 당신이 볼 수 있듯이, 비슷한 객체에 관련된 클래스는 논리적으로 그룹화하고, 위의 코드를 보여줍니다으로 가능한 상위/하위 관계를 의미한다. 주의해야 할 점은 디렉토리에 하위 디렉토리와 함께 클래스 파일이있을 수 있지만 하위 디렉토리 내의 파일이 파일을 확장한다는 보장은 없습니다.
나는이 질문을 잘못된 관점에서 접근하고 있다고 생각합니다. 물론 고유 한 함수 이름을 알고있는 경우 네임 스페이스 사용을 피할 수 있습니다. 그러나 이것은 매우 짧은 접근법이며 응용 프로그램의 복잡성, 구조화 방법 등을 고려하지 않습니다.
Mike가 언급 한 것처럼 Zend 또는 Symfony와 같은 프레임 워크를 사용하려는 경우 객체 지향 프로그래밍 (Object Orientated Programming)에 대한 다른 코드는 네임 스페이스 사용을 강력히 권장합니다. 훌륭한 PHP 패키지의 클래스를 포함하고자한다고 가정 해 보겠습니다. 네임 스페이스가 없으면 아무런 충돌이 없다는 보장은 없습니다.
또한 Symfony 2.0과 같은 새로운 프레임 워크는 네임 스페이스를 사용해야합니다. 따라서 익숙해지는 것이 좋습니다.
모든 유효한 점수. –
저는 프레임 워크에 대해 이야기하는 것이 아니며, 제 프로젝트를 (아마도)보다 관리하기 쉬운 구성 요소/하위 구성 요소로 구성하는 것을 말합니다. –
@Fike 프레임 워크는 내 대답의 일부입니다. 나는 그것들을 언급하는 것이이 토론과 관련이 있다고 느꼈다. –