Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Gry via www, a klasy
klima06
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


Witam!
Obecnie pracuję nad dość zaawansowaną grą internetową przez przeglądarkę. Piszę ją wykorzystując HTML, PHP, AJAX. Obecnie dopiero skończyłem ok. 20% gry i zacząłem się gubić we własnym kodzie. Chcę podejść do tej gry dość profesjonalnie, dlatego zacząłem uczyć się jak tworzy się klasy w php. Chcę wykorzystać trochę napisanego kodu i utworzyć nową wersje gry przy wykorzystaniu klas. Czy klasy przy takiej grze to dobry pomysł? Macie może jakieś rady związane z grami via www? Wszystkie dane będę przechowywać w bazie MySQL. Dla każdego elementu gry powinienem stworzyć oddzielną klasę?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
gac3k
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 8
Dołączył: 28.07.2009

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


Jak dla mnie obiektowe podejście to w takim wypadku jedyne podejście. Natomiast sam fakt nauczenia się obiektów-ki niestety nie uczyni twojej aplikacji profesjonalną, co więcej może przynieść w twoim przypadku więcej problemów niż pożytku. Zacznij od czegoś prostego klasa listująca katalog, klasa zarządzająca użytkownikami, czy do obsługi bazy danych. Później poczytaj o wzorcach projektowych, zastanów się nad użyciem jakiegoś frameworka. I przede wszystkim przemyśl wszystko jeszcze raz. Żeby za miesiąc znów nie zaczynać od nowa.
Go to the top of the page
+Quote Post
ShadowD
post
Post #3





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Przejdź na framweork proponuję zend'a. Próbowałem bez fw napisać coś ogromnego kilka razy, za każdym razem zaczynałem od zera - bo coś się dało lepiej napisać lub trzeba było przenieść, a teraz fw każe mi się trzymać jakiejś konwencji i to robię, za pierwszym razem przepisałem cms'a i poszło, dodatkowo powiem, że jestem zadowolony jak nigdy :-)
Go to the top of the page
+Quote Post
klima06
post
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


Obecnie na studiach mam programowanie obiektowe ale w Javie i myślę jakby zastosować programowanie obiektowe w php. Dzięki za wszystkie rady, zabieram się za lekturę o Framework'ach (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
LSM
post
Post #5





Grupa: Zarejestrowani
Postów: 64
Pomógł: 6
Dołączył: 20.03.2011
Skąd: Świdnica

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


Czytaj czytaj i jeszcze raz czytaj. Mniej tego z forum, a więcej blogów i książek. Poświęc na samo czytanie tydzień lub dwa. Jeśli przestaniesz programować i przeczytasz przez dwa tygodnie wiele różnych informacji o OOP, wiele Ci się rozjaśni. Skup się również na refaktoryzacji. Jak przerobisz teorię - i popatrzysz na swój kod odrazu powinieneś być w stanie wyciągnąć te fragmenty, które stanowią jakąś odrębność. Spróbuj też pobawić się długopisem i kartką. Wszystko co wpadnie Ci do głowy określaj za pomocą Klas. Jeśli w grze masz Bohatera, Pojazd, Budynek, Trawe, Rzeke, Miecz, Statek kosmiczny, Planete a nawet czynność jak Poruszanie, Predkosc - zrób z nich klasy. Zobaczysz co i jaki ma sens i jak zmieni się sposób wykorzystania tych elementów tylko dlatego że opakowałeś to w nową strukturę. To tylko początek, ale zaczniesz widzieć na czym polega obiektowość. Zapoznaj się też z pojęciem "metafor" w Extreme Programming. Zacznij myśleć abstrakcyjnie - czyli nie myśl o funkcjach substr(), mysql_connect(), ale o wytnijLancuch() polaczMnieZbaza() ... implementacja niskopoziomowa to już pikuś polegający na zajrzeniu do dokumentacji. Naucz się myśleć w oderwaniu od języka programowania - jakiegokolwiek, nabierzesz podstaw myślenia obiektowego. (IMG:style_emoticons/default/businesssmiley.png)
Go to the top of the page
+Quote Post
jaworr
post
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 5
Dołączył: 29.09.2010

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


Zaczynać przygodę z frameworkami polecam od Kohana, Zend może na początku wydawać się zbyt skomplikowany. Zresztą są różne gusta.
Go to the top of the page
+Quote Post
Uriziel01
post
Post #7





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Klasy przy takim projekcie to jedyny słuszny tak na prawdę pomysł. Początkowo FW mogą przerażać Cie składnia jeżeli wcześniej nie pisałeś kodu OOP, więc najlepiej zacznij tworzyć proste klasy i baw się dowolnie ich konstrukcja, sprobuj napisać własny dispatcher/router, posprawdzaj czy dasz radę napisać jakąś klase obsługi requestów czy cos podobnego, tak na prawde to nie ma znaczenia co dokładnie napiszesz, to ma być tylko wdrożenie w zasady pisania OOP. Ogólnie poczatkowo nie będzie ci to raczej zbyt dobrze wychodzić, ale z biegiem czasu powinieneś nabrać wprawy, wtedy śmiało już zacznij pisać w dowolnym FW.

Ten post edytował Uriziel01 2.12.2011, 14:47:03
Go to the top of the page
+Quote Post
daniel1302
post
Post #8





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Ja wiem, z doświadczenia, że framework musi być, lecz najlepiej napisać swój. Gry viawww są specyficznym typem aplikacji(nakierowane na bardzo dużą wydajność[szczególnie te w PHP i Ajax]) to znane framewroki nastręczają tylko problemów. Ja używam własnego, najbardziej do gustu przypadł mi Zend, miałem z nim kilka problemów lecz ani razu nie musiałem pisać postu na forum, bo rozwiązania wszystkich problemów chyba zostały już podane.

Jeśli jest ci wygodnie pisać w frameworku to go używaj, jeśli nie to nie i tyle. Niektórzy próbują na siłe pisać w jakimś frameworku. Tak jak ja próbowałem na siłę uczyć sie Symfony 2 lecz wydawało mi się tak nie logiczne(szczególnie Routing), że zrobiłem sobie przerwę w PHP(2 miesiące).
Go to the top of the page
+Quote Post
LSM
post
Post #9





Grupa: Zarejestrowani
Postów: 64
Pomógł: 6
Dołączył: 20.03.2011
Skąd: Świdnica

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


Pisanie we frameworkach tych znanych mija się z celem jeśli chodzi o osiągnięcie dużej wydajności. Samo PHP nie jest zbyt wydajne, jest jeszcze coś takiego jak HipHop: hiphop - wikipedia - to co zastosowali we Facebook. Ponoć rewelacyjnie przyspiesza działanie PHP.

Ten post edytował LSM 4.12.2011, 14:25:04
Go to the top of the page
+Quote Post
IceManSpy
post
Post #10





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Na ten moment nie martwiłbym się wydajnością. Jeśli gra zdobędzie popularność to można myśleć o optymalizacji kodu. Z tego co mi się wydaje, to allegro jest napisane z użyciem Symfony i jakoś daje radę(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
LSM
post
Post #11





Grupa: Zarejestrowani
Postów: 64
Pomógł: 6
Dołączył: 20.03.2011
Skąd: Świdnica

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


Napisane być i może ale niewiadomo jakie i ile mają serwerów + baz danych (IMG:style_emoticons/default/smile.gif) Jeśli więc idzie o tą gre - zacząłbym od podstaw, potem przepisanie gry może być problematyczne ale nie musi - wsio zależy ot jak leży i jak to zakodujesz. A jeśli chodzi o ZF vs wydajność to bym uciekał jak od ognia.

Ten post edytował LSM 4.12.2011, 14:37:01
Go to the top of the page
+Quote Post
IceManSpy
post
Post #12





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Wszystko zależy co gra ma robić, ile requestów będzie wymagać i jaka ma być docelowa ilość userów. Jeśli chce mieć ich dużo, to raczej powinien myśleć na VPSem albo dedykiem, a nie hostngiem za 5 zł miesięcznie (IMG:style_emoticons/default/smile.gif)
Ale to już decyzja piszącego.
Go to the top of the page
+Quote Post
klima06
post
Post #13





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


Wielkie dzięki dla wszystkich, którzy się wypowiedzieli w tym temacie. Od czasu napisania tego tematu sporo czytałem i na początku miałem problemy ze zrozumieniem całego modelu MVC, ale znalazłem parę angielskich artykułów na ten temat, które dobrze wyjaśniły sytuację. Samo tworzenie klas i relację miedzy nimi mam juz nieco opanowane. Postanowiłem napisać jakby swój własny framework, ponieważ chcę się jak najwięcej nauczyć.

Jak wygląda moja aplikacja obecnie:
Wszystkie połączenia przekierowuje do mojego routera, czyli index.php, który wyciąga z adresu np. www.xxxx.pl/kontroler/metoda/zmienna. Potem ten router tworzy obiekt klasy Application, w której ładowany jest pierw kontroler (kontroler jest klasą dziedziczną po Application), później model, obierane dane z modelu są i ładowane do widoku. Wszystko działa cacy jak strona jest dość łatwa, ale trafiłem na problem.

Jak zrobić rejestrację, czyli żeby dane przekazywane były w $_POST[]? Jeszcze bardziej mi się to komplikuje jak w sidebarze mam formularz do logowania się który znajduje się na wszystkich podstronach.

Trochę chaotycznie to opisałem, ale nie potrafię tego lepiej wyjaśnić (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
CuteOne
post
Post #14





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


1. Dlaczego router tworzy Application? Dla każdego requestu masz jego osobną klasę? Jeżeli nie to Router powinien być osobną klasą utworzoną wewnątrz App. (lub gdzieś dalej (IMG:style_emoticons/default/smile.gif) )
2. Application powinien być singletonem (znaczy to tyle, że powinna istnieć jego jedna instancja) - nie ma sensu dziedziczyć (czyt. powtórnie inicjować) tego wszystkiego co zawiera.
3. Poczytaj o danych zawartych w tablicy $_SERVER i REQUEST_URI - na pewno ci się przyda (IMG:style_emoticons/default/smile.gif)

"Jeszcze bardziej mi się to komplikuje jak w sidebarze mam formularz do logowania się który znajduje się na wszystkich podstronach."
A dokładnie to w czym problem?

Jak na początkującego dobrze Ci idzie (IMG:style_emoticons/default/smile.gif) oby tak dalej.

ps. warto czasem rzucić okiem na gotowe rozwiązania (nie wymyślać koła na nowo) np. Kohana, Zend, CI
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 06:28