Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Własny CMS
Forum PHP.pl > Forum > PHP
seba199696
Witam smile.gif Zamierzam napisać własny CMS głównie chodzi mi o:

-Download
-Aktualności z możliwością dodawania przez użytkowników z uprawnieniami
-Galerie
-Artykuły
-Porady
-Kontakt
-Parę własnych pod stron do wypełnienia
-Kontakt

Użyję PDO a co do template SMARTY?
kiler129
Z praktyki dam Ci jedną złotą radę: zanim napiszesz choćby linijkę kodu porządnie rozplanuj sobie całość, najlepiej na kartce papieru. Rozrysuj powiązania i rozważ jakie technologie gdzie użyjesz.
Co do smarty to osobiście użyłbym czegoś lżejszego (w ostatnich dniach była dyskusja w tym dziale dot. własnie szablonów).
!*!
Cytat(kiler129 @ 6.03.2012, 02:15:44 ) *
Z praktyki dam Ci jedną złotą radę: zanim napiszesz choćby linijkę kodu porządnie rozplanuj sobie całość, najlepiej na kartce papieru.


A jak już to zrobisz, rozrysuj to sobie jeszcze raz, bo zapewniam Cie że nie będzie to dobre wink.gif jak już będziesz miał całość, obadaj co jakiś czas wydajność. Co do komponentów które dobierasz, to zależy od zastosowania samego CMSa i to jak go piszesz czy obiektowo z możliwością dodania modułów, czy zastosujesz jakiś wzorzec projektowy, czy scentralizujesz konfigurację i wiele innych czynników...
viking
A nie lepiej wykorzystać już gotowy projekt i ewentualnie go dopasować bardziej pod swoje potrzeby? Bo skoro pytasz co zrobić, PDO wymieniłeś jak jakąś magiczną właściwość to raczej mała jest Twoja wiedza. Na początek rozejrzyj się za jakimś frameworkiem (Zend, Symfony) i na jego podstawie zbuduj resztę. Opanowując większy projekt będziesz miał do podglądu dobrze napisany kod, sposoby komentowania, pewne wzorce których inaczej się nie nauczysz. Dadzą Ci też nowe narzędzia pracy, zobaczysz jak działa MVC, poznasz budowę mpdułową gdzie np z wymienionych galeria czy dział download może być takim modułem.
!*!
Cytat(viking @ 6.03.2012, 08:46:35 ) *
A nie lepiej wykorzystać już gotowy projekt i ewentualnie go dopasować bardziej pod swoje potrzeby?


A czy lepiej poprawia Ci się cudzy kod? Dopasujesz, może i dopasujesz, ale weź np. taki wordpress zacznij optymalizować pod względem wydajności. Jak chce pisać własny CMS, to niech to robi, nawet jakby miał być pisany strukturalnie to popieram, bo się dzięki temu uczy. To ta jak z pisaniem ściągi w szkole wink.gif
Brick
Popieram przedmówcę: niech zacznie pisać coś prostego, strukturalnie, samodzielnie. Z wykorzystaniem prostych formularzy, tabelek. To najlepsza nauka czyli przez działanie.
Jak zacznie od frameworków, MVC, dogłębnej analizy i projektowania struktury to zostawi to za chwilę i pójdzie na piwo ;-)
Zacząć od najprostszego ale co jakiś czas podglądając lepsze rozwiązania.
MGraphics
Powiedzmy sobie szczeże, że aby napisać wartościowego CMS-a trzeba mieć naprawde duże zaplecze informacji z dziedziny programowania.
Niby wszystkie projekty satysfakcjonują programistów którzy je napisali, ale jedna osba i POWAZNY CMS jak dla mnie jest nie możliwe.

Pozdrawiam
!*!
Cytat(MGraphics @ 6.03.2012, 12:59:38 ) *
Niby wszystkie projekty satysfakcjonują programistów którzy je napisali, ale jedna osba i POWAZNY CMS jak dla mnie jest nie możliwe.


Niby dlaczego nie? Zresztą, pokaż mi poważny CMS, to tak jakbyś chciał udowodnić istnienie smoków. Ilu programistów, tyle opinii o jakimś kodzie, dlatego powstają własne rozwiązania. A ilość programistów nie ma znaczenia.
MGraphics
Cytat(!*! @ 6.03.2012, 13:25:14 ) *
Niby dlaczego nie? Zresztą, pokaż mi poważny CMS, to tak jakbyś chciał udowodnić istnienie smoków. Ilu programistów, tyle opinii o jakimś kodzie, dlatego powstają własne rozwiązania. A ilość programistów nie ma znaczenia.


W mojej wypowiedzi szczególną uwagę zwracam na wydajność, poprawność, bezpieczeństwo. Mało jest programistów, którzy świadomie kładom na to nacisk.
!*!
Cytat(MGraphics @ 6.03.2012, 15:39:31 ) *
W mojej wypowiedzi szczególną uwagę zwracam na wydajność, poprawność, bezpieczeństwo. Mało jest programistów, którzy świadomie kładom na to nacisk.


To już jest zupełnie inna para kaloszy. Prawda to że samemu ciężko jest rozważyć wiele możliwości (bo ile można gadać do siebie i bazgrać na kartce;)), to nie oznacza że nie jest to do zrobienia. Jednak osoby które pytają o coś na forum, wątpię żeby rzucały się od razu do pisania całego zaplecza jakie udostępniają niektóre FW. Bezpieczeństwo przyjdzie z czasem, choćby podczas pisania takiego CMSa.
seba199696
Czyli mogę moduły zrobić tak?

w pliku index.php

  1. include("xxxxx.php");
  2. $module = 'xxxxx.tpl';
  3.  
  4. $smarty->assign('namemodule',$module);
  5. $smarty->display('index.tpl');


i w pliku index.tpl

  1. {include file=$namemodule}
adbacz
Niedawno sam zaczałem pisać CMS. Z założenia miałbyć pochodna Joomla, ale bardziej rozudowaną z programistycznego punktu widzenia. Chodziło o to, zeby można było zewrzeć w systemie duzo komponentów i modułów. Żeby ich pisanie pod FW tego CMSa było przyjemne i sprowadzało się do pisania kontrolerów, modeli i widoków. No i tak tez to działa. Nie musimy wiedziec nic na temat działania wnetrza aplikacji, piszemy to co chcemy i (powinno) działa.

Ja moduły rozwiązałem tak, że są to pojedyńcze klasy PHP (oczywiście współgrające z klasą językową), które sa wywoływane w danym momencie, podczas renderowania widoku. Czyli, klasa GlobalVariables posiada metogę modulePosition($name), gdzie $name to nazwa pozycji, i podczas renderowania, w miejsca gdzie zostanie wywołana ta metoda, zostaną wstrzyknięce dane, które zwróci dany moduł.

Oczywiście jeszcze do tego wszystkiego jest zaprzęgnięta baza danych (tworzenie miliona modułów z udziałem jednej klasy [pliku]), no i (przynajmniej u mnie tak jest), instancja klasy modułu tworzona jest raz, ale gdy powiedzmy w DB znajduje się 5 takich samych modułów, 5 razy jest uruchamiany moduł z innymi paramertami. On już sobie tam robi wszystko co chce, aplikacja czeka tylko, aż on zwróci stringa. Wsio.. wink.gif
seba199696
Cytat(seba199696 @ 6.03.2012, 17:48:46 ) *
Czyli mogę moduły zrobić tak?

w pliku index.php

  1. include("xxxxx.php");
  2. $module = 'xxxxx.tpl';
  3.  
  4. $smarty->assign('namemodule',$module);
  5. $smarty->display('index.tpl');


i w pliku index.tpl

  1. {include file=$namemodule}


mogę to tak zrobić?
PiotrekM
Cytat(seba199696 @ 6.03.2012, 21:31:52 ) *
mogę to tak zrobić?

jeżeli tego pragniesz z całego serca, to owszem smile.gif
seba199696
hahah dzięki smile.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.