Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] [OOP]Pytanie o przekazywanie zmiennych
Forum PHP.pl > Forum > PHP
codo
Mam takie proste pytanie mam sobie obiekcik bazy:
  1. <?php
  2.  
  3. class db
  4. {
  5. var $host;
  6. var $DB;
  7. var $username;
  8. var $password;
  9.  
  10. var $OBJECTS_TABLE;
  11. var $PROVINCES_TABLE;
  12. var $CITIES_TABLE;
  13. var $USERS_TABLE;
  14. var $REG_USERS_TABLE;
  15. var $FAVOURITES_TABLE;
  16. var $SETTINGS_TABLE;
  17. var $OOTD_TABLE;
  18.  
  19. var $DISPLAYED_OBJECTS;// holds ID of objects that are already on the screen (in small boxes)
  20.  
  21. var $connection;
  22. var $current_error;
  23. ....
  24. }
  25.  
  26. ?>

Napisalem spory projekt i caly czas sie zastanawiam czy nie zmienic tego calego badziewia w define(host,'local...'); a nie przekazywac te wszystkie zmienne.
Co o tym myslicie? W ogole jaka przyjmujecie polityke define'ow? Bo minus taki ze wszystkie obiekty db beda musialy korzystac z jednej bazy. Plus to skrot w zapisie.
Mam tez wielojezykowa stronke i tez nie wiem czy robic:
  1. <?php
  2. $strHello=&#092;"Witaj przybyszu\";
  3. ?>

czy
  1. <?php
  2. define(HELLO,&#092;"Witaj przybyszu\");
  3.  
  4. ?>

Co jest szybsze, bardziej eleganckie etc?
Nievinny
Tablice, dla każdego języka w innym pliku i includujesz tylko plik z potrzebnym językiem.
codo
ale w takich rzeczach jak phpNuke wszystkie zmienne jezykowe sa na define'ach...
chmolu
Wzorując się na PHPNuke daleko nie zajdziesz.
codo
Kurcze, ale moze jakies troche mnie skape wyjasnienia. Mysle ze komus tez by sie to przydalo. Dlaczego stosowanie define'ow ktore trzymaja nazwe bazy, uzytkownika, pass etc sa zle?
Nievinny
Nie, ale ich jest mało bo to konfiguracja, a przy systemach językowych wygodniejsze są tablicę bądź obiekty.
codo
Ok, jasne...
bigZbig
zmienne konfiguracyjne tez mozesz trzymac w tablicy np.

  1. <?php
  2.  
  3. $conf = array('db' => array('user' => 'root',
  4. 'pass' => '',
  5. 'host' => 'localhost',
  6. 'db' => 'test'
  7.  ),
  8. );
  9.  
  10. ?>


W razie potrzeby przekazujesz do obiektu zmienna $conf['db'].

Ja osobiscie kozystam z adoDB. Tworze obiekt abstrakcji na samym poczatku skryptu a potem tylko przekazuje jego instancje do odpowiednich funkcji czy klas.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.