2016-08-01 5 views
2

: 새로운 PrestaShop 버전 예를 들어
Namespace/Namespace/Subnamespace/PHP 네임 스페이스 규칙 - 내가 좋아하는 두 배 네임 스페이스 뭔가보고 계속 배로 네임 스페이스 때때로

는 (1.7)
namespace PrestaShop\PrestaShop\Core;

누군가가 나에게 혜택을 설명 할 수이 규칙을 사용합니다 이 유형의 네임 스페이스?

또한 일부 자습서는 다음과 같이의 네임에 대해 말 :

namespace mynamespace/classname 
classs classname {} 

이의 장점은 무엇입니까? 왜냐하면 나는보다 복잡한 네임 스페이스와 더 많은 타이핑 같은 단점만을 보았 기 때문이다. 이 상대 네임 스페이스 지정에

PS 의존으로 버그하는 경향 : PHP Namespace Questions
내가 유일한 단점을 볼 수 있습니다 : 나는 항상 절대 네임 스페이스를 사용하여 계속

또한이 Q &을 보았다. 그것은 내 기분에 버그가 발생하기 쉽고, 내가 틀린 경우 나에게 가르쳐 줘.

+0

다음은 [psr-4] (http://www.php-fig.org/psr/psr-4/)입니다. 네임 스페이스 자체에는 아무런 문제가 없지만 혼란 스러울 수 있습니다. – Andrew

+0

@Andrew PSR-4 라인을 따라가는 답변을 작성했지만 하위 이름 공간이 필요하지는 않은 것으로 보입니다. 이것은 단지 창조자의 선택입니까? 그것은 PSR-0에서 유래합니까? – nerdlyist

+0

@nerdlyist 필자는 제작자가 선택한 것으로 가정하고 이것이 내가 할 수있는 유일한 방법이라고 생각합니다. – Andrew

답변

2

자동로드 및 PSR-4 규칙을 따릅니다. 네임 스페이스의 명명 규칙은 일반적으로 작성자에게 맡깁니다. 유일한 필수 부분은 최상위 네임 스페이스이지만 원하는 경우 많은 하위 네임 스페이스가 사용될 수 있습니다.

는 PrestaShop 버전의 composer.json 예를 들어 자신이 갖고 :
"autoload": { 
    "psr-4": { 
     "PrestaShop\\PrestaShop\\": "src/", 
     "PrestaShopBundle\\": "src/PrestaShopBundle/" 
    } 
} 

그래서 네임 스페이스 PrestaShop\PrestaShop\src 내에서 어떤 일에 당신을 얻을 수 있습니다. slim 프레임 워크 (라우터)에서

자신이 갖고 :

"autoload": { 
    "psr-4": { 
     "Slim\\": "Slim" 
    } 
} 

그래서 하나에 그냥 네임 스페이스 Slim\Class를 사용합니다. 내가 좋아하는 일을했던 내 첫 번째 프로젝트 중 하나에서

는 :

"autoload": { 
    "psr-4": { 
     "App\\Models\\": "app_name/models", 
     "App\\Validators\\": "app_name/validators" 
     //And so on 
    } 
} 

나는 이것이 결국 중복 아무것도하지만, 상처를 생각하지 않습니다.