ďťż

framework czy autorski cms

       

Podstrony


telcocafe

Jakie zastosowanie jest lepsze do napisania CMSa do obsługi strony, czy pisać wszystko od podstaw samemu czy skorzystać z frameworków typu Zend itd. Jakie są wady/zalety obu zastosowań ?



W CMS-ie ograniczasz się do modułów (chociaż możesz tworzyć swoje i modyfikować istniejące). Pisanie od początku strony jest dobre dla osób, które cenią dokładność i nie lubią wykorzystywać cudzej pracy, tudzież nic im nie odpowiada z istniejących rozwiązań. Ale taka praca zajmuje dużo czasu, można też napisać własnego frameworka, by przyspieszyć pracę. Frameworki są dobre, gdy chcesz szybko stworzyć stronę wykorzystując obiektowy PHP.

Dodam tylko, że aby zrobić własnego CMSa trzeba dobrze znać PHP. Chociaż z drugiej strony to zależy od tego co robisz i dla kogo. Pisząc własny system, potem za niego odpowiadasz (błędy, luki w zabezpieczeniach, wydajność).

Niemniej jednak pisanie czegoś takiego od zera dostarcza naprawdę wielkiej frajdy :) I przede wszystkim można się wiele nauczyć:)


Dodam tylko, że aby zrobić własnego CMSa trzeba dobrze znać PHP. Chociaż z drugiej strony to zależy od tego co robisz i dla kogo. Pisząc własny system, potem za niego odpowiadasz (błędy, luki w zabezpieczeniach, wydajność).

Niemniej jednak pisanie czegoś takiego od zera dostarcza naprawdę wielkiej frajdy :) I przede wszystkim można się wiele nauczyć:)

I potem jest niesamowity komfort gdy trzeba coś więcej pozmieniać bo raczej w innych systemach to trudno a wręcz prawie niemożliwe. Przykładem jest EzPublish. Edycja na poziomie php jest więlką katorgą.




Niemniej jednak pisanie czegoś takiego od zera dostarcza naprawdę wielkiej frajdy :) I przede wszystkim można się wiele nauczyć:)

Jak będzie szukał dobrej pracy jako programista to zaletą będzie dobra znajomość jednego z popularnych frameworków, a nie napisanie jakiegoś tam mini CMSa ;) Pisząc od zera można nauczyć się wiele, lecz także nauczyć się "niewłaściwego" programowania.

No właśnie "problem" polega na tym, że np nie piszę mini cmsa tylko już od jakiegoś czasu piszę swój własny duży system i nie jest lamerski tylko posiada rozwiązania, które są wykorzystane w szanowanych się systemach. Aczkolwiek poznanie innych frameworków jest ważne lecz kiedy pracodawca zobaczy, że masz coś dobrego i własnego to chyba o wiele lepiej bedzie właśnie twoje rozwiązanie wykorzystać.


Jak będzie szukał dobrej pracy jako programista to zaletą będzie dobra znajomość jednego z popularnych frameworków, a nie napisanie jakiegoś tam mini CMSa ;) Pisząc od zera można nauczyć się wiele, lecz także nauczyć się "niewłaściwego" programowania.
A czy gdzieś napisałem, że należy omijać frameworki? Można sobie napisać coś a'la CMS, ale niekoniecznie trzeba go 'upubliczniać' :)

Swoją drogą każdego frameworka też ktoś kiedyś musiał napisać :)

BTW. co rozumiesz pod pojęciem "niewłaściwe programowanie" ?


BTW. co rozumiesz pod pojęciem "niewłaściwe programowanie" ?
Przemieszanie kodu PHP z HTMLem, stosowanie jakiś plików tekstowych (unikanie "znajomości" z bazami danych), "sklejanie" różnych skrypcików ze sobą, stosowanie archaicznego kodu. Wystarczy stara książka :)


"sklejanie" różnych skrypcików ze sobą, (..) Wystarczy stara książka :)
I lenistwo :)

1 ale to naprawdę bardzo ważna rzeczą jest przejrzenie manuala php. Jest on zrobiony bardzo dobrze. Zapoznanie sie chociaż z większą listą funkcji pozwoli poznać możliwości php. Oczywiscie nie musimy tych wszystkich funkcji pamietac bo od tego jest manual. Ale mnie osobiście STRASZNIE denerwuje jak ludzie zadają (nawet na tym forum) pytania jak zrobić, to tamto (może jeszcze drewniane gumki) a większość o co pytaja jest odpowiedź w manualu. A wracając może wypiszemy listę wad i zalet

Wady frameworka:
- Nie zawsze ma to co dokładnie chcemy
- Konieczność poznania przed edycją kodu php i nie tylko
- Problemy z kompatybilnością różnych modułów z różnymi wersjami cms
- Czasem jest zbyt dużym "kombajnem" nieproporcjonalnym do potrzeb

Zalety:
- Szybkie i często bezbłędne tworzenie stron
- bezpieczeństwo aplikacji (chociaż tutaj czasem można negocjować)

Wady własnego cms:
(tutaj zależy to co napiszemy w swoim systemie ale ja skupie sie na innych szczegółach)
- do napisania dobrego systemu potrzeba sporo czasu
- problemy z bezpieczeństwem
- zabawa z konfiguracją php.ini - Baaardzo często się zdarza, że nasz system na tym serwerze chodzi a na innym nie i czasem trzeba się pobawić

Zalety:
- Własna frajda
- Zwiększone możliwości edycji
- Często szybkość działania (zależy od jakości systemu)
- Prestiż :) Jeżeli napiszesz coś bardzo dobrego i upublicznisz :)

To zależy od tego, ile mamy czasu i w jakim celu tworzymy CMS-a. Gdy piszemy go od podstaw:
- znamy doskonale jego budowę
- wiemy, co potrafi, a co musimy poprawić / podciągnąć
- modyfikacja czegokolwiek MOŻE zająć znacznie mniej czasu (co wynika z powyższych punktów)
- uczymy się na własnych sukcesach i błędach, uczymy się szczegółów PHP, rozwiązywania problemów z implementacją
- sami decydujemy o zaletach, wadach, odbiorcach, celu i przeznaczeniu projektu...

Oczywiście potem mamy satysfakcję z napisania CMS-a od podstaw. To nie dotyczy sytuacji, kiedy musimy szybko przygotować jakiś system wg potrzeb klienta (chyba, że mamy własnego frameworka), lecz zazw. praktyki PHP w zakresie naszego hobby.
Użytkownik Ferrari edytował ten post 14 styczeń 2008, 01:28
czy ja wiem. Pisałem tak z trzy własne CMSy - kodziło się, dodawało funkcjonalności było fajnie. Ale wystarczyła chwila czasu by dojść do wniosku - ale to jest skopane ;) i od nowa. Od dłuższej chwili siedzę we frameworkach - Django i w chwili obecnej pracuję jako programista Django/Python właśnie dzięki znajomości owego narzędzia, a nie dzięki robieniu własnych CMSów od zera. Jako ciekawy przykład - mam na stronie aplikację forum, kod jest publicznie dostępny i ta aplikacja została wykorzystana w zupełnie oddzielnych projektach: pierwszy, a nawet coś takiego - nie do pomyślenia przy moich "od zera" "projektach". Dobrze napisana aplikacja może być praktycznie z marszu przerzucana do innych projektów :) i dalej modyfikowana pod własne potrzeby - czegoś takiego standardowe CMSy nie oferują... a drugi przykład: mamy użytkowników posiadających galerię, do których przypisane są fotki. Jak pobrać fotki danego użytkownika (fotki nie mają tej informacji) - potęga ORMa (w tym przypadku django) załatwia sprawię w postaci wiersza:
fotki = Photo.objects.filter(gallery__user=jakiśtamUser)
Gdzie gallery to pole określające galerę zdjęcia, a "user" to pole w tabeli galerii określające użytkownika ^_^ do tego zadziała to z każdą wspieraną przez ORM bazą danych, do tego wydajnie.

PS. chcecie zaszaleć z PHP, to zamiast CMSa od zera - http://www.phpclasses.org/ - dodać własną ciekawą klasę, funkcję, skrypt robiącą coś przydatnego, a czego nie ma za bardzo. Co miesiąc dla dodanych klas jest konkurs innowacji - można złapać darmową książkę czy subskrypcję płatnych pism PHP w PDF. Swego czasu wyciągnąłem parę książek (PHP 5 unleashed, twisted, python cookbook :D i coś jeszcze) klasami - wraper-klasa PHP na przydatne "widżety" PHP - 2 różne, jedna konwertująca ODT do XHTMLa i jeszcze jakieś ;) Gorąco zachęcam do próbowania własnych sił.
Użytkownik Riklaunim edytował ten post 14 styczeń 2008, 21:09
Riklaunim, nie można się z Tobą nie zgodzić, ale pisząc w ten sposób zniechęcasz Wojtka. IMO, jeśli chce, niech pisze swój CMS, podejrzewam że wykorzysta go tylko dla siebie na swojej stronie i nie będzie upubliczniał. A może nawet i to nie.

Jeśli ktoś chce na poważnie zając się kodzeniem, to z pewnością sam prędzej czy później dostrzeże frameworki i inne gotowe rozwiązania.

Proponuję poznać kilka frameworków (symfony, code igniter, agavi, prado, cake php, itp itd) a jak zrozumiesz że to przerost formy nad treścią, napisanie frameworka który będzie przydatny TOBIE, w którym TOBIE się będzie wydajnie i wygodnie pracowało. Pełna obiektowość, separacja frameworka (i ichnich bibliotek - nie za dużo, nie potrzebujesz wszystkiego co mają wszystkie frameworki) oraz aplikacji (kontroler + widok + model), oczywista separacja aplikacji od wyniku (html, rss, dokumenty pdf, itp itd), niezależność bazy danych od aplikacji (niee, nie klasa która jest wrapperem na mysql_query, takich widziałem setki :D) i parę innych udogodnień. Najtrudniej zrobić dobry routing, potem idzie z górki :)
Jak napiszesz już taki framework, to potem pisanie CMS to jest 2-3 dni pracy.
ps.
$query = $this->db->Query(); $query->Select('tabela1', array('pole1', 'pole2', 'pole3'), array('pole1=tabela2.pole2')); $query->Select('tabela2', array('pole1', 'pole2', 'pole3')); $result = $this->db->Execute($query->Build()); while ($row = $result->fetch_object()) { echo $row->pole2; }
Generuje (mysql)
SELECT tabela1.pole1, tabela1.pole2, tabela1.pole3, tabela2.pole1, tabela2.pole2, tabela2.pole3 FROM tabela1, tabela2 WHERE tabela1.pole1=tabela2.pole2;
Jak się podoba? Może warto o czymś takim pomyśleć, to wybitnie ułatwia pracę :-)

Dla zabawy nie warto się zmuszać do pisania w nieraz dziwnym stylu, narzuconym przez framework. Czuję się skrzywdzony przez prado, którego paczka to 56 mb :P
Jak pracujemy dla kogoś czy u kogoś, to i tak nie mamy wielkiego wyboru, piszemy tam gdzie trzeba. Można się nauczyć popularnych frameworków, nawet wypada, ale nie trzeba ich wszędzie używać.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.