Napisałem małą aplikację PHP, którą chciałbym rozpowszechniać. Szukam najlepszych praktyk, dzięki czemu można je zainstalować na większości hostów internetowych przy minimalnym wysiłku.Dystrybucja małej aplikacji PHP
Krótko: To proste narzędzie, które pozwala użytkownikom pobierać pliki po zalogowaniu się przy użyciu hasła.
Więc moje pytania to:
1) W jaki sposób należy obsługiwać wartości konfiguracji? Nie używam bazy danych, więc plik konfiguracyjny wydaje się odpowiedni. Wiem, że inne aplikacje php (np. Wordpress) definiują, ale są globalne i istnieje możliwość, że nazwy będą w konflikcie. (Zmienne globalne mają oczywiście ten sam problem.) Spojrzałem na mechanizm plików "ini" wbudowany w PHP. Dopuszcza tylko komentarze u góry - nie możesz więc łatwo dodawać adnotacji do każdego ustawienia - i nie możesz sprawdzić poprawności składni za pomocą "php -f". Inne opcje?
2) Jak radzić sobie z szablonami? Aplikacja musi wypompować formularz. Prawdopodobnie z komunikatem o błędzie. (np. "Przepraszam, błędne hasło.") Mam zmienną klasy z formularzem HTML, ale także zezwalam na użycie zewnętrznego pliku szablonu (określonego w konfiguracji). Wykonuję trochę trywialnego wyszukiwania i zamiany - np. % SCRIPT% na nazwę skryptu,% STATUS%, aby zatrzymać komunikat o błędzie. To trochę przypomina ponowne wymyślenie koła, ale w tym szablonie takim jak Smarty jest przesada. (Plus mogą już mieć system szablonów.) Inne opcje?
3) i18n - Istnieją tylko 3 ciągi komunikatów, a gettext nie wydaje się być powszechnie zainstalowany. Czy jest to taki zły pomysł, aby wprowadzić te trzy parametry łańcuchów w pliku konfiguracyjnym?
4) Jak najlepiej zintegrować z innymi frameworkami? Moja aplikacja jest jedną klasą. Pomyślałem więc, że mogę dołączyć skrypt php, który pokazuje, w jaki sposób została nazwana klasa. Byłby to punkt wyjścia dla osób, które musiałyby zintegrować go z inną strukturą, ale także dobrze dla osób nie zainteresowanych dostosowywaniem. Rozsądny?
5) Parametry GET/POST - czy jest to zła forma dla klasy, która patrzy na $ _GET i $ _POST? Czy wszystkie wartości powinny zostać przekazane do mojej klasy podczas budowy?
Dzięki.
Uwielbiam ten styl konfiguracji! Mam zamiar wypróbować to teraz. –