"핵을 해킹해서 만 해결할 수있는 문제가 없습니까? 그렇다면 무엇입니까?"
이 질문에 대답하기 위해, 때로는 코어 (또는 contrib 모듈)를 해킹해야한다는 의미에서 극복해야 할 문제가 있습니다.
이 경우 해킹 된 코드에 많은 주석을 넣고 변경 한 모든 내용을 문서화하는 한 해킹하는 것이 좋습니다.
예를 들어, 핵심 또는 구성 요소 변경에 대해 패치를 작성합니다. 그것이 다른 사람들에게 일반적이고 유용하다면 문제에 drupal.org에 제출하십시오. 그렇지 않으면 내 용도로 사용됩니다.
그런 다음 코드 변경과 함께 패치 파일을 버전 관리에 커밋합니다.
이것은 뭔가 해킹당한 경우 패치 파일을 찾아 볼 수 있음을 의미합니다.
그 외에도 사이트의 개발자 문서에 해킹 목록을 추가합니다 (사이트에서 작동하는 다른 사용자를 위해 그리고 불가피하게 잊어 버렸을 때 자신을 위해 개발자 문서가 있어야 함).
이 핵 문서에서 나는 핵이 무엇을하는지, 왜 영향을받는 모듈 / 파일, 핵 코드가 들어있는 패치 파일의 이름, 그리고 관련된 drupal.org 문제에 대한 링크가 있다면 각 핵을 나열합니다. 내 경우에는).
그러면 앞으로 사이트에서 일하는 다른 사람이 해킹에 대한 전체 목록을 가지고 있으며 실수로 업데이트를 통해 무언가를 깨뜨릴 염려가 없습니다.
그런 다음 업데이트 프로세스를 위해 해킹 목록을 확인하고 업데이트중인 모든 모듈에서 패치 파일을 빠르게 살펴 봅니다. 해킹이 있고 drupal.org 문제가있는 경우 최신 버전에 패치가 포함되어 있는지 확인하십시오.이 경우 업데이트로 해킹을 날려 내 해킹 목록에서 제거하십시오 (make drupal.org 커밋 메시지를보고 커밋 된 것이 사용중인 패치 버전과 같거나 최소한 기능적으로는 동일하다는 것을 확인하십시오.
패치가 커밋되지 않은 경우 모듈을 업데이트하고 패치를 다시 적용하기 만하면됩니다. 많은 경우에 패치는 여전히 깨끗하게 적용되며 프로세스는 쉬워 지지만 때로는 새 버전의 패치를 다시 롤업 한 다음 새 버전의 패치를 로컬 리포지토리에 커밋해야합니다. 해당되는 경우 drupal.org 문제).
모듈 (또는 drupal.org 모듈 위로 확장되는 사용자 정의 모듈)의 핵심 기능과 상호 작용하는보다 실질적인 패치 또는 패치가있는 경우 업데이트하려는 모듈의 릴리스 정보를 확인하는 것이 좋습니다. 즉, 현재 버전과 업데이트하려는 버전 사이의 모든 버전을 의미하고 코드를 손상시킬 수있는 항목이 없는지 확인하십시오. 참고 : 요즘에는 완전한 릴리스 노트를 제공하여 많은 모듈 유지 보수 담당자가 유용하지만 여전히 쓰레기 릴리스 노트를 수행하는 많은 것이 있습니다. 이 경우 현재 버전 이후 모든 커밋 메시지를 통과하는 경우가 있습니다 (일반적으로 다른 모듈과 깊이 상호 작용하는 복잡한 코드가있는 경우에만 해당). 노트 :
그런 다음 사이트의 개발 사본에서 업데이트 한 후 철저히 테스트하십시오. 결국 몇 가지 버그가 발생한 후 철저한 의미를 배우게됩니다.
그런 다음 테스트가 충분히 완료되면 라이브 사이트를 업그레이드하거나 로컬 업데이트를 배포하거나 배포 프로세스에 관계없이 진행하십시오.
더 쉬운 경우에도 모두가 그렇게하지 않는 이유 : 대부분의 사람들은 내가 설명한 것과 같은 시스템을 가지고 있지 않기 때문에 업데이트를해야 할 때가되거나 사이트를 다른 사람에게 건네주기 때문에 그것은 악몽이되고 많은 시간 (때로는 엄청난 시간)이 버그를 해결하고 해킹을 추적하고 그 이유가 무엇인지 등을 해결하는 데 소비되어야합니다.
그런 사이트를 상속 받았다면 완전히 이해할 것입니다 :)