![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Nie wiem czy to pytanie bardziej nie pasuje do przedszkola, ale zaryzykuje... Mam problem... Pisze w php od dluzeszego czasu, ale to raczej amatorka - moja wiedza to raczej php4 i ostatnio cos piszac, wkurzylem sie na pisanie strukturalne, bo mozna sie pochlastac... Serwery na ktorych stoja moje skrypty to w 6 na 8 przypadkach php4. Pytanie jest takie - na jaki sposob pisania sie najlepiej przesiasc? Nie pisalem jeszcze obiektowo w php, choc mialem z nim stycznosc. Jesli chodzi o php4, podobno obiektowe kuleje (choc nie wiem czy to prawda), wiec co? Na funkcjach? Moze jakis framework? Moze nie bawic sie w php4, tylko uczyc sie pod php5, choc slyszalem o php6. W php5 - tak samo - obiektowo? na frameworkach? cos innego? Moze ktos napotkal w internecie wskazowki, ksiazki, jak pisac strone? W ksiazkach do tej pory nie znalazlem przydatnych wytycznych i raczej robie to 'na czuja' - niby dziala, ale moze da sie lepiej, prosciej, wydajniej... Przyznam ze staram sie napisac kawalek cmsa, na ktorym bede mogl dalej oprzec swoje strony. |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Nie ma przeszkód, aby programować obiektowo w php4 i raczej daj sobie spokój z programowaniem strukturalnym.
Przejrzyj sobie materiały na php.net odnoścnie programowania obiektowego w php4. A Twoje pytanie odnośnie programowania "na funkcjach" : nie ma czegoś takiego. Funkcje to wydzielone fragmenty kodu wykonujące określone operacje. Funkcjami są również metody obiektów w programowaniu obiektowym. A przecież OOP to nie programowanie "na funkcjach". Frameworki z kolei zostaw na potem. Bez dogłębnego poznania OOP nie masz się co porywać na frameworki, bo są one w 100% oparte na klasach (do tego dochodzi jeszcze pojęcie architektury MVC, czyli model-view-controller). Moja rada: - poczytaj o OOP ogólnie (koncepcja klas, obiektów, metod, dziedziczenia itp.) - bez podstaw nigdy nie załapiesz, o co w tym "biega", a sądząc po Twoim poście, nie miałeś z tym styczności - poznaj elementy OOP w php - definicję klas i ich właściwości oraz metod, tworzenie obiektów, wywoływanie metod obiektów - napisz coś bazującego wyłącznie na klasach, a sam zobaczysz, że traciłeś do tej pory czas, budując aplikacje strukturalne (CMS to dobry przykłąd na zastosowanie OOP) BTW: koncepcja OOP jest obecna w wielu innych językach programowania (np.C++, Java), jeśli już raz poznasz temat, poradzisz sobie w każdym z nich pozdrawiam -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie ma przeszkód, aby programować obiektowo w php4 i raczej daj sobie spokój z programowaniem strukturalnym. Nie rób koledze krzywdy. @xmarcin zacznij od PHP5; czwórka to przeżytek; O szóstkę się nie martw bo zanim wejdzie to dużo wody w Wisle upłynie. Pozdrawiam, Alan |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 7 Pomógł: 1 Dołączył: 29.09.2008 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cześć
>na jaki sposob pisania sie najlepiej przesiasc? Na php5 i wyżej. Zrezygnuj z OOP w php4 bo jest bardzo okrojona. Wystarczy porównać: http://www.php.net/manual/pl/language.oop.php, http://www.php.net/manual/pl/language.oop5.php >Moze jakis framework? Moja rada: Zend_Framework 1.x , jest idealny. Koncepcja frameworka Zend jest dobrze zaprojektowana. Obiektowy framework. Polecam autorke o nazwisku Rebecca Wirfs-Brock . Na jej domowej stronie są darmowe artykuły z jej książek które też polecam, jest parę spolszczeń, w temacie OOP jednak w oderwaniu od języków programowania. Bo nie trzeba znać PHP żeby uczyć się projektować obiektowo. Reszta na google.pl ![]() -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
ok - czyli kierunek to szlifowanie oop na php5, a pozniej frameworki...
mam jeszcze pyt: 1. co robic na serwerach z php4, bo mam tam takie skrypty, ze az mi wstyd... ? 2. czy jest sens bawic sie w smarty? ktos mi kiedys napisal, ze lepiej wziac sie za frameworki w to miejsce (nie wiem jak w nich, ale w smartach podoba mi sie oddzielenie php od html). wlasnie na smartach do tej pory pisalem |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pytanie co złego widzisz w PHP zagnieżdżonym w HTMLu? Po to ten język został stworzony.
Z resztą szanujący się framework udostępnia integracje ze Smarty - w tym wspomniany wcześniej Zend. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
co zlego w mieszaniu php z html? w sumie to nic - nie powiedzialem ze tego nie lubie, ani nie powiedzialem ze tak nie robie.
mi osobiscie jest latwiej polapac sie w kodzie jak mam wyglad oddzielony od skryptow wracajac do pytania - co mozna zrobic, zeby latwiej sie pisalo w php4? |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 7 Pomógł: 1 Dołączył: 29.09.2008 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
> 1. co robic na serwerach z php4, bo mam tam takie skrypty, ze az mi wstyd... ?
Jeśli nie ma tego dużo, przerób na OOP w ramach ćwiczeń. Sprawdzisz OOP na samym sobie, to najlepszy sposób nauki. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Obiektówka, obiektówka i obiektówka, i tylko PHP5. O czwórce zapomnij, wyrzuć na śmietnik i nie wracaj, bo nie ma do czego.
xmarcin -> po pierwsze, nie "te Smarty", tylko "ten Smarty". To jest angielska nazwa. Ponadto tu nie chodzi o oddzielenie PHP od HTML, tylko logiki od prezentacji. Jak by na to nie patrzeć, we frameworkach też mają szablony, tylko robione w PHP. Pytanie jest, czy Tobie to odpowiada. Jeśli idzie o paradygmat, bo w końcu sam dałeś taki tytuł tematu, spójrz na to z tej strony: PHP jest językiem imperatywnym, tzn. każdą operację musisz tłumaczyć komputerowi krok po kroku, niczym debilowi. Owszem, masz sporą kontrolę, ale w ten sposób komputer w ogóle nie wie, co ty chcesz zrobić. A jeśli nie dasz komentarzy, programista czytający taki kod często również nie wie. Przy generowaniu kodu HTML potrzebnych jest kilka podstawowych operacji, z których można składać wszystko. Mnie cholera lekko bierze, jak muszę klepać caluteńki kod za każdym razem, gdy chcę daną operację wstawić do szablonu, bo PHP nie potrafi domyślić się, CO chcę osiągnąć, a i samo osadzanie PHP w mojej opinii nie jest wygodne. Systemy szablonów wprowadzające nowy język mają potencjalną przewagę, mianowicie mogą zaproponować inny paradygmat, niż imperatywny. Niestety, większość z tego nie korzysta, w tym Smarty, który jest przede wszystkim przerobieniem struktur PHP na nieco inną składnię - wystarczy popatrzeć, ile jest tematów na forum z pytaniami o dość proste rzeczy... jest coś takiego, jak programowanie deklaratywne, gdzie mówisz, CO chcesz zrobić i o resztę się nie martwisz. Dzięki zbiorowi prostych i logicznych reguł parser odpowiednio już się zajmie tym, by działało tak, jak chcesz. Moim zdaniem właśnie taki paradygmat nadaje się do szablonów... bo PHP, idąc w kierunku Javy i podobnych wynalazków, dawno przestał być językiem do takowych, a angażowanie do tego całej obiektówki i nie wiadomo czego jest przerostem formy nad treścią. Po prostu nie można mieć wszystkiego. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
przy okazji:
Cytat mi osobiscie jest latwiej polapac sie w kodzie jak mam wyglad oddzielony od skryptow Praktycznie możesz oddzielić wygląd od skryptów nie stosując żadnych dodatkowych parserów typu smarty. Kod w takich szablonach jest ograniczony do minimum - no chyba że przeszkadza Ci gdzieniegdzie linia <?php echo $this->var; ?> . Zainteresuj się frameworkiem kohana, tam jest to w taki prosty sposób zbudowane ![]() -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#12
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Widzę, że Koledzy od razu chcą rzucić autora postu na głęboką wodę - frameworki, Smarty itp.
Uwaga na temat php4 jest słuszna, w miarę mozliwości należy tworzyć wszystko w php5. Ja tylko zasugerowałem, że w php4 programowanie OOP jest jak najbardziej możliwe, choć mocno ograniczone w stosunku do tego, co oferuje php5. A frameworki typu Zend, czy szablony typu Smarty i jego bazowa klasa Smarty.class.php to obiektowość w najczystszej postaci i bez dobrego pojęcia o koncepcji OOP nie proponowałbym od razu nauki Zenda (w przypadku Smarty sytuacja jest nieco inna, ale też do zrozumienia działania tego systemu szablonów przydałoby się pojęcie o OOP, choćby po to, by nie robić wielkich oczu na widok zapisu typu $smarty_object->assign ) Popieram również pogląd, że system szablonów służy do oddzielenia LOGIKI aplikacji od WYGLĄDU, a nie do oddzielenia kodu php od HTML. Jak ktos słusznie zauważył - do tego php został stworzony, by "wplatać" go w znaczniki HTML w celu wygenerowania dynamicznej treści. Nie zapominajmy, że i tak finalnym wynikiem działania php jest jeden plik zawierający czysty HTML wysyłany przez serwer do przeglądarki (a wszelkie podziały na szablony i logikę, frameworki itp. mają za zadanie jedynie uprościc proces TWORZENIA aplikacji, bez wpływu na efekt finalny ). Czym jest Smarty, jeśli nie właśnie systemem upraszczającym osadzanie kodu php w HTML? Przecież zapis {$zmienna} czy {foreach from=$tablica} to i tak jedynie inny zapis php-owych $zmienna czy też pętli foreach() . pozdrawiam -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Zyx
z angielskiego, to predzej 'to smarty' - sam widzisz ze jednak angielski czasami gryzie sie z polskim, ale przyznaje - 'samartów' to juz przesada z mojej strony. nie wyslawiam sie fachowo, ale racja - piszac 'oddzielenie php od html' mialem na mysli 'oddzielenie logiki od prezentacji'. w koncu to nie musi byc php, ani html... Cytat PHP jest językiem imperatywnym widze ze umiesz nazwac cos, na temat czego nie umiem sie wyslowic... generalnie uczylem sie dość pobieżnie php (z manuala) i pewnie taki jest tego efekt jak kazdy, szukam sposobu na opanowanie kodu i pytam jak za to sie zabrac, a raczej tutaj 'troche' ludzi z doswiadczeniem jest... nie uwazam ze smarty to cos 'super-niezastapionego' bo w paru przypadkach szablony okazaly sie malo przyjazne. w moim przypadku, to po prostu czas popatrzec jak to jest we frameworkach, bo po tym co tutaj czytam czuje sie troche podbudowany i wiem co dalej robic. gorsza sprawa, ze bedzie to pewnie kawalek chleba do zgryzienia... @l0ud znam, ale jedak nie przemawia to do mnie... bede myslalal o oop i framerorkach, tak jak mi radza powyzej. jesli juz, to 'kochany' ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.05.2025 - 05:22 |