Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] programowanie obiektowe, która opcja jest prawidłowa, Używać global czy w każdej funkcji tworzyć instancję klasy?
grzemach
post
Post #1





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


Witam,
Ostatnio nasunęło mi się pytanie odnośnie programowania obiektowego w PHP (a i chyba ogólnie).

Załóżmy że mamy plik index.php

  1. $pages = new Pages();
  2. $pages->funkcja1();
  3. $pages->funckja2();


Dodatkowo jest klasa z formularzami:
  1. class Forms{
  2. public function submit(){}
  3. public function inputText(){}
  4. }


Teraz w funkcji1 chcemy stworzyć jeden formularz i w funkcji2 chcemy stworzyć jeden formularz.
czyli
  1. class Pages{
  2. public function1(){
  3. $form = new Forms();
  4. // lecimy dalej z formularzem i treścią
  5. }
  6. public function2(){
  7. $form = new Forms();
  8. // dalej treści
  9. }
  10. }



Można zrobić też w drugi sposób tzn index.php by wyglądał
  1. $pages = new Pages();
  2. $form = new Forms();
  3. $pages->funkcja1();
  4. $pages->funckja2();


a Pages:
  1. class Pages{
  2. public function1(){
  3. global $form;
  4. // lecimy dalej z formularzem i treścią
  5. }
  6. public function2(){
  7. global $form;
  8. // dalej treści
  9. }
  10. }


Przy czym z użytkowego punktu widzenia nie ma to żadnego znaczenia. W tej klasie nie ma żadnej zmiennej statycznej, którą można by wymieniać między poszczególnymi funkcjami. Chciałem się zapytać która z tych opcji jest właściwa i która należało by używać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grzemach
post
Post #2





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


singletonu używam do baz danych (logera itp), tutaj też jest możliwe aby go zastosować, w sumie to można by go zastosować przy każdej z klas (IMG:style_emoticons/default/smile.gif) .

Właśnie chciałem zobaczyć jak to robicie Wy i jakie są Wasze propozycje.

Jeśli mam w dwóch miejscach użyć tej samej zmiennej (są od siebie zależne) to musi być to ta sama klasa, w tym klasach o których mi się rozchodzi, nie ma takiej potrzeby są to tylko generatory tabel, formularzy, rzeczy od siebie nie zależnych.

Jeśli chodzi o przekazywanie obiektu i singleton, to która z nich jest szybsza? bo jeśli chodzi o miejsce w pamięci przy przetwarzaniu skryptu, raczej będzie takie samo.

Ten post edytował grzemach 19.08.2009, 11:03:25
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 03:49