Kodowałem od lat i znalazłem się w punkcie frustracji. Pracuję nad nową usługą internetową, która również ma interfejs użytkownika i będzie rozwijana od podstaw. Będzie korzystać z niektórych komponentów open source, ale jest przede wszystkim nową rzeczą samą w sobie.PHP/JavaScript Wzorce projektowe dla infosystemów opartych na Internecie
Ale oto mój problem. Budowanie takiego systemu oznacza budowanie wszystkich tych elementów:
- PHP backend
- widoki HTML
- style CSS
- JavaScript Czołowy
- AJAX asynchronicznych połączeń
chcę wszystkie z nich mają ten sam "wzór", w taki sposób, że moduł w systemie składa się z folderu lub zestawu plików zawierających wszystkie elementy omponents w tym module.
Ale mam trudny czas z uzyskaniem architektury, tak, że chciałbym go. Oto, co mam do tej pory:
- Cały główny system jest mniej lub bardziej napisany w proceduralnym PHP. Rozwiązuje to adres URL żądania, zajmuje się buforowaniem, rejestrowaniem i debugowaniem oraz ładowaniem w innych komponentach.
- PHP, budując stronę, ładuje pliki JavaScript, pliki CSS, pliki HTML i inne komponenty oparte na module na bieżącym module. Oznacza to, że każdy moduł jest tak lekki, jak to możliwe, a jednocześnie można go rozbudować w oparciu o aktualne potrzeby modułów.
- System zawiera także komponenty OOP obiektów (takie jak "użytkownicy" lub inne typy klas), które mogą być używane w całym systemie.
- System jest zbudowany zgodnie z zasadami MVC, ale bez OOP.
Ale czuję się naprawdę ... naprawdę za zbudowanie głównego systemu w sposób proceduralny. Zacząłem go początkowo pisać w OOP, ale szybko znalazłem się w bólach głowy z powodu konieczności dopasowania wszystkiego do tego samego systemu. To był OOP, ale był ściśle sprzężony, co nie podobało mi się, gdy był napisany sposobem OOP, komponenty nie były tak naprawdę niezależne lub były tylko kłopotliwe w zarządzaniu.
Czy są jakieś wzory lub wskazówki, które mogę śledzić, aby uzyskać lepszy wynik? To, co podoba mi się w obecnym systemie, to to, że mogę wywoływać cokolwiek, wyświetlać podgląd PHP lub widoki HTML, styl CSS, dodatkowe funkcje JavaScript i komunikację AJAX na żądanie, utrzymując footpring cudownie małe, ale to jest brudne. Używam nawet globalnego połączenia z główną bazą danych (choć jest to obiekt globalny).
Wszelkie pomysły? Nie stanowiłoby to żadnego problemu, gdyby był tylko jednym językiem, ale próba sprawienia, by wszystko działało razem, to trochę bólu głowy.
Dzięki!
Czy badał każdy z tysięcy ram PHP/systemy CMS/etc? Istnieje mnóstwo przykładów tego, jak można to zrobić. – Mat
Bardzo trudno jest odpowiedzieć na twoje pytanie, ponieważ nie przedstawiasz żadnego prawdziwego problemu. Obecnie pracuję nad takim systemem prawie jak twój, ale poza nim z pewnymi różnicami. Używam MVC/OOP. Nie mogę sobie wyobrazić, że traktujesz to proceduralnie. Myślę, że dopóki twój projekt nie będzie miał pewnych granic, nie powinno być problemu w OOP. –
Można przyjrzeć się wzorcom architektury aplikacji korporacyjnych, wzorom GoF itp. I wdrożyć je samodzielnie. Jednak najłatwiejszą (i najbardziej oczywistą) odpowiedzią jest przyjrzenie się, w jaki sposób frameworki (które już napotkały ten problem _exact_) wdrożyły te wzorce i albo (a) wykorzystują framework, albo (b) dostosowują podejście do tej aplikacji. Poszukaj frameworka o otwartym kodzie źródłowym w wybranym przez siebie paradygmacie, zobacz, jak się zachowuje, i zobacz, co jibes z aplikacją. –