Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak paradygmat programowania dla php?
xmarcin
post 29.09.2008, 15:36:30
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.
Go to the top of the page
+Quote Post
blooregard
post 29.09.2008, 15:54:31
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...
Go to the top of the page
+Quote Post
LBO
post 29.09.2008, 16:09:06
Post #3





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(blooregard @ 29.09.2008, 16:54:31 ) *
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
Go to the top of the page
+Quote Post
WaterIntelligenc...
post 29.09.2008, 16:20:53
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 smile.gif


--------------------
Go to the top of the page
+Quote Post
xmarcin
post 29.09.2008, 17:00:05
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
Go to the top of the page
+Quote Post
LBO
post 29.09.2008, 17:13:54
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.
Go to the top of the page
+Quote Post
xmarcin
post 29.09.2008, 17:35:40
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?
Go to the top of the page
+Quote Post
mike
post 29.09.2008, 17:40:05
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(xmarcin @ 29.09.2008, 18:35:40 ) *
wracajac do pytania - co mozna zrobic, zeby latwiej sie pisalo w php4?
Nie pisać.
Nie ma innej rady. Należy zapomnieć, spalić i zakopać.

PHP4 nie jest i nie będzie wspierane i rozwijane. Tkwienie w nim powoduje straty. Archeologia.
Go to the top of the page
+Quote Post
WaterIntelligenc...
post 29.09.2008, 18:10:33
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.


--------------------
Go to the top of the page
+Quote Post
Zyx
post 29.09.2008, 18:41:52
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
Go to the top of the page
+Quote Post
l0ud
post 29.09.2008, 19:02:04
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 smile.gif


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
blooregard
post 29.09.2008, 20:35:14
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...
Go to the top of the page
+Quote Post
xmarcin
post 29.09.2008, 20:54:19
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' tongue.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.05.2025 - 05:22