현재 수요 시나리오는 다음과 같습니다.
wordpress, discuz 등 다양한 오픈소스 cms 시스템에서 실행되는 확장 프로그램을 개발했습니다.
이제 사용자가 제품을 설치하고 사용하면 새 버전이 출시되고 사용자가 버튼을 클릭하면 즉시 새 버전으로 업그레이드됩니다. 사용자들은 만족감을 표시했습니다.
사용자는 만족하지만 여기서 이 작업을 완료하려면 각 오픈 소스 cms에 대한 자동 업그레이드 시스템을 개발해야 합니다. 이전에 이 시스템을 개발한 적이 있습니다. 버전을 비교하고 파일을 다운로드하는 등의 작업이 상당히 번거롭습니다. 단일 cms는 괜찮지만 앞으로는 여러 cms로 확장될 예정입니다. , 엄청난 일이군요. 따라서 이제 모든 CMS 시스템에 적용할 수 있는 공통 메커니즘을 개발하고 싶습니다. 좋은 방법이 없을까요?
-------------------------
이제 방법이 생각나네요. 우선, 이 기능을 구현하는데 있어서 어려운 점은 PHP 파일 자체를 교체하는 것이 불가능하다는 것입니다. 즉, 실행 중인 PHP 파일이 자체적으로 삭제되거나 자체 소스 코드를 수정하는 것은 불가능합니다.
그래서 남을 수정하는 역할을 하는 파일이 있어야 합니다. 자신의 것은 변하지 않으며, 자신의 존재는 남을 변화시키는 것이다.
예를 들어 이 확장자 아래에 a, b, c 세 개의 파일이 있습니다. 사용자가 업그레이드를 클릭하면 c 파일에 직접 액세스하여 실행하라는 ajax 요청이 전송됩니다. c 파일은 독립적으로 실행되며 다른 파일에 의존하지 않습니다. 이런 식으로 그는 파일 a와 b를 수정, 삭제 등할 수 있으므로 자동 업데이트 목적을 달성할 수 있습니다. 모든 cms 확장에 대해 각 디렉터리 아래에 파일 c만 넣으면 됩니다. 작업량이 기하급수적으로 줄어들었나요?
이 솔루션이 가능합니까?
현재 수요 시나리오는 다음과 같습니다.
wordpress, discuz 등 다양한 오픈소스 cms 시스템에서 실행되는 확장 프로그램을 개발했습니다.
이제 사용자가 제품을 설치하고 사용하면 새 버전이 출시되고 사용자가 버튼을 클릭하면 즉시 새 버전으로 업그레이드됩니다. 사용자들은 만족감을 표시했습니다.
사용자는 만족하지만 여기서 이 작업을 완료하려면 각 오픈 소스 cms에 대한 자동 업그레이드 시스템을 개발해야 합니다. 이전에 이 시스템을 개발한 적이 있는데, 버전 비교, 파일 다운로드 등이 상당히 번거롭습니다. 단일 cms는 괜찮지만 앞으로는 여러 cms로 확장할 예정입니다. 그래서 작업량이 엄청납니다. 따라서 이제 모든 CMS 시스템에 적용할 수 있는 공통 메커니즘을 개발하고 싶습니다. 좋은 방법이 없을까요?
-------------------------
이제 방법이 생각나네요. 우선, 이 기능을 구현하는데 있어서 어려운 점은 PHP 파일 자체를 교체하는 것이 불가능하다는 것입니다. 즉, 실행 중인 PHP 파일이 자체적으로 삭제되거나 자체 소스 코드를 수정하는 것은 불가능합니다.
그래서 남을 수정하는 역할을 하는 파일이 있어야 합니다. 자신의 것은 변하지 않으며, 자신의 존재는 남을 변화시키는 것이다.
예를 들어 이 확장자 아래에 a, b, c 세 개의 파일이 있습니다. 사용자가 업그레이드를 클릭하면 c 파일에 직접 액세스하여 실행하라는 ajax 요청이 전송됩니다. c 파일은 독립적으로 실행되며 다른 파일에 의존하지 않습니다. 이런 식으로 그는 파일 a와 b를 수정, 삭제 등할 수 있으므로 자동 업데이트 목적을 달성할 수 있습니다. 모든 cms 확장에 대해 각 디렉토리 아래에 파일 c만 넣으면 괜찮습니다. 작업량이 기하급수적으로 줄어들었나요?
이 솔루션이 가능합니까?
일반적인 아이디어를 생각했습니다.
우선 메이저 버전 업데이트와 패치 업데이트로 나누어서 진행하는 것이 좋습니다. 메이저 버전 업데이트가 좀 더 복잡하다면 그래도 파일을 다운로드해 수동으로 덮어써야 합니다.
소규모 버전 업데이트의 경우 일반적인 업데이트 배포 방법을 구성할 수 있습니다.
클라이언트는 업데이트를 처리하기 위해 중앙 서버측 인터페이스 또는 항목 파일에 대한 요청을 균일하게 업데이트하며 항목 파일을 통해 동적으로 업데이트합니다. 클라이언트가 제출한 로컬 환경 시리즈 데이터 업그레이드 패키지를 생성하고 JSON 구성 파일을 배포한 후 클라이언트는 JSON을 읽은 다음 데이터베이스를 업그레이드하고 파일을 교체하는 등의 작업을 수행합니다. 버전 업그레이드 후 다양한 CMS 업그레이드 규칙을 유지합니다.
그래도 업무량은 여전히 엄청나네요!
composer
!composer
!composer
!!!!!!!!!!
제 생각은 정말 경직되어 있어요.
PHP는 스스로 변경할 수 없으므로 구성 파일이나 데이터베이스를 변경하면 문제가 해결됩니다.