Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pisanie CMS-a
Forum PHP.pl > Forum > Przedszkole
Diablos
W przyszłosci chciałbym zabrac sie za pisanie CMS-a. W jakiej kolejnosci co nalezy pisac. Zaczyna sie od template'ów ?

Inne sprawa. Widziałem ze jPortal jest napisany na funkcjach (?). Nie ma tam czystego zrozumiałego dla mnie kodu. Jest tylko masa funkcji, które są chyba wywoływane. Czemu napisane to jest w taki sposób ? Szybciej działa czy tak łatwiej napisac ?

Jak patrze na swoje umiejetnosci to umiałbym napisac system portalowy, w którym zawarte byłyby wszystkie funckje co w jPortalu (no moze poza parserem szablonow, bo to najtrudniejsze). Tylko ze moj kod wygladałby bardzo prosto, z pewnoscia mialby mase dziur.
Fipaj
Pisanie CMSa:
1. System templejtów (np. Smarty)
2. Sterownik BD (np Pear_DB)
3. System smile.gif

Najlepsze CMS są pisane obiektowo, troche gorzej jest na funkcjach.
strife
Witam,

Może to Ci pomorze...
http://forum.php.pl/index.php?showtopic=13770

Pozdrawiam!
hwao
Cytat(Diablos @ 2005-06-18 12:57:37)
Inne sprawa. Widziałem ze jPortal jest napisany na funkcjach (?). Nie ma tam czystego zrozumiałego dla mnie kodu. Jest tylko masa funkcji, które są chyba wywoływane. Czemu napisane to jest w taki sposób ? Szybciej działa czy tak łatwiej napisac ?

Jest napisany strukturalnie ("zwykly kod" + funckje, może sa tam jakies klasy jeszcze).
Jezeli masz problemy ze zrozumieniem kodu jPortalu to chyba jeszcze nie czas napisanie swojego systemiku.
Co do wywaloywania to dziala to moze ciut szyciej (od klas ale nie zwyklego kodu) a napisane jest tak poto zeby zachowac jakos chermetycznosc i latwosc odpalania - latwiej calosc zlozyc w kupe jak sa funkcje (nie trzeba pisac 2 razy albo wiecej tego samego).
Cytat
Jak patrze na swoje umiejetnosci to umiałbym napisac system portalowy, w którym zawarte byłyby wszystkie funckje co w jPortalu (no moze poza parserem szablonow, bo to najtrudniejsze). Tylko ze moj kod wygladałby bardzo prosto, z pewnoscia mialby mase dziur.

Co do wygladu kodu, to glownie na nim bedzie zalezalo osobon kre beda go rozwiajc dalej, zwyklemu userowni nie przeszkadza.

A co do ostanio widzialem systemik "CMS profesionalny" ktory mial takie bledy (dziury)... ze szoda slow. Osobiscie denerwuja mnie stwierdzenie profesionalny jak cos sie nie ma nijako do profesionalizmu, w dodatku posiada tyle dziur - takie male imho smile.gif.

Jak chcesz pisac taki systemik to w php5 masz temat jak projektowac mniej wiecej cos takiego, przeczytaj go kartla olowek i piszesz.

W razie jakis problemow pewnie fourm.php.pl udzieli Ci odpowiedzi na wiekszosc (jak nie na wszytkie) pytania smile.gif najwazniejsze jednak jest wytrwalosc bo pracy jest "troche" smile.gif i ponadto trzeba sporo czasu poswiecic smile.gif
Diablos
Rozpoczynaja sie wakacje, poza graniem w piłke, spaniem i melanzowaniem bede miał mase czasu. Chce go poswiecic na nauke php, MySQL, XML oraz napisanie czegos wiekszego.

Poki co wezme sie za analizowanie kodu jPortala (jesli to dobry pomysł)
Fipaj
Nie wiem, czy najlepszy.

Lepiej naucz się programować obiektowo w PHP5 - to o wiele ciekawsze i bardziej praktyczne biggrin.gif
Diablos
Ale jak juz sie dowiedziałem w innym topicu od hwao, zeby zabierac sie za PHP5 trzeba znac te podstawy smile.gif

Tak jak pisałem, umiałbym napisac kazdy ze skryptów dostepnych w jPortalu, ale zapewne bardziej elementarnymi rozwiazaniami czyli: połacz z bazą, wprowadz do bazy, wyswietl z bazy. Czasami jakies bajerki typu zsumuj ilosc rekordow w bazie o podanych warunkach cool.gif

Probowałem juz CMS'a (w sumie ciezko to nazwac CMS'em) poprostu skrypty zlepione ze soba w jedna całosc. Pisałem to dla własnej nauki. Posiadał on oczywiscie, newsy, komentarze, logowanie na sesjach, rejestracja usera, edycja profilu, wyswietlanie userów, shoutboxa, pozdrowienia, ksiege gosci, rangi (w zaleznosci od ilosci dodanych komentarzy ranga sie zmieniała, mozna było tworzyc nowe rangi i ustalac od jakiej liczby sie zaczyna).

PS. nie znalazłem jeszcze zadnego dobrego kursu php 5 worriedsmiley.gif
PS2. Wiadomo ze chciałbym sie nauczyc jak najwiecej, zeby pisac jak najlepsze rzeczy.
dag
Cytat(Diablos @ 2005-06-18 15:48:21)
nie znalazłem jeszcze zadnego dobrego kursu php 5

Mnóstwo artykułów nt nowości zawartych w php 5.
http://www.php.net/manual/en/language.oop5.php
http://zend.com/php5/
Diablos
Manual dla poczatkujacego jest niezrozumiały, pisany zbyt zawiłym jezykiem smile.gif
Fipaj
Nieprawda. Jak czegoś nie łapiesz - pytaj!

Czasem trzeba jedno zdanie dwa razy przeczytać biggrin.gif
I próbować!
dr_bonzo
Co do PHP5 -- znasz C++ lub jave? Ja znalem (na tyle ze mialem pojecie o podstawach OOP, tworzenie klas itd.) i wystarczyl mi manual php (o nowosciach w php5) do zrozumienia. Wiec mozesz szukac tez kursow OOP dla C++ lub Javy.
chmolu
Cytat
W jakiej kolejnosci co nalezy pisac


Oto mój sposób:
- zaprojektuj mniej więcej jak to ma wszystko wyglądać, spisz założenia
- nie projektuj od razu wszystkich detali, nie implementuj na raz wszystkich założeń, bo narzucisz sobie wymagania, których nie bedziesz w stanie spełnić i projekt zdechnie. Zacznij od możliwie najmniejszej funkcjonalności: buduj od góry. Chodzi o to, żebyś nie zaczynał od razu od pisania ogromnych bibliotek, typu system szablonów, sterownik baz danych, obsługa użytkowników. Nie dopieszczaj każdego najdrobniejszego szczegółu.

Chcesz pisać CMS, więc twoją pracę nad nim możesz zacząć np. od strony wyświetlającej newsy. Więc, potrzebował będziesz prostego kontrolera, prostego sterownika bazy danych (tylko z niezbędnymi funkcjami) oraz jednej akcji, która zajmie się wszystkimi działaniami.

Spraw, żeby to zadziałało. Popraw architekturę -- wydziel klasę modelu, w której będą zawarte operacje na bazie danych, popraw projekt sterownika bazy danych, dodaj jakiś prosty system szablonów.

Spraw, żeby to zadziałało. Popraw architekturę -- rozbuduj model, popraw system zarządzania użytkownikami, dodaj możliwość edycji i usuwania danych, popracuj nad tym, żeby całe API było wygodne. Dodaj nową funkcjonalność.

Spraw, żeby to zadziałało. Popraw architekturę...

Ten proces powtarzaj w kółko a zobaczysz, że twoja aplikacja będzie stawała się coraz bardziej potężna i coraz lepsza. Poczytaj sobie o programowaniu iteracyjnym (tak to się chyba nazywa winksmiley.jpg) oraz o testowaniu modułów.
Nievinny
Na początek UML, potem CMF (zawiera Template, DB, cache, MVC, obiektowo ), a potem zestaw modułów, akcji, widoków itp
Diablos
Hyhy, a co oznaczaja skróty:

UML
CMF
MVC

oraz

cache
akcje

Prosiłbym o wyjasnienie do czego słuzy smile.gif
Diablos
No tak, ale jak zawsze mowie, nie chce encyklopedycznych tekstów rolleyes.gif Tylko jakiejs porady od doswiadczonego usera, w stylu, czy warto, co mi to da, co jak nie bede tego miał.
shpyo
to najpiewr sobie napisz coś co będzie dodawało treść, wysyłało pliki na serwer, będziesz mógł zarządzać hasłami, userami itp. Złącz to w całość. Potem zrób jakieś templaty czy coś aby to wyświetlić. Ot cała (bardzo uproszczona) filozofia.

Przejrzyj sobie inne CMSy - np. mambo. Zobacz co mają, jak wygląda interface.
Diablos
Musze przyznac ze sam fakt, iz na pewnym forum o php, w topicu w ktorym jeden z uzytkownikow postanowił napisac CMS'a i poprosił o rady jak to robic, odpowiedzi były mniej wiecej takie:

Cytat
- poprawny semantycznie i gramatycznie mark-up
- całkowite oddzielenie warstwy prezentacji od warstwy treśći
- wsparcie dla takich technologii jak xfn
- zaprojektowany zgodnie z wytycznymi WAI


przeraziło mnie ...
bo tak naprawde wiem tylko o co chodzi przy tym drugim myslniku.

Eh, duzo pracy przede mna.
dr_bonzo
1. XHTML + XML szukaj na stronach http://www.w3c.org/ ; ale polecam kursy/ksiazki
Diablos
Mam kilka ksiazek na ten temat, poczytam winksmiley.jpg

Jeszcze jedno pytanie, w jaki sposob przystosowac CMS'a aby mozna było do niego dodawac bez wiekszych problemow rozne moduły ? CMS musi byc pisany w jakis specjalny sposob ?
Fipaj
Tak
Musisz mu dorobić system modułów. Proste, nie? smile.gif

Np. każdy nowy link w menu może być pustą stroną, stroną opartą na jakimś szablonie bądź stronie opartej na module...
Diablos
smile.gif smile.gif

Czyli kolejna sprawa poza template'ami, to system modułów winksmiley.jpg
Moja droga nauki pisania CMS'a sie wydłuza axesmiley.png
dag
Cytat(Diablos @ 2005-06-19 13:37:21)
Moja droga nauki pisania CMS'a sie wydłuza axesmiley.png

...i jeszcze nie raz się przedłuży ;-) Jak ktoś już wcześniej napisał - stawiaj małe kroczki i nie skacz od razu na głęboką wodę, bo jest wielce prawdopodobne, że się nie uda, a jeśli się uda to i tak nie będzie to zbyt dobre rozwiązanie. Musisz zdobyć doświadczenie. Jeśli napiszesz już pierwszy system, to prawdopodobnie będziesz chciał napisać nową wersję, pisanie której będzie o wiele łatwiejsze bo będziesz miał już większe doświadczenie, inaczej zaprojektujesz system itp. Pamiętaj, że zazwyczaj większość czasu poświęca się projetkowi. Im lepszy, bardziej szczegółowy projekt, tym szybciej przebiegnie faza implementacji.
Fipaj
Ja mam jeszcze jedną radę:
zrób prosty system cms, panel admina i zarządzanie stronami
A potem po troszku ten system rozbudowywuj...
olszam
Cytat(Fipaj @ 19.06.2005, 14:06:13 ) *
Ja mam jeszcze jedną radę:
zrób prosty system cms, panel admina i zarządzanie stronami
A potem po troszku ten system rozbudowywuj...

Tu rację przyznam cms na początku powinien mieć podstawowe rzeczy do zarządzania. Większość to chyba robi w tej kolejności CMS: Baza SQL, PHP i na końcu (x)HTML/CSS albo Baza SQL, (x)HTML/CSS i na końcu PHP. Ja sam też zaczynam pisać CMS tylko że w tej drugiej kolejności i puki co mam zrobioną bazę, ale ciężko mi z szablonem, kod napisać to jedno ale wymyślić jak tu co ma wyglądać to już co innego. Myślałem nad gotowymi szablonami ale jakoś kod szablonu miał w sobie chaos zamiast porządku. A wracając do tematu CMS jak chce się pisać beż żadnego kombinowania to wystarczy MySQL,PHP,(x)HTML/CSS ew.JS lub AJAX, frameworki nie są konieczne chyba że chcesz z nich korzystać i je dobrze znasz. Jak jesteś hardkorem to napisz kod bez żadnych własnych funkcji albo wszystko w jednym pliku zawarte tongue.gif smile.gif
lobopol
Gratulacje, odpisałeś na temat mający 7 lat.
pamil
Cytat(olszam @ 28.08.2012, 20:36:40 ) *
Tu rację przyznam cms na początku powinien mieć podstawowe rzeczy do zarządzania. Większość to chyba robi w tej kolejności CMS: Baza SQL, PHP i na końcu (x)HTML/CSS albo Baza SQL, (x)HTML/CSS i na końcu PHP. Ja sam też zaczynam pisać CMS tylko że w tej drugiej kolejności i puki co mam zrobioną bazę, ale ciężko mi z szablonem, kod napisać to jedno ale wymyślić jak tu co ma wyglądać to już co innego. Myślałem nad gotowymi szablonami ale jakoś kod szablonu miał w sobie chaos zamiast porządku. A wracając do tematu CMS jak chce się pisać beż żadnego kombinowania to wystarczy MySQL,PHP,(x)HTML/CSS ew.JS lub AJAX, frameworki nie są konieczne chyba że chcesz z nich korzystać i je dobrze znasz. Jak jesteś hardkorem to napisz kod bez żadnych własnych funkcji albo wszystko w jednym pliku zawarte tongue.gif smile.gif


Teraz tylko przedzownić do Komorowskiego, żeby Ci ją wręczył wink.gif
irmidjusz
hahahahaha biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.