![]() |
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.
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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)
|
|
|
![]()
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?
|
|
|
![]()
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 :)
|
|
|
![]()
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... -------------------- |
|
|
![]()
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 :)
|
|
|
![]()
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 |
|
|
![]()
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 :)
|
|
|
![]()
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 |
|
|
![]()
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
![]() 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 :)
|
|
|
![]()
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...
|
|
|
![]()
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 :)
|
|
|
![]()
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 |
|
|
![]()
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
![]() -------------------- |
|
|
![]()
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 ? |
|
|
![]()
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 :/ -------------------- |
|
|
![]()
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%) ![]() ![]() |
|
|
|
![]()
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"
![]() -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
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. |
|
|
![]()
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: 14.06.2024 - 03:17 |