Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przechwycenie momentu utworzenia zmiennej
CuteOne
post
Post #1





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Witam,

na wstępie trochę kodu

1.
  1.  
  2. class A {
  3.  
  4. public function xyz() {
  5.  
  6. $this->a = 'aaa';
  7. }
  8. }
  9.  
  10. $a = new A();
  11. $a -> xyz();


2.
  1.  
  2. class A {
  3.  
  4. public $a='bbb';
  5.  
  6. public function xyz() {
  7.  
  8. $this->a = 'aaa';
  9. }
  10. }
  11.  
  12. $a = new A();
  13. $a -> xyz();

i pytanie - czy istnieje, możliwość przechwycenia z zewnątrz, momentu zainicjowania(1) $this->a lub zmiany jego wartości(2)?

EDIT: __set() nie wchodzi w grę

Ten post edytował CuteOne 9.11.2012, 16:18:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


(IMG:style_emoticons/default/tongue.gif)

W sumie to sam nie wiem. Ubzdurałem sobie aby wstrzykiwać modele pakietami
Kod
{
   "use": "pluginXYZ",
   "inject": [
        {"models":["X", "Y"]},
        {"services": ["xx", "yyy"]}
   ],

   //inny plugin, który chce skorzystać z pluginXYZ
   "use": "pluginXYZ",
   "inject": [
        {"models":["V", "C", "E", "H", "H2"]},
        {"services": ["xx", "yyy"]}
   ]
}

viewAction($pakiet_models, $pakiet_services);

Dopiero po rozpisaniu tego na kartce wyszły ewentualne niedopatrzenia, więc zrezygnowałem z tablic na rzecz kontenerów
Kod
{
   "use": "pluginXYZ",
   "inject": [
        {"models": "ModelX_Container"},
        {"services": "ServiceX_Container"}
   ],

   //inny plugin, który chce skorzystać z pluginXYZ
   "use": "pluginXYZ",
   "inject": [
        {"models": "ModelZZ_Container"},
        {"services": "ServiceZZ_Container"}
   ]
}

  1. public function viewAction($model_container, $service_container) {
  2.  
  3. //po interfejsie modelu
  4. if($model_container->has('ModelX_Interface')) {
  5. $modelX = $model_container -> get('ModelX_Interface');
  6. }
  7. //lub wszystkie danego typu (kolekcji)
  8. if($model_container->has('Models_Domain_Interface')) {
  9. $models = $model_container -> getDomain('Models_Domain_Interface');
  10. }
  11. //lub po nazwie modelu
  12. if($model_container->has('ModelX')) {
  13. $modelX = $model_container -> get('ModelX');
  14. }
  15. }


Ten post edytował CuteOne 16.11.2012, 12:24:11
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 - 14:49