it-swarm-vi.tech

Có thể chuyển lớp dữ liệu trong WordPress không?

WordPress chắc chắn rất tùy biến bằng cách sử dụng các plugin, nhưng mọi khả năng tùy chỉnh chắc chắn có giới hạn được xác định bởi kiến ​​trúc cơ bản.

Đối với những người quen thuộc với WP kiến ​​trúc và mã nguồn:

Điều gì sẽ là nỗ lực cần thiết để tùy chỉnh lớp dữ liệu được sử dụng bởi WP để sử dụng kho lưu trữ dữ liệu khác (ví dụ: tệp (hoặc hệ thống cơ sở dữ liệu khác) thay vì MySQL?). Kiến trúc WordPress có được xếp lớp theo nghĩa là có khả năng chuyển đổi các lớp không? Lớp UI rõ ràng rất dễ chuyển đổi (bất kỳ chủ đề nào thực hiện điều này), nhưng còn các lớp khác, cụ thể là lớp dữ liệu thì sao?

4
Marek

Wordpress là không được thiết kế để có lớp cơ sở dữ liệu có thể thay thế. Khoa học máy tính có một số khái niệm khác nhau để giải quyết các cơ sở dữ liệu khác nhau trong cùng một ứng dụng ở mức độ trừu tượng khác nhau, Wordpress không có xu hướng sử dụng bất kỳ cơ sở nào như vậy. Nói một cách đơn giản hơn: Không hề.

Nhưng wordpress cung cấp khả năng thay thế mã riêng của nó bằng một số mã khác, ví dụ như toàn bộ lớp cơ sở dữ liệu. Điều đó không phải lúc nào cũng (đọc: bình thường) đủ để thay thế toàn bộ lớp cơ sở dữ liệu nhưng giúp mày mò. Ví dụ, lớp WPDB thay thế HyperDB không thêm một lớp cơ sở dữ liệu mới, nhưng xử lý nhiều máy chủ MySQL thay vì một, đó là một ví dụ nổi tiếng (đây được coi là thực tiễn tồi đối với PHP, có nhiều cách tốt hơn , nhưng đó là một ví dụ tốt về những gì có thể được thực hiện).

Bên cạnh việc thay thế lớp cơ sở dữ liệu, Wordpress có khả năng mà thậm chí nhiều mã hơn có thể được thay thế và bạn hoàn toàn có thể thay đổi nó, ví dụ: tạo một bản phân phối riêng, đảm nhiệm mọi thứ liên quan đến lớp cơ sở dữ liệu.

Nếu bạn muốn xem một ví dụ thực tế về cách thay thế toàn bộ lớp cơ sở dữ liệu, vì vậy để tạo wordpress sử dụng một loại máy chủ cơ sở dữ liệu hoàn toàn khác (ở đây: MSSQL thay vì MySQL được mã hóa cứng), bạn hãy tìm một bản phân phối đầy đủ và một bản vá ở đây :

WordPress trên SQL Server Distro & Patch

Đó là phần mềm miễn phí, bạn có thể nghiên cứu cách triển khai lớp cơ sở dữ liệu như vậy, trang web cũng cung cấp thêm thông tin về chủ đề đó.

Mẹo: Đừng đánh Wordpress. Bám sát MySQL và thế là xong. Nếu không hãy tìm một cái gì đó khác được thiết kế tốt hơn để phù hợp với nhu cầu của bạn. Chỉ cần có công cụ phù hợp cho công việc.

5
hakre

Không thể: xem thay thế HyperDB cho wpdb. HyperDB thêm phân vùng và sao chép vào WordPress. Phân vùng hoạt động bằng cách kết nối với nhiều cơ sở dữ liệu và sử dụng tên bảng để xác định cơ sở dữ liệu nào sẽ chạy truy vấn.

Cuối cùng, $wpdb chỉ nhận được một truy vấn SQL và bạn có thể tự do làm những gì nó muốn với dữ liệu trong truy vấn đó. HyperDB truy vấn MySQL giống như lớp wpdb ban đầu. Mở rộng điều đó sang các cơ sở dữ liệu khác nhau sẽ yêu cầu sửa đổi bất kỳ truy vấn không tuân thủ nào trước khi chúng được thực thi. Nếu kho dữ liệu của bạn hoàn toàn không chấp nhận SQL, bạn sẽ phải dịch truy vấn đến bất kỳ API nào khác mà bạn đang sử dụng. Bất cứ điều gì cũng có thể với đủ thời gian và nỗ lực, nhưng nó có vẻ như là một công việc khá đau khổ đối với tôi. ;)

2
Annika Backstrom

Chỉ cần tìm thấy trang Codex này tổng hợp độc đáo, bao gồm tổng quan về các giải pháp được đề xuất và/hoặc lên kế hoạch bởi những người phát triển WordPress. Chúng ta hãy xem làm thế nào nó đi ra.

0
Marek