나는 PHP에서 해결책을 만들고 있고 다른 클라이언트에 대해 여러 번 설치하는 방법을 찾고 있습니다. 데이터베이스가 20 개있는 경우 동일한 PHP 코드베이스를 가리키는 데 문제가 있습니까? 예. 속도 문제, 또는 나쁜 연습입니까?여러 데이터베이스가 단일 PHP 코드베이스 문제를보고 있습니까?
답변
그것은 가능하고 성능에 영향을주지 않습니다하지만 그것은 단점이있다 :-) 의견에 대한 사전 및 전문 지식
감사합니다.
코드베이스가 하나이면 코드를 업데이트 할 때 모든 클라이언트에 오류를 다시 확인해야한다는 의미입니다. 따라서 특정 클라이언트에 대한 코드베이스를 업데이트하고 다른 클라이언트의 오류를 방지 할 수 있도록 클라이언트가 코드베이스를 분리하는 것이 좋습니다.
모든 클라이언트가 작동하는 것으로 보인다면 다른 클라이언트에 대해 동일한 업데이트를 고려할 수 있습니다.
메일 관리 시스템
과 같은 하나의 응용 프로그램이라면 모든 클라이언트에 대한 사용자 정의 코드를 사용하는 경우가 좋지 않을 것입니다.
각 클라이언트에 버전 번호를 지정한 경우 좋을 것입니다. 이렇게하면 단일 클라이언트에서 새 버전을 테스트하고 천천히 다른 클라이언트를 새 버전으로 마이그레이션 할 수 있습니다.
Visser와 반대라고 말할 수 있습니다. 한 번의 설치에서 버그가있는 경우 소프트웨어의 사용자 정의 된 버전을 제공하지 않는 한 모든 설치에서 동일한 버그가 존재합니다. . 물론 다른 고객은 여러 가지 방법으로 응용 프로그램을 사용할 수 있습니다. 따라서 일부 고객은 다른 고객의 업무를 중단시키지 않고 결함을 경험할 수 있습니다. 따라서 Viseer는 성능에 영향을 미치지 않는다는 점에 다시 동의합니다. 특정 고객에 대한 전반적인 성능 차이가 매우 클 수 있지만 PHP 계층에서의 튜닝은 모든 고객에게 이익이됩니다. 데이터베이스 계층의 튜닝은 약간 다른 이야기입니다. 일부 고객은 다른 고객의 속도를 늦출 수있는 인덱스의 이점을 누릴 수 있습니다.
코드에 코드로 고객 별 유사 콘텐츠를 제공하는 경우 해당 유사 콘텐츠의 복잡도에 따라 달라집니다. 이상적인 차이는 데이터베이스에 기술되어야하며 동일한 PHP 코드는 다른 결과를 생성합니다. 한 고객이 독립형 사용자 관리 및 인증 시스템을 원하고 다른 고객이 LDAP 인증, 세 번째 OpenID를 사용하기를 원합니다.이 경우 코드가 모든 코드를 구현해야하고 데이터를 기반으로 런타임에 선택한 방법을 구현해야합니다.
때로는 (그러나 드물게)이 방법을 구현하는 것이 현실적이지 않으며 다른 설치에 대해 다른 응용 프로그램 논리를 사용하는 것이 해결책입니다. 이 경우 올바른 접근 방식은 버전 제어 시스템에서 분기를 유지하는 것입니다. 예를 들어 사이트의 브랜딩이 다를 수 있습니다. 콘텐츠 관리 시스템을 기반으로 개발하지 않는 한 다른 CSS 파일을 사용하는 것이 더 간단 할 것입니다. 다른 PHP 코드가 정당화되는 예제를 생각해 보는 데 어려움을 겪고 있습니다.
나는 당신의 버그에 대해서도 동의합니다. 내 솔루션이 귀하가 설명하는 솔루션보다 간단하다고 생각하십시오. 모든 설치에는 동일한 용도가있을 것이고 사용법에는 차이가 없으며 일부는 코드 (모듈)의 일부 영역에 액세스하지 못할 수도 있습니다. 또한 데이터베이스 스키마도 동일합니다. 이것이 당신의 대답을 바꾸겠습니까? – Adam
한 설치에 버그가있는 경우 모든 설치에서 동일한 버그가 발생합니다. 사실 그렇기 때문에 부 버전을 버그 픽스로 업데이트 할 수 있습니다. 코드베이스가 하나 뿐이지 만 특정 고객을위한 새로운 기능이있을 수도 있습니다. 한 번에 20 대의 클라이언트 모두에 대해 업데이트를 수행하지 않습니다. –
@Visser : 코드베이스와 배포를 혼동하고 있습니다. – symcbean
감사합니다. 버전 관리 아이디어는 훌륭한 것입니다! – Adam