Wirtualne klasy contentu, Czy ktoś znalazł już rozwiązanie ? |
Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.
Wirtualne klasy contentu, Czy ktoś znalazł już rozwiązanie ? |
8.11.2005, 21:28:21
Post
#1
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) |
Witam. Od pewnego czasu mam problem jak rozwiązać sprawę wirtualnych klas contentu no i nie moge nadal wymyślić. Czy ktoś ma swoją zaimplementowaną metodę i chciałby się nią podzielić ?
Pozdrawiam |
|
|
8.11.2005, 21:40:38
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) |
eZpublish, polecam przejrze, moj cms bedzie sie na tym wzorowal (jeszcze nie zaimplementowalem tego)
|
|
|
8.11.2005, 21:51:57
Post
#3
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 1 Dołączył: 23.01.2004 Ostrzeżenie: (0%) |
Seth na swojej stronie zamieścił bardzo fajny diagram - szkielet bazy danych w której takie wirtuakne klasy miałyby siedzieć, proponuję zacząć od tego. Ponadto poszukaj na google czegoś o "idk cms".
-------------------- Słyszałem, że macie tutaj jakieś takie php... fajne to, dobre to jest?
|
|
|
26.11.2005, 19:10:57
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
http://www.meta-language.net/metastorage-tutorial.html
To sie moze przydac - ja swoj sposob znalazlem - narazie tylko na generacje samych klas ale jest i dziala -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
26.11.2005, 19:40:15
Post
#5
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) |
A ja znalazłem świetny framework, zresztą zobaczcie sami http://www.djangoproject.com/documentation/overview/.
Skończę semestr i coś podobnego sobie w php napiszę. Bardzo mi się podoba generowanie panelu admina. Gdyby jeszcze w php były klasy wewnętrze... -------------------- |
|
|
26.11.2005, 19:44:56
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
Ja mam pytanko co do tematu - macie jakas wizje co robic ze starymi obiektami ? Jest to pytanie stricte teoretyczne.
Bo zalozmy - tworzymy sobie klase ktora ma iles tam pol. Usuwamy jedno pole. Dodajemy jakies inne - i co ? Robimy dzikiego update dla starych obiektow czy budujemy sobie system kontroli wersji klas i pozostawiamy stara definicje a nowa zapisujemy w bazie i tworzac nowy obiekt korzystamy juz z nowej definicji ? Macie jakies inne pomysly ? -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
26.11.2005, 20:55:49
Post
#7
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) |
No dobrze poczytałem troche o wirtualnych klasach contentu ale głównie pomyśł mam jak to wszystko zrealizować lecz nie mam pomysłu jak przechowywać dane w bazie aby łatwo było je posortować, wyciągnąć tylko te potrzebne itp. Jak narazie to przyszło mi do głowy jedynie tworzenie nowej tabeli content_"nazwatypu" a w niej kolumn które były by jednocześnie atrybutami (np. tytul, tresc, obrazek, data-dodania, autor). Jak myślicie czy takie rozwiązanie jest dobre ?
Pozdrawiam |
|
|
26.11.2005, 23:53:04
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
Pomysl jak bedzie wtedy wygladac zapytanie pobierajace dane klasy, ktora sklada sie z pola kazdego typu....
Ja mam jedna tabele -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
26.11.2005, 23:56:50
Post
#9
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) |
A jesteś w stanie przedstawić to rozwiązanie czy jest ono utajnione
Pozdrawiam |
|
|
27.11.2005, 00:12:46
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
Szczerze bede troche niemily Utajnione do czasu publikacji mojej nowej zabaweczki - jesli do niej nie dojdzie to ujawnie rozwiazanie - na moja decyzje sklada sie to iz pewna firma jest zainteresowana tym czyms i nie chcialbym bym sobie schrzanic dobrej roboty a moze i zycia... - wybaczcie chlopaki
Tak wyglada sama tabela z atrybutami :
Thats all plus seriazlizacja oraz xml. -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
27.11.2005, 00:41:39
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) |
mi sie nasuwa zeby wszystko trzymac w xmlu, ale jak potem optymalnie wyciagac rozne obiekty to juz nie wiem...
|
|
|
27.11.2005, 01:43:48
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
Ja zapisuje kazda wlasnosc obiektu jako osobne pole w tabeli z atrybutami.
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
27.11.2005, 09:43:47
Post
#13
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 8.10.2004 Ostrzeżenie: (0%) |
Ja zaimplementowałem w swoim CMFie strukturę bardzo podobną do tej, którą podał Seth na swoim blogu. Jest to bardzo elastyczne, ale bez cache może być obciążające dla bazy. Żeby wyciągnąć jeden obiekt wraz z atrybutami (w jednym zapytaniu) trzeba połączyć aż 5 tabel:
Przez takie skomplikowanie struktury kod php układający to wszystko w logiczne obiekty jest naprawdę zagmatwany (przynajmniej w moim wypadku ). Pomimo złożoności tego rozwiązania sprawdza się ono bardzo dobrze, a tworzenie CMSów jest łatwe i szybkie. Niestety schody zaczynają się, gdy chcemy zaimplementować "obiekty powiązane" znane z ez. Chodzi o to, że jeśli mamy obiekt klasy "artykuł", to zazwyczaj jest z nim związany też obiekt klasy "autor", które musimy wyciągnąć jednocześnie. O ile dla pojedynczego obiektu jest to w miarę proste, to żeby wyciągnąć obiekty powiązane dla listy artykułów trzeba się sporo nakombinować. Skrypt jest dostępny tutaj. Jak tylko uporam się z innymi projektami postaram się zrobić porządny refaktoring kodu, bo obecny to prowizorka. Chcę, by funkcja pobierania obiektów miała podobną funkcjonalność, jak w ez (sortowanie, pobieranie tylko w zależności od wartości atrybutu etc.). Ten post edytował chmolu 27.11.2005, 09:57:57 |
|
|
27.11.2005, 13:05:51
Post
#14
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) |
A może by tak wykorzystać natywne bazy danych? Odpada problem z XMLem
-------------------- |
|
|
29.11.2005, 20:55:02
Post
#15
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
hm.. ja bym wszystko wpakował do pliku xml i porzucił całkowicie bazę danych .
Plik xml:
(Alno coś w ten deseń ) Wiadomo. Parser xml:
Jakieś pomysły co do tego rozwiązania ? Drążyć, czy powrócić do bazy danych ? |
|
|
29.11.2005, 21:01:49
Post
#16
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) |
A chce ci się pisać obsługę wyszukiwania... łączenia wyników... transakcję i wiele innych? :]
Natywne bazy danych doskonale pozwalają na obsługę XMLa, jednak mało gdzie mamy do nich dostęp :/ -------------------- |
|
|
29.11.2005, 21:05:01
Post
#17
|
|
Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) |
|
|
|
29.11.2005, 21:36:13
Post
#18
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
Sama definicja klas jest prosta jak barszcz - ja stotuja wlasnie taka z XML-em + jedna wbudowana na stale ( czyt. "Folder" ). Gorszy problem jest z ich uzywaniem tzn - generujesz dzieki tej klasie formularz - nby nic trudnego ale zapis tego potem oraz wyciaganie danych - i zaczynaja sie schody.
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
30.11.2005, 09:24:44
Post
#19
|
|
Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) |
tak dokladnie to samo mam... Z tym ze xml nie generuje mi klas, sam je sobie definiuje, ale pozniej problem jest w operacjach na zapisanych danych. Pojedynczy typ contentu trzymam w osobnej tabeli, a jak chce wylistowac wszystkie elementy z danego folderu to wyciagam dane z glownej tabeli odnosnie galezi (glowne dane takie jak id, czas utworzenia, kto utworzyl etc...) oraz dobieram do kazdego rekordu odpowiednie dane z odpowiedniej tabelki - strasznie nieefektywne ale narazie wystarcza mi to rozwiazanie, gdyz nie tworze bardzo rozgleglych serwisow. Jednak nie mozna sie ograniczac.
zastanawialem sie tez swego czasu, czy np: w postgresql nie mozna wykonywac takich laczen w jednym zapytaniu, zeby zwraal mi dane z glownej tabeli, oraz odpowiednie dane z jednej tabelki (wszystko jednym zapytaniem) W jaki sposob przechowywac takie dane Contentu? Pozniej robia sie schody przy np: wyszukiwaniu elementow wedlug konkretnych warunkow. Pozdrawiam. |
|
|
10.02.2006, 19:05:52
Post
#20
|
|
Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) |
ok odświerzę troche temat ponieważ ten problem w dalszym ciągu mi nie daje spac po nocach:D
Chcę użyc XML do przechowywania contentu. Tabela prosta: przykładowy XML:
Zalezy mi na XMLu przede wszystkim dlatego że jeste on standardem sieciowym, mogę go sobie dowolnie transformowac dzieki XSLT itp. I teraz problemy; - jak wyciągnąc np. tylko tytuł?;] No bo po co do listowania wyciagac caly XML? XPath chyba nie wchodzi w rachubę=] A gdyby tak np napisac program jakims języku "zwykłym" typu c++ c#, java który by sobie rezydował w pamięci i czekał na prosby od php? CMS mógłby SOAPem wysyłac zapytanie do niego w stylu
a dostawałby ładny sformatowany XML. XPath itp przechodziłoby na stronę programu - modelu. |
|
|
Wersja Lo-Fi | Aktualny czas: 27.09.2024 - 03:10 |