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: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Ok, peace (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Rzeczywiście - "trochę" sie uniosłem...
Co prawda nadal uważam, że zmiany które pojawiły się w php5 były bardzo potrzebne, i że baaaardzo ułatwiły programowanie, szczególnie bardziej złożonych projektów. Z tego powodu nie przeszkadza mi to, że zaczerpnięte jest to z Javy. W końcu dobre pomysły warto zapożyczać. (o ile jeszcze nie są opatentowane (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) Choć przyznam szczerze, że nie zawsze tak uważałem. Swojego czasu miałem bardzo dużo wątpliwości co do sensowności wprowadzenia np. ograniczania dostępności atrybutów w obiektach, do php. Po co pisać private, jeśli i tak każdy może (z uwagi na to, że bibliotka nie jest kompilowana) dowolnie ją zmodyfikować, i ingerować w to co tylko ma ochotę. A z drugiej strony - jeśli chciałem by jakaś metoda czy atrybut był "prywatny" to przecież wystarczyło dodać odpowiedni komentarz. Jednak wraz z rozpoczęciem pracy nad kilkoma większymi projektami pisanymi konkretnie pod php5 szybko zmieniłem te zdanie. W końcu bardzo ułatwiło to debugowanie skryptów. Wczesniej nie miałem możłiwości prostego sprawdzenia, czy którakolwiek z klas przez przypadek nie korzysta czasem z danego atrybutu. Jasne - można ograniczyć się tylko do udostępniania interfejsu zbudowanego z meod, ale nawet wtedy, przy wieloktrotnym dziedziczeniu - łatwo stracić kontorlę nad tym, gdzie co jest wykorzystywane. I wtedy przekonałem się, że wystarczy dodać banalne słowo private, i odpalić serię testów (tak - XP też jest niezatąpione (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) by wykryć wszelkie konfliktowe miejsca. O ile to podnosi szybkość pisania i jego bezpieczeństwo - chyba niekogo nie trzeba przekonywać. Podobnie jest z innymi nowościami. static umożliwiło w końcu zrezygnowanie z używania globali. Kod automatycznie stał się bardziej przejżysty. Przesyłanie obiektów zawsze przez referencję - o ile wygodniejsze stało się pisanie. Możliwość kontrolowania typu przesyłanego przez parametr obiektu (bez bagażu problemów płynących z wymuszonego rzutowania typów). To wszystko są zmiany, które, przynajmniej jak dla mnie, czynią pisanie w php znacznie bardziej intuicyjne i sprawne. Pozwoio mi to na porwanie się na projekty, których wcześniej nie podjąłbym się raczej w tym języku, w wersji 4. (Nie należę bowiem do ludzi, którzy potrafią kompilować programy na kartce, i wykrywać wszystkie pojawiające się błędy. Bardzo żałuję, ale tego poziomu perfekcyjności chyba raczej nigdy nie osiągnę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ) Dlatego bardzo cenię wszystkie mechanizmy, które pomagają mi w tym, bym, nawet mimo swojej znacznej omylności, mógł pisać dokłądniej. Faktem jednak jest, że boli mnie to, że rzeczy, które w Perlu, nie mówiąc już o C++, można zrobić bardzo wydajnie, w php zajmują masę czasu. Chciałoby się móc to zmienić. I choć akceleratory trochę zmieniają tę sytuację, jednak tu potrzebny by był skok wydajnościowy nie o 300-500% (a gdzieś tyle dają akceleratory) a o kilkanaście- kilkadziesiąt razy. Tego jednak chyba od twórców php wymagać nie możemy. A szkoda... |
|
|
|
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
Krolik Cytat(hawk @ 2004-09-29 08:19:04)Ja np najpie... 17.11.2004, 10:11:44
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 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 02:12 |