Drupal에 구축 된 플랫폼 (및 PHP Obfuccation)의 사용자 정의를 허용하는 방법
-
06-07-2019 - |
문제
우리 회사는 심하게 확장 된 드 루팔 코어 위에 플랫폼을 구축하고 있습니다. 이 시스템의 별도 인스턴스를 사용할 수있는 여러 고객이 있으며 테마와 기능을 모두 사용자 정의하려고합니다.
테마와 모듈을 추가 할 수 있도록 시스템을 설계하려고합니다. 일부는 실제 코드에 액세스하지 않고 일부 모듈과 상호 작용할 수 있습니다. (이것은 오픈 소스가 아닙니다)
Facebook과 Ning 이이 작업을 수행하는 방식은 개발자가 자신의 사용자 정의 코드를 호스팅하고 콜백을하는 것입니다. 이 사이트는 완전히 사용자 정의 할 수있는 능력이 필요하므로 특정 통합 지점을위한 콜백은 실제로 작동하지 않기 때문에 실제로는 효과가 없습니다.
한 가지 옵션은 사용자 정의 개발자가 테마와 사용자 정의 모듈을 구축하기 위해 몇 가지 특정 디렉토리에만 액세스 할 수있는 샌드 박스 환경을 설정하는 것입니다. 그런 다음 GIT와 통합하여 준비가되었을 때 커밋하고 나머지 코드를 프로덕션에 배치 할 수 있습니다. 이 설정의 문제점은 개발자가 원격으로 개발하고 소스 제어 시스템을 사용해야한다는 것입니다.
보다 일반적인 설정은 개발자가 사용자 정의 코드를 구축하기 위해 무언가를 다운로드 할 수 있도록하는 것입니다. 그들은 현지에서 개발하고 이미 가지고있는 소스 제어 관행을 사용할 수 있습니다. 특정 포인트 통합을 원하지 않기 때문에 이것이 별도의 서버에 대해 실행되는 라이브러리가 될 수 있다고 생각하지 않습니다. 대안은 전체 Core Drupal 시스템을 다운로드하고 이에 대해 로컬로 개발하여 준비가되었을 때 사용자 정의 코드를 업로드하지만 모든 코드와 IP에 액세스 할 수 있습니다.
따라서 PRES는 PHP를 효과적으로 난독 화하는 방법이 없다고 생각하기 때문에 곤경에 처한다.
여기에 화려한 아이디어가 있습니까?
해결책
시스템은 Drupal의 파생 작품이므로 GPL로 덮여있는 것처럼 들립니다. 코드를 고객에게 배포하면 GPL 수정 및 재분배를 포함하여 GPL이 제공하는 모든 권리가 있습니다.
난독 화 된 GPLED 코드를 배포하는 것은 허용되지 않습니다. GPLV2 "작업의 소스 코드는 수정을위한 선호하는 작업 형식을 의미합니다."
난독 화 된 코드는이 GPL 조항을 준수하지 않습니다.
즉, 고객에게 시스템을 사용자 정의하는 방법을 제공하려면 고객에게 기존 Drupal 모듈 및 테마 시스템에 대한 액세스를 제공 할 수 있지만 샌드 박스에서만 고객에게 제공 할 수 있습니다.
물론 모듈과 테마는 PHP이고 "특정 포인트 통합을 원하지 않는다"는 것이므로 다른 시스템의 모든 소스 코드를 읽는 모듈을 작성할 수있는 자유가있는 것 같습니다. 그런 다음 타르고 스스로 보내십시오.
나는 당신이 GPL에 따라 구석에 자신을 그렸다고 생각합니다. 고객이 일반적인 방식으로 시스템을 확장/사용자 정의 할 수 있도록 IP를 비공개로 유지하는 것은 실제로 작동하지 않습니다.