it-swarm-ko.tech

WordPress에서 데이터 레이어를 전환 할 수 있습니까?

WordPress는 플러그인을 사용하여 매우 사용자 정의가 가능하지만 모든 사용자 정의 가능성에는 기본 아키텍처가 정의한 제한이 있습니다.

WP 아키텍쳐 및 소스 코드에 익숙한 사람들을 위해 :

다른 데이터 저장소 (예 : MySQL 대신 파일 또는 다른 데이터베이스 시스템)를 사용하기 위해 WP에서 사용하는 데이터 계층을 사용자 정의하는 데 필요한 노력은 무엇입니까? WordPress 아키텍처는 레이어를 전환 할 가능성이 있다는 의미에서 계층화되어 있습니까? UI 레이어는 분명히 전환하기 쉽습니다 (모든 테마에서이 작업을 수행합니다). 그러나 다른 레이어, 즉 데이터 레이어는 어떻습니까?

4
Marek

Wordpress 는 교체 가능한 데이터베이스 레이어를 갖도록 설계되지 않았습니다 . 컴퓨터 과학은 서로 다른 추상 개념을 가진 동일한 응용 프로그램에서 서로 다른 데이터베이스를 처리하기 위해 가슴에 몇 가지 개념을 가지고 있습니다. Wordpress는 그러한 용도를 사용하지 않습니다. 좀 더 간단한 말로 말하면 : 전혀 아닙니다.

그러나 wordpress는 자신의 코드를 다른 코드 (예 : 전체 데이터베이스 클래스)로 대체 할 수있는 기능을 제공합니다. 이는 항상 전체 데이터베이스 계층을 대체 할만큼 충분히 (읽기 : 정상적으로)는 아니지만 땜질에 도움이됩니다. 예를 들어, HyperDB 를 대체하는 WPDB 클래스는 새로운 데이터베이스 계층을 전체적으로 추가하지 않고 하나가 아닌 여러 개의 MySQL 서버를 처리합니다. 이는 잘 알려진 예제입니다 (이것은 PHP로 할 수있는 나쁜 습관으로 간주됩니다 더 좋은 방법이 있습니다 . 그러나 좋은 예가 될 수 있습니다.

데이터베이스 클래스를 대체하는 Wordpress에는 능력 이있어 더 많은 코드를 대체 할 수 있으며 완전히 변경할 수 있습니다 (예 : 자신의 데이터베이스 계층과 관련된 모든 것을 처리하는 자체 배포를 작성합니다.

전체 데이터베이스 레이어를 바꾸는 방법에 대한 실생활 예제를보고 싶다면 워드 프레스가 완전히 다른 유형의 데이터베이스 서버 (여기서는 : 하드 코딩 된 MySQL 대신 MSSQL)를 사용하게하려면 전체 배포본과 패치를 찾으십시오 :

SQL Server의 WordPress Distro & Patch

그러한 데이터베이스 계층을 구현하는 방법을 연구 할 수있는 자유 소프트웨어입니다. 웹 사이트는 해당 주제에 대한 자세한 정보도 제공합니다.

팁 : Wordpress와 싸우지 마십시오. MySQL에 충실하고 그게 전부입니다. 그렇지 않으면 귀하의 필요에 맞게 설계된 다른 것을 찾으십시오. 작업에 적합한 도구를 사용하십시오.

5
hakre

그것은 가능합니다 : HyperDBwpdb을 대체하십시오. HyperDB는 WordPress에 파티션 및 복제를 추가합니다. 파티셔닝은 여러 데이터베이스에 연결하고 테이블 이름을 사용하여 쿼리를 실행할 데이터베이스를 결정함으로써 작동합니다.

결국 $wpdb는 SQL 쿼리를 가져오고 쿼리 내에서 데이터로 원하는 것을 수행 할 수 있습니다. HyperDB는 원래 wpdb 클래스와 마찬가지로 MySQL을 쿼리합니다. 이를 다른 데이터베이스로 확장하려면 호환되지 않는 쿼리를 실행하기 전에 수정해야합니다. 데이터 저장소가 SQL을 전혀 받아들이지 않는 경우 들어오는 쿼리를 사용중인 다른 API로 변환해야합니다. 충분한 시간과 노력으로 아무 것도 가능하지만 꽤 비참한 착각 같이 들립니다. ;)

2
Annika Backstrom

그냥 이 Codex 페이지 는 WordPress를 개발 한 사람들이 제안하거나 계획 한 솔루션의 개요를 포함하여 멋지게 정리 한 것입니다. 그것이 어떻게 나오는 지 보자.

0
Marek