![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Naszła mnie taka myśl przed chwilą. Przestrzenie nazw zostały wymyślone jako kategorie obiektów, ale tak na prawdę co przemawia za używaniem ich. Jeszcze chwilę temu chciałem przebudować swój framework wprowadzając przestrzenie nazw bazując na Symfony 2.0, które podobno jest x razy szybsze właśnie głównie ze względu na ich wykorzystanie. Tak na prawdę jednak zamiast nazwy typu sysCoreApplication dostajemy \sys\Core::Application. Jeśli wprowadzić keszowanie załadowanych plików klas powiedzmy na konkretny url to cały wspaniały czar wydajności pryska jak bańka mydlana, a mnie osobiście bardziej się podoba pierwszy zapis niż drugi.
Jestem ciekaw waszego zdania na temat. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Przestrzenie nazw zostały wprowadzone przede wszystkim dla wygody. Nie wiem, jak Tobie, ale mi się np. niezbyt podoba w wielu sytuacjach pisanie tasiemców w stylu Foo_Controller_Action_Extra_Management_Hook_Bar, np.:
W przestrzeniach nazw pełna kwalifikowana nazwa oczywiście też może być długa, ale możemy za to zrobić import:
Ponadto tu jest jeszcze jeden powód: http://www.zyxist.com/pokaz.php/standaryzacja_php -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Przestrzenie nazw są stosowane przede wszystkim po to, by stworzyć "pojemnik" na klasy. Dzięki takiemu podejściu nie musisz pilnować nazw klas, ponieważ nie muszą być unikatowe w skali całego projektu, a jedynie przestrzeni nazw. Nie ma to nic wspólnego z długością nazwy klasy.
Dobry przykład znajdziesz u mnie na blogu - Modułowe aplikacje PHP z wykorzystaniem phar i namespace -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Ehh powinienem częściej wasze blogi czytać. No dobra w takim razie jakie są konwencje nazywania przestrzeni nazw. To znaczy jak na przykład nadać im unikalność.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
No przecież zyxist podał ci fajny art na ten temat.
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
No i przeczytałem go jak i wcześniejszy wpis o domknięciach. Blog batmana też. Ale ani tutaj ani tutaj nie ma podanych konwencji jakich należy się trzymać tworząc nową przestrzeń nazw.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Bo wśród społeczności PHP jeszcze się takie konwencje nie utworzyły (z tego co kojarzę), jednakże na start masz dwie możliwości:
1) Względem nazwy projektu (\Symfony\...) 2) Względem adresu strony projektu (\org\symfony-project\...) - ten model jest stosowany np. w Javie. A to jakie będą kolejne elementy nazwy to już tylko i wyłącznie Twoja sprawa. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
starach -> nie wiem, jak ty go czytałeś
![]() * Pierwszy człon jest zawsze nazwą dostawcy (projektu) i musi być przestrzenią nazw. * Człony mogą być albo przestrzeniami nazw, albo separowane przez _, jak w Zend Frameworku. * Ostatni człon jest tożsamy z nazwą pliku z klasą/interfejsem. Natomiast to, co jest w środku, zależy już od Ciebie. Dopóki pierwszy człon masz unikalny/charakterystyczny, masz spokój z tym, co będzie dalej, pod warunkiem że we własnych plikach będziesz jako tako pilnować porządku. Konwencji javowej z odwróconą nazwą domeny nie polecam, gdyż uniemożliwi to działanie poprawne rozszerzeniu SplClassLoader, które ma szansę pojawić się niebawem w bibliotece SPL wbudowanej w PHP. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:30 |