T ToutadminDokumentacja

Dwie edycje, jeden produkt

Toutadmin istnieje w dwóch egzemplarzach: jeden działa na Node.js, drugi na PHP. To nie są dwa produkty ani wersja okrojona i pełna. To te same przestrzenie (jest ich 51), ten sam schemat o 142 tabelach, te same 16 języki, te same ekrany. Ta strona mówi, co je naprawdę różni — a różni niewiele.

Dlaczego dwie#

Produkt dla firm musi dać się zainstalować tam, gdzie firma już jest. Jedne mają serwer, systemd i administratora; inne mają hosting współdzielony za cztery euro miesięcznie i dostęp FTP. Edycja Node zwraca się do pierwszych, edycja PHP do drugich. Odprawić te drugie znaczyłoby odprawić połowę firm, które narzędzia do zarządzania potrzebują najbardziej.

Co jest ściśle identyczne#

ElementNodePHP
Przestrzenie robocze5151
Tabele w bazie142142
Kolumny13111311
Języki interfejsu1616
Klucze tłumaczeń27652792
Moduły opcjonalne77
Zdarzenia webhooków88
Zasoby API99

Skoro schemat jest ten sam, baza przechodzi z jednej edycji do drugiej bez konwersji: zatrzymaj jedną, skopiuj app.sqlite oraz katalogi plików, uruchom drugą. Hasła działają dalej — obie edycje czytają ten sam format skrótu. To najuczciwszy test zgodności, jaki istnieje, i jest zdany.

Co się różni#

Kształt kilku adresów#

531 tras po stronie Node, 513 po stronie PHP. Ta różnica nie jest brakiem: to te same funkcje zapisane zwięźlej.

  • API. Node deklaruje swoje dziewięć zasobów po kolei (/api/v1/collaborateurs, /api/v1/services…); PHP obsługuje je jedną trasą z parametrem. Wszystkie dziewięć odpowiada, korzeń ogłasza wszystkie dziewięć, a test wywołuje je pojedynczo, żeby to udowodnić.
  • Instalacja. Node prowadzi w pięciu krokach, PHP mieści się na jednej stronie i jednym wysłaniu. Pytania są te same: język, wymagania, firma, dni urlopu rocznego, konto administratora.
  • Uprawnienia przekrojowe. Node ma jedną trasę na uprawnienie, PHP jedną trasę z parametrem /admin/droits/{flag}.

Tych dwudziestu ośmiu różnic w kształcie nie stwierdza się z pamięci: plik tests/test_parity.php sprawdza każdą z nich, jedną po drugiej.

Przebieg okresowy#

Node niesie własny harmonogram: serwer działa bez przerwy i budzi się sam. PHP żyje tylko w czasie żądania: te same osiem operacji przechodzi przez tools/cron.php, wywoływany przez cron hostingu. Ten sam kod dziedzinowy, ten sam skutek, inny wyzwalacz.

Daty#

Node zapisuje daty przez Intl, wbudowany w V8. PHP robi to samo, gdy obecne jest rozszerzenie intl — ten sam silnik ICU, ten sam wynik co do znaku. Gdy go brak, nazwy dni i miesięcy pochodzą ze słowników tłumaczeń: data pozostaje poprawna i przetłumaczona, ale kolejność elementów może się w kilku językach różnić.

Co się nie różni, choć wydawałoby się, że powinno#

ZagadnienieW obu edycjach
Kody QR (uwierzytelnianie dwuskładnikowe)Koder napisany ręcznie po stronie PHP, sprawdzony bajt po bajcie względem biblioteki używanej po stronie Node, na szesnastu długościach tekstu.
Archiwa kopii zapasowychtar.gz zapisywany bez żadnej zależności po obu stronach, ta sama zawartość, te same skróty SHA-256.
Księgowa skrzynka IMAPKlient IMAP napisany wewnątrz produktu po obu stronach.
PDF, CSV, importNapisane wewnątrz produktu, te same pliki na wyjściu.
Dziennik audytuIdentyczne łańcuchowanie skrótów: zmieniony wiersz zrywa łańcuch, po obu stronach.
Polityka bezpieczeństwa HTTPTe same nagłówki, ta sama CSP z wartością jednorazową, ten sam brak niezbędnego JavaScriptu.

Którą wybrać#

Twoja sytuacjaEdycja
Hosting współdzielony, dostęp FTP, brak wiersza poleceńPHP — dokładnie ten przypadek
Własny serwer, systemd, administratorNode
Umiesz już administrować jedną z nichTą. Zgodność sprawia, że wybór jest odwracalny.
Wielu użytkowników narazNode — jeden stały proces, baza już otwarta
Wahasz sięPHP — mniej elementów do utrzymania, a przejście na Node nadal jest kopiowaniem plików

Jak utrzymywana jest zgodność#

To nie zamiar, tylko sprawdzenie. Przy każdej zmianie przechodzą cztery porównania:

  1. Trasy — wyciągnięte z obu stron i porównane; każda rozbieżność musi być udokumentowaną różnicą.
  2. Funkcje — nazwy udostępniane przez każdy moduł, porównywane moduł po module.
  3. Schemat — tabele i kolumny odczytane z obu baz i porównane.
  4. Ekrany — obie edycje uruchomione obok siebie i obejrzane przez prawdziwą przeglądarkę, strona po stronie, z porównaniem kodu odpowiedzi i struktury.

Te cztery przejścia znalazły prawdziwe usterki — w tym dwie dotykające obu edycji. To właśnie czyni je użytecznymi: zgodność, której się nie mierzy, jest zgodnością, którą się utraciło, nie wiedząc o tym.

Do tego dochodzą zestawy testów: 802 przypadków po stronie Node, 572 po stronie PHP, razem 1374.

Dokumentacja Toutadmin — zbudowana 2026-09-13. Witryna samodzielna, niezależna od oprogramowania.