Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przestrzenie nazw i kontenery, Po co to w php?
Prph
post
Post #1





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

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


Witam,

Czytam tu i tam w sieci informacje nt. aplikacji php i czasem pojawiaja sie terminy przestrzeni nazw i kontenerow.

Wiem, ze w C++ przestrzenie sa dosyc wygodne (domyslam sie, bo nie programuje w C++), ale po co stosowane sa w php i w jaki sposob?

Podejrzewam, ze kontenery to inne okreslenie przestrzeni. Moge sie mylic.

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Nie bede pisal jakis dlugich wywodow ale to co czytam powoduje we mnie mdlosci (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif)

A teraz krotko i zwiezle

Cytat
Kontenery (byc moze namespaces) to np akcje. Wezmy Zenda, kontroller Nowosci, akcja Dodaj. Kontenerem bedzie tutaj Nowosci, ktory zawiera inne kontenery - akcje, np. Dodaj.


(IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)

Klasa kontenerowa to klasa przechowywujaca inne obiekty i nic wiecej - taka jest definicja i tyle. Przyklad - prosze bardzo ( odrazu kod )
  1. <?
  2. class newsObject
  3. {
  4. // klasa ktora zawiera newsa - jakies tam jego pola i inne rzeczy ;]
  5. } 
  6.  
  7. class newsCollection
  8. {
  9. protected $data=array();
  10.  
  11. public function add(newsObject $news)
  12. {
  13. $this->data[]=$news;
  14. }
  15.  
  16. public function reset()
  17. {
  18. $this->data=array(); 
  19. }
  20. }
  21. ?>

newsCollection to kontener. I tyle o kontenerach (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Przestrzen nazw( ang. namespace ) to swego rodzaju kontener na nazwy. W obrębie dowolnej przestrzeni nazw każda nazwa musi być niepowtarzalna. Przestrzen nazw pozwala na utworzenie dwoch klas o takich samych nazwach, podobnie jest z funkcjami. Maly przyklad - niedziajacy w php
  1. <?
  2. namespace pkrefta
  3. {
  4. class user
  5. {
  6. //tu kod
  7. }
  8. }
  9.  
  10. namespace ktosinny
  11. {
  12. class user
  13. {
  14. //tu kod
  15. }
  16. }
  17. ?>

Tworzy sie to po to aby jesli w systemie znajda dwie te same klasy nie bylo konfilktu. Rowniez pozwala to docenic odmienne implemtancje danej metody czy inna algorytmu.

A krocej - jest to to samo co w C++.

Ten post edytował NuLL 21.08.2006, 19:58:46
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: 10.10.2025 - 15:44