Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

Można np. składować obiekty jakiegoś konkretnego typu i nie trzeba za każdym razem sprawdzać - poprzez np. instanceof -, czy obiekt jest żadanego typu, czy nie.
Tylko... po co to sprawdzać? Robiąc to z góry zakładasz że nigdy nikt nie będzie chciał po prostu podmienić tej klasy inną klasą o identycznym API, ale innej nazwie (żeby nie trzymać dwóch różnych klas pod tą samą nazwą).
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

Tak samo z dodawaniem obiektów do rejestru - metoda dodająca (setter) może automatycznie sprawdzać typ przekazanego obiektu i umieścić w odpowiedniej kolekcji (zyskujemy kategoryzację), (...)
Tylko... po co kategoryzować obiekty w ten sposób? Nie potrzebujesz przecież kategorii np. "Klasy od sesji" bo z zasady używasz tylko jednej, a na pewno nie będziesz przez nie iterował i używał każdej z nich. A jeżeli chcesz np. kategoryzować w stylu "Użytkownicy, czyli instancje klasy User", "Moduły, czyli instancje klasy Module" itp. to dużo lepiej jest zrobić do tego dodatkowe klasy - Users i Modules - dzięki temu będziesz mógł za ich pomocą wygodnie pobierać danego usera/moduł/coś.
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

(...) albo wręcz go wymusić w swojej definicji i wypluć wyjątek, gdy spróbujemy wprowadzić zły obiekt.
I w ten sposób uniemożliwić to o czym napisałem wcześniej (inna nazwa klasa, to samo API). No i przy okazji takie rozwiązanie zmusza programistę do zakodowania wszystkich typów klas i w rejestrze i w klasie głównej (tworzącej instancje tych klas).
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

Łatwo też sobie wyobrazić, że możemy kontrolować dostęp do obiektów, (...)
Prawdę mówiąc nie wiem po co chcesz kontrolować dostęp do obiektów - jeżeli przypadkiem uruchomiony zostanie jakiś złośliwy kod to tak czy siak, niezależnie od tego typu kontroli, zrobi on spustoszenia. A po co kontrolować co może normalny kod?
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

(...) a nawet możemy filtrować, logować i wykonywac dziesiątki innych operacji, których nie zrobimy w podobnie łatwy i intuicyjny sposób z użyciem globali.
Co ty znowu chcesz filtrować?

A logowanie - to fakt, nie możesz przy użyciu globali logować gdzie klasa została użyta, ale prawdę mówiąc nie widzę w takim działaniu sensu

Loguje się gdy coś się stanie, np. gdy zostanie coś zmienione w bazie danych, ale nie np. pobranie klasy tylko po to żeby coś odczytać!
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

Co do API; dlaczego uważasz, że rejestr nie jest przenośny?
A czy ja mówiłem coś na temat przenośności rejestru? Mówiłem tylko że nie widzę różnicy między globalami a rejestrem.
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

Ja uważam wręcz odwrotnie - bez rejestru ciężko utrzymac spójność interfejsu - np.
<?php
$registry->get('userAccountInfo', $user)->getAccountExpireDate(); // przekazujemy nazwę klucza i obiekt klasy User, //który posłuży do naszej identyfikacji
?>
Dodajmy jeszcze że ten kod wygląda strasznie, w przeciwieństwie do:
<?php
$user->getAccountExpireDate();
?>
(zakładając że zrozumiałem o co Ci chodziło - nie jestem pewien, bo nie rozumiem co właściwie zrobiłeś, co dodatkowo pokazuje że użycie rejestru jest niezrozumiałe

)
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

Jako, że rejestr może z powodzeniem byc singletonem (bo jest wzorcem o szerszej defnicji, więc może składać się z innych wzorców), musisz jedynie pobrać jego instancję i wywołać określoną metodę.
... co nie zmienia faktu że nie cierpię singletonów...
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

W Świecie, w którym niemal każda poważna aplikacja to swego rodzaju instancja jakiegoś frameworka - nie jest to wada, bo uczestniczy się w pewnej konwencji, więc dwie akcje nie będą używały róznych interfejsów - każda pobierze instancję rejestru i zrobi swoje.
No tak, wrzućmy do aplikacji najlepiej dziesięć rejestrów i wogóle dziesięć zestawów frameworków, wtedy wszystko będzie idealnie działać!
Zakładając że się chce napisać w miarę szybki skrypt, widzę jedyne wyjście w ujednoliconym API a nie w kilku rejestrach.
Cytat(Cysiaczek @ 21.07.2007, 22:54:22 )

Pozdrawiam.
Również pozdrawiam