2009-11-30 2 views
0

반 개발 웹 프로젝트에서 제 3 자 PHP 라이브러리를 활용하려고합니다. 불행히도 제 3 자 코드를 사용하기 시작하면서 변수와 클래스 이름 충돌이 많이 있다는 것을 알고 있습니다. 이 새로운 코드 주위에 네임 스페이스를 갱신하는 전략이 있는지 궁금합니다.제 3 자 코드 주위에 네임 스페이스를 개조하기위한 PHP 전략

... 예, 네임 스페이스를 사용하지 않기 위해 나 자신에게 전달되는 동등한 책임이 있습니다 ().

나는 모든 .PHP 파일을 편집 및 추가 고려하고 내 머리 위로 떨어져

:

namespace facePalm; 

그러나 나는 더 우아한 해결책이있을 일이 있는지 알고 궁금했다. 특히 코드의 추가 버전이 발표 될 때마다 & 개의 30 개 이상의 파일을 수정하지 않아도됩니다.

답변

1

네임 스페이스는 한 파일에만 설정되며 파일에는 네임 스페이스 만 포함될 수 있습니다. 나는 당신이 그것을 할 다른 해결책을 가지고 있지 않을까 두렵습니다. [편집] 방금 확인했는데 한 파일에 여러 개의 네임 스페이스가있을 수 있습니다. 그러나 파일의 상단에 정의하지 않고 파일에 네임 스페이스를 가질 수는 없습니다.

+0

... 귀하의 의견과 함께, 나는 이것을 발견했습니다. 필자의 경우에는 각 파일에 네임 스페이스를 추가하는 것으로 충분했다. – crftr

0

타사 코드가 지속적인 유지 보수 대상입니까? 그렇다면, 당신은 그것이 가지고있는 구조와 관습에 상관없이 작업하고 싶을 것입니다. 이 경우 글로벌 검색을 수행하고 이름을 바꾸는 것이 가장 적합한 솔루션입니다. 단 30 개의 파일에 대해 하루나 이틀 만에 관리가 가능합니다. 그렇게하지 않으면 1 년에 2 년 더 쉽게 나이를 먹을 수 있습니다.

+0

코드 업데이트가 예상됩니다. 그리고 예, 이전에는 수동으로 이름 지정 충돌을 해결했습니다.하지만 지금은 더러워졌습니다. 본질적으로 "하루나 이틀 동안 관리가 용이합니다"는이 게으른 코더에 비해 너무 길다. – crftr

+2

제 3 자 코드가 네임 스페이스없이 작동했다면 "ThirdParty"네임 스페이스 안에 "namespace ThirdParty"를 추가하는 것만 큼 쉽습니다. 타사 스크립트의 각 파일 맨 위에 표시됩니다. 그것을위한 작은 대본을하고 당신은 이긴다. – Savageman

관련 문제