Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 25.11.2003 Skąd: Białe Błota Ostrzeżenie: (0%)
|
Tak wlasnie siedze i mysle sobie, bo chce przepisac swoja aplikacje z GOD classes na prawdziwe OOP. Chce aby kazda klasa reprezentowala jeden typ danych, np. klasa Articles ma metody tworzace obiekty klasy Article, ktora posiada z kolei metody zwracajace dane danego artykulu. Ale jest problem... Artykuly w bazie danych polaczone sa relacyjnie z Article_Type, oraz Category. I problem w tym, ze klasa Article_Type to tylko article_type z DB, Category to tylko category z DB. W templejcie potrzebuje wyswietlic artykuly wraz z ich kategoria oraz typem (np. test, recenzja czy cokolwiek innego). I nie wiem, jak mam polaczyc te obiekty. Moge oczywiscie zrobic wywolanie obiektu Category z Article, ale to za kazdym wyswietleniem danych tworzy jedno zapytanie do bazy o nazwe kategorii. Ma ktos jakis pomysl?
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.11.2004 Ostrzeżenie: (0%)
|
Cytat(hawk @ 2004-09-29 08:19:04) Ja np najpierw nauczyłem się obiektowości w C++, a potem zacząłem pisać w C. I nigdy nie miałem problemów z OOP. Za to miałem problemy z organizacją modułów w C (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) . To witaj w klubie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Tez zaczynalem od C++, aczkolwiek jeszcze wczesniej znalem Object Pascala. Zgadzam sie z przedmowcami, ze OOP swietnie sluzy do budowy srednich i wiekszych aplikacji. Do malych sprawdza sie tak samo dobrze, tyle ze w innych jezykach, bo jest bardziej intuicjne. Problem z php jest taki, ze skrypt wykonuje sie raz, a pozniej wszystko gubi i trzeba zapisywac albo w bazie, albo w sesjach. I to "psuje obiektowosc". Nie da sie zrobic takich rzeczy jak np. w Javie, ze piszesz sobie klase, przy kazdym polu dajesz @hibernate.property column="nazwa odp. kolumny w bazie danych" i pozniej z bazy wydobywasz od razy gotowy obiekt, nie bawisz sie w jakies SQLe itp. Zmieniasz jedno pole, dajesz update i masz wszystko ladnie odswiezone w bazie. To jest wlasnie Aspect Oriented Programming. Czy chociazby programowanie zdarzeniowe jak w C++ Builderze czy ASP.NET. Bez OOP ani rusz. Chcialem napisac kiedys swoj wlasny framework obiektowy do budowy aplikacji w php, ale w koncu sie wycofalem i robie go w C++. Dzieki temu wiele udogodnien mam niemal za darmo przy duzo wiekszej wydajnosci i na dodatek moge robic rzeczy, ktorych w php nigdy by sie nie dalo dobrze zrealizowac: - zabezpieczenie kodu zrodlowego - niezaleznosc od interpretera i bibliotek - mozna przeciez linkowac statycznie - "trwałosc" obiektow - wskazniki (jak jest trwalosc, to wskazniki nagle staja sie b. potrzebne) - dobry odsmiecacz (czymze jest marne zliczanie referencji php) - wielodziedziczenie (glownie do wyjatkow) - wielowatkowosc (no do apl. internetowych moze mniej przydatne, ale kto wie) - rozne zaawansowane struktury danych (STL) - tysiace dobrych bibliotek dla roznych zastosowan w tym do aplikacji rozproszonych (CORBA, RMI, RPC) i rownoleglych (PVM). - lepsza integracja z innymi programami, w tym syst. baz danych (nie spotkalem systemu, ktory by nie dawal API do C) - setki gotowych narzedzi takich jak kompilatory, debuggery, IDE itd. Jedyne czego brakuje to paruset klas dla ulatwienia pisania aplikacji WWW, ale wlasnie nad tym pracuje. Chyba latwiej dorobic takie klasy niz probowac implementowac wszystko co na gorze w php? Ale moze sie myle. Z drugiej strony troche trudniej uzyskac dobra przenosnosc, ale jest to mozliwe i trud sie oplaca. Zreszta przenosnosc wcale nie jest tak wazna po stronie serwera. Jednym slowem OOP rzadzi, tyle ze nie w php. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (( |
|
|
|
LoPMX Object Oriented Programming - i jego pułapki. 27.11.2003, 18:17:31
bumelang Swojego czasu trochę nad tym z kumplem debatowaliś... 30.11.2003, 19:57:58
halfik mnie z kolei interesuje ciut inne zagadnienie: czy... 5.12.2003, 08:49:57
LukaszLenart Pomysle, ze masz system ktory generuje jakies rapo... 6.12.2003, 23:42:15
halfik tak, wiem. znam zalety programowania obiektowego, ... 7.12.2003, 12:16:55
Seth Szybsze jest programowanie strukturalne.
OOP nie ... 7.12.2003, 13:06:53
DeyV Na szczęscie te róznice są na tyle marginalne, że ... 7.12.2003, 14:22:39
LoPMX zastanawiam sie jak zdolacie zaprojektowac klasy z... 7.12.2003, 14:25:44
halfik CytatOOP nie jest natywne w php. Mimo, ze posiada ... 7.12.2003, 15:37:34
Użytkownik Programowanie obiektowe bardziej pasuje mi do porz... 7.12.2003, 16:20:16
halfik oj, jest potrzebne - jezyki obiektowe to przyszlos... 7.12.2003, 18:06:57
Użytkownik Cytatoj, jest potrzebne - jezyki obiektowe to przy... 8.12.2003, 19:38:10
Seth Pisze (ezPublish, Galaxia, Ambivalence, binaryclou... 8.12.2003, 20:00:19
halfik no ale nawet pomijajac juz duze aplikacje. wezmy p... 8.12.2003, 20:42:21
LukaszLenart Jedna rzecz to prostota zmian, a druga to mozliwos... 9.12.2003, 09:23:06
Pathfinder Witam
Swoj maly system buduje tylko na klasach. S... 30.12.2003, 04:38:43
LukaszLenart A czy mozesz udostepnic swoje rowiazanie do wgladu... 30.12.2003, 07:18:01
radziel CytatWitam
Swoj maly system buduje tylko na klasa... 30.12.2003, 09:54:54
Pathfinder CytatA czy mozesz udostepnic swoje rowiazanie do w... 30.12.2003, 13:44:35
lukaswoj Ja jestem zdecydowanie za OOP.
Zgadza się, że w PH... 2.01.2004, 23:53:19
Nalfein][WR Dokładnie. W całej rozciągłości zgadzam się z luka... 3.01.2004, 12:26:27
bumelang Cytat[WR"]Brakuje jednak tej wielowątkowości w PHP... 6.01.2004, 00:18:49
a1internet Cytatzastanawiam sie jak zdolacie zaprojektowac kl... 12.01.2004, 00:01:05
a1internet Cytatphp ma chyba za dużą narośl kompatybilności, ... 12.01.2004, 00:19:32
bumelang CytatCytatphp ma chyba za dużą narośl kompatybilno... 13.01.2004, 10:59:47
halfik CytatReausumując - doceniam rolę obiektów w tworze... 15.01.2004, 08:41:42
cagrET Cytat... upieranie sie przy strukturalnym nie jest... 15.01.2004, 20:48:41
patrycjusz CytatCytat ... upieranie sie przy strukturalnym ni... 15.01.2004, 21:57:46
cagrET Patrycjuszu nie zrozumiales o co mi chodzilo (moze... 15.01.2004, 23:19:50
trax Dobre funkcje też mogą być rozwiązaniem 7.02.2004, 12:49:40
Seth Mozna tez uzywac 286 i dyskietek zamiast tydsku, t... 8.02.2004, 22:42:39
keedy ja tez pisze swoj maly systemik na oop ;p ale wole... 28.09.2004, 01:17:59
Yarecki Cytat(Seth @ 2004-02-08 23:42:39)Pewnych rzec... 28.09.2004, 07:26:39
hawk Cytat(Yarecki @ 2004-09-28 07:26:39)Programow... 28.09.2004, 11:15:59
e-Gandalf Geez... jaka bzdura...
Jak napisal hawk: nie mozna... 28.09.2004, 14:10:04
Yarecki Wypowiedzi na forum nie muszą być obiektywne, bo n... 28.09.2004, 15:24:01
hawk Ludzie mają też problemy z programowaniem struktur... 29.09.2004, 09:19:04
kubatron Seth: Czy ten Aspect Oriented Programing (AOP) będ... 1.10.2004, 06:50:27
Bora na necie jest gdzies przyklad programow napisany a... 1.10.2004, 10:54:20
hawk 1) php a Java to jest, niestety, gigantyczna przep... 17.11.2004, 11:56:35
Krolik @hawk: wiem ze moze jestem niepoprawnym optymista,... 17.11.2004, 14:08:22
DeyV ale, do %#$^%, chłopie. Jak tak bardzo lubisz... 19.11.2004, 21:35:05
Krolik @DeyV:
Przecież ja nikogo nie odmawiam od pisania ... 20.11.2004, 10:56:55
DeyV Ok, peace Rzeczywiście - "trochę" sie u... 20.11.2004, 11:19:47 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 04:12 |