![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 8.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Szukam najlepszego rozwiązania do realizacji projektu. Generalnie chodzi o realizację nowej wersji istniejącej aplikacji. Aktualna wersja jest śmietnikiem strukturalno-proceduralnym, który dostałem w spadku po ex-programistach i mam za zadanie zbudować nową wersję, obiektową. Aplikacja to e-commerce - sklepy online, 30 bramek płatności, integracja z amazon, ebay, CMS itp. Nowa powinna z założenia być tak elastyczna jak bieżące rozwiązanie, które po krótce wygląda tak: - centralny "framework" - wszelkie możliwe do wykorzystania moduły i funkcjonalności systemu, - około 500 aplikacji klientów (sklepów), które posiadają własne configi, bazy danych, layouty, FTP, lokalne dokumenty, pliki, zdjęcia etc. - każda z aplikacji includuje wszystko co jest niezbędne i określone w configu z centralnego frameworka, - każda z aplikacji może nadpisać lokalnie dowolną z funkcji/klas/modułów poprzez stworzenie lokalnej kopii plików i modyfikowanie ich do woli lub dodawanie nowych funkcjonalności. Tak więc zaletą istniejącego systemu jest duża elastyczność, możliwość dostosowania wszystkiego do specjalnych wymagań klienta. Niestety setki wad i problemy z rozbudową, tysiące bugów, itp skłoniły firmę do inwestycji w nową wersję OOP. Moje pytanie do ciebie, czy w takim projekcie jest sens bazować na jednym z istniejących frameworków (ZF, SF albo inny) a jeśli tak, to który z nich twoim zdaniem jest na tyle elastyczny, że da się go wykorzystać w podobnej strukturze? Na tyle na ile znam i korzystałem z frameworków PHP, to zawsze była to pojedyncza aplikacja - wszystkie pliki projektu lokalnie. Tutaj trzeba zrobić pliki wszystkich modułów i funkcjonalności dostępne w centralnym frameworku i kilkaset aplikacji z opcją nadpisania wybranych klas lub całych modułów lokalnie. Naprostsze wydaje mi się zrealizowanie własnego frameworka, ale może się mylę i szybciej będzie skorzytać z gotowych rozwiązań poprzez jakieś proste fixy/konfiguracje. Może spotkałeś się online z propozycją struktury dla podobnych projektów lub wprost - z przykładową realizacją/podobnym rozwiązaniem? Dzięki za wszelką pomoc. Pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Bez problemu osiągniesz to w Kohanie bez żadnych dodatkowych kombinacji dzięki modułom i kaskadowemu wczytywaniu plików.
- centralny "framework" - wszelkie możliwe do wykorzystania moduły i funkcjonalności systemu, Framework siedzi w katalogu system. Tworzysz dowolne moduły (np. galeria, newsy) które są wspólne dla wszystkich aplikacji, a w każdej z nich możesz nadpisać dowolną klasę/widok/konfigurację. - około 500 aplikacji klientów (sklepów), które posiadają własne configi, bazy danych, layouty, FTP, lokalne dokumenty, pliki, zdjęcia etc. Każda aplikacja miałaby osobny folder z plikami, które "nadpisywałyby"/uzupełniały te domyślne. - każda z aplikacji includuje wszystko co jest niezbędne i określone w configu z centralnego frameworka, Do każdej aplikacji możesz dołączyć dowolne moduły. - każda z aplikacji może nadpisać lokalnie dowolną z funkcji/klas/modułów poprzez stworzenie lokalnej kopii plików i modyfikowanie ich do woli lub dodawanie nowych funkcjonalności. W Kohanie każda klasa ma (nie jest to wymagane) 2 wersje: bazową z całą zawartością metod (class Kohana_Klasa) oraz rozszerzającą pustą (class Klasa extends Kohana_Klasa). Klasę bazową możesz nadpisać w dowolnym module czy w katalogu aplikacji bez jakiejkolwiek ingerencji w klasę bazową. Najciekawsze jest kaskadowe wczytywanie plików. Każdy plik (klasa, widok, konfiguracja itd.) jest szukana w kolejności: katalog aplikacji, katalogi modułów, katalog systemowy. Dzięki temu osiągniesz wszystkie postawione przez Ciebie wymagania. Struktura katalogów wyglądałaby więc mniej-więcej tak: - system (pliki Kohany) - modules/galeria - modules/newsy - application/sklep1 - application/sklep2 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 04:04 |