![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że mamy wielowymiarową tablicę, której struktury do końca nie znamy. Korzysta z niej kilka innych obiektów, mogą one wstawiać do tej tablicy wartości pod odpowiednimi indeksami, ale i też je wyciągać (zakładamy, że nigdy nikt sobie na wzajem danych nie nadpisze). Ale ta tablica ma być "zarządzalna" przez osobny obiekt. To znaczy, by pobrać jakąś wartość trzeba użyć metody $object->get('index'), a żeby wstawić $object->set('index', 2). Nigdy nie ma bezpośredniego dostępu do tej tablicy.
Jak wykonać metody pobierania i wstawiania do tablicy, by były możliwie jak najszybsze (operacje na stringach to jakaś masakra w PHP ;/) i żeby można było dostać się do tablicy wgłąb, na przykład: $table['index1']['index2']['index3']? Wymyśliłem, by na poczekaniu tworzyć funkcję anonimową (create_function), której prześlemy całą tablicę, a w stringu stworzymy już indeks do pobrania:
I teraz, jeśli chcemy pozyskać jakąś wartość to w parametrze metody podajemy ciąg znaków: 'index1.index2.index3'. Ale nie jest to zbyt szybkie. Macie może inne pomysły na rozwiązanie tego problemu? Ten post edytował adbacz 9.07.2014, 23:26:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Trochę OT ale moim zdaniem całe to zadanie nie ma najmniejszego sensu...
Ja to widzę bardziej jako tzw. rejestr w aplikacji - każdy moduł/obiekt może z niego korzystać bo jest dostępny ogólnie. Jeśli z kolei każdy obiekt korzysta tak jak pisał autor czyli nie nadpisując sobie niczego to tym bardziej rejestr się nadaje - każdy obiekt trzyma w nim dane, które sam zmienia - inne mogą odczytywać. Nie widzę sensu w takim udziwnianiu bo nic to nie daje (IMG:style_emoticons/default/smile.gif) Mogłoby dawać blokowanie edycji ( dana ścieżka dostępna tylko dla określonego obiektu) tylko po co pisać coś od nowa jak mamy takie coś jak ACL... Sposobów rozwiązania jest MASA - by_ikar podał fajne - tylko po co tworzyć takie dziwne "smoki" i "potwory" jak można użyć takich wzorców jak rejestr albo zbudować własny rejestr w połączeniu z ACL... (choć i to dla mnie już przesada)... Autor - jak możesz - uzasadnij - czemu akurat tak? Czy może to taki zamysł po prostu? (IMG:style_emoticons/default/tongue.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 00:32 |