T ToutadminTài liệu

Hai bản, một sản phẩm

Toutadmin tồn tại dưới hai bản: một chạy trên Node.js, một trên PHP. Đây không phải hai sản phẩm, cũng không phải một bản rút gọn và một bản đầy đủ. Vẫn là 51 không gian ấy, vẫn lược đồ 142 bảng ấy, vẫn 16 ngôn ngữ ấy, vẫn những màn hình ấy. Trang này nói điều gì thực sự chia tách chúng — và điều đó rất ít.

Vì sao có hai#

Một sản phẩm cho doanh nghiệp phải cài được ở nơi doanh nghiệp vốn đã ở. Có nơi có máy chủ, có systemd và một quản trị viên; có nơi chỉ có hosting dùng chung bốn euro một tháng và một tài khoản FTP. Bản Node hướng tới nhóm thứ nhất, bản PHP hướng tới nhóm thứ hai. Từ chối nhóm thứ hai là từ chối một nửa số doanh nghiệp cần công cụ quản lý hơn cả.

Những gì giống hệt#

Hạng mụcNodePHP
Không gian nghiệp vụ5151
Bảng trong cơ sở dữ liệu142142
Cột13111311
Ngôn ngữ giao diện1616
Khoá dịch27652792
Mô-đun tuỳ chọn77
Sự kiện webhook88
Tài nguyên API99

Vì lược đồ là một, cơ sở dữ liệu chuyển từ bản này sang bản kia mà không cần chuyển đổi gì: dừng bên này, chép app.sqlite cùng các thư mục tệp, khởi động bên kia. Mật khẩu vẫn dùng được — cả hai bản đọc cùng một định dạng băm. Đó là phép thử ngang bằng thành thật nhất, và nó đã qua.

Những gì khác nhau#

Hình dạng vài địa chỉ#

531 đường dẫn ở phía Node, 513 ở phía PHP. Khoảng chênh này không phải là thiếu sót: vẫn là những chức năng ấy, chỉ viết gọn hơn.

  • API. Node khai báo chín tài nguyên từng cái một (/api/v1/collaborateurs, /api/v1/services…); PHP phục vụ chúng dưới một đường dẫn có tham số. Cả chín đều trả lời, gốc công bố đủ chín, và một bài kiểm thử gọi từng cái để chứng minh.
  • Cài đặt. Node dẫn qua năm bước, PHP gói trong một trang và một lần gửi. Vẫn hỏi năm thông tin ấy: ngôn ngữ, yêu cầu hệ thống, doanh nghiệp, số ngày phép năm, tài khoản quản trị.
  • Quyền xuyên suốt. Node có một đường dẫn cho mỗi quyền, PHP chỉ một đường dẫn có tham số /admin/droits/{flag}.

Hai mươi tám khác biệt về hình dạng này không được khẳng định theo trí nhớ: tệp tests/test_parity.php chạy thử từng cái một.

Vòng quét định kỳ#

Node mang sẵn bộ lập lịch của nó: máy chủ chạy thường trực nên tự thức dậy. PHP chỉ sống trong lúc có yêu cầu: tám thao tác ấy đi qua tools/cron.php, do cron của nhà cung cấp hosting gọi. Cùng mã nghiệp vụ, cùng kết quả, khác cái kích hoạt.

Ngày tháng#

Node viết ngày tháng bằng Intl có sẵn trong V8. PHP cũng vậy khi có phần mở rộng intl — cùng bộ máy ICU, kết quả giống nhau tới từng ký tự. Khi thiếu nó, tên thứ và tên tháng lấy từ từ điển dịch: ngày vẫn đúng và vẫn được dịch, nhưng thứ tự các thành phần có thể khác ở vài ngôn ngữ.

Những gì tưởng khác mà lại không#

Chủ đềỞ cả hai bản
Mã QR (xác thực hai bước)Bộ mã hoá viết tay ở phía PHP, đã đối chiếu từng byte với thư viện dùng ở phía Node, trên mười sáu độ dài văn bản.
Kho lưu sao lưutar.gz viết không phụ thuộc thư viện nào ở cả hai phía, cùng nội dung, cùng mã băm SHA-256.
Hộp thư kế toán IMAPTrình khách IMAP viết ngay trong sản phẩm ở cả hai phía.
PDF, CSV, nhập dữ liệuViết trong sản phẩm, tệp xuất ra như nhau.
Nhật ký kiểm toánCùng cách móc xích mã băm: sửa một dòng là đứt xích, ở cả hai phía.
Chính sách bảo mật HTTPCùng tiêu đề, cùng CSP dùng giá trị một lần, cùng việc không có JavaScript nào không thể thiếu.

Nên chọn bản nào#

Hoàn cảnh của bạnBản
Hosting dùng chung, truy cập FTP, không có dòng lệnhPHP — đúng trường hợp nó nhắm tới
Máy chủ riêng, systemd, có quản trị viênNode
Bạn vốn đã quản trị được một trong haiBản đó. Sự ngang bằng khiến lựa chọn này đảo lại được.
Nhiều người dùng cùng lúcNode — một tiến trình thường trực, cơ sở dữ liệu đã mở sẵn
Bạn còn phân vânPHP — ít bộ phận phải trông nom hơn, mà chuyển sang Node vẫn chỉ là chép tệp

Sự ngang bằng được giữ ra sao#

Nó không phải một ý định mà là một phép kiểm. Mỗi lần thay đổi đều chạy bốn phép đối chiếu:

  1. Đường dẫn — rút ra từ hai phía rồi so; mọi chênh lệch đều phải là một khác biệt đã ghi rõ.
  2. Hàm — tên mà mỗi mô-đun đưa ra ngoài, so từng mô-đun một.
  3. Lược đồ — đọc bảng và cột từ cả hai cơ sở dữ liệu rồi so.
  4. Màn hình — chạy hai bản cạnh nhau và cho một trình duyệt thật đi qua từng trang, so mã trả về và cấu trúc.

Bốn lượt này đã tìm ra những lỗi có thật — trong đó hai lỗi nằm ở cả hai bản. Chính điều đó khiến chúng đáng làm: một sự ngang bằng không đo được là sự ngang bằng đã mất mà không hay.

Thêm vào đó là các bộ kiểm thử: 802 ca ở phía Node, 572 ở phía PHP, tổng cộng 1374.

Tài liệu Toutadmin — dựng ngày 2026-09-13. Trang độc lập, tách rời phần mềm.