![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 23.11.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ok ta kwestie jakos rozwiaze. A teraz to co tygryski lubia najbardziej czyli pytanie techniczne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) CMS pisze pod php 4. I teraz sprawa referencji. Mam następującą strukturę
Core -> - db - tpl - session -- login --- auth - error_handler - page - cache - assert handler I teraz wszystkie te klasy mają być dostępne dla jądra i dla każdej innej. Więc w klasie core stworzyłem zmienna: [php:1:66d913925e]<?php class core { var $classes; function core() global $CORE; $this->classes = &$CORE; } } ?>[/php:1:66d913925e] i teraz nie muszę przekazywać po zainicjowaniu dowolnej klasy ($this->classes['db'] = new db()) jej instancji innej. zastanawia mnie tylko czy takie rozwiązanie jest dość optymalne. Aplikacja jak narazie ma działać na php 4 nad czym bardzo boleję bo na 5 było by o wiele łatwiej. Więc pytanie: czy wykorzystać inny "punkt zaczepienia" czyli np. $_GLOBALS czy $_SESSION (można by zserialiozować obiekty wszystkie) czy może istnieje inny pomysł na referencję w b. złóżonej strukturze (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) jeśli tak to jaki i czy jest dosyć szybki?? Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Może cos takiego, jak poniżej?
[php:1:c089254ac3]<?php class ExampleClass1 { function ExampleClass1() { $GLOBALS['_ProjectName_ExampleClass1'] = &$this; } function Method() { // tutaj kod } } class ExampleClass2 { function ExampleClass2() { $GLOBALS['_ProjectName_ExampleClass2'] = &$this; } function Method() { // tutaj kod } } class MainClass { function MainClass() { $GLOBALS['_ProjectName_MainClass'] = &$this; $objObject1 = new ExampleClass1(); $objObject2 = new ExampleClass2(); } function Foo() { $this->x = $GLOBALS['_ProjectName_ExampleClass1']->Method() $this->y = $GLOBALS['_ProjectName_ExampleClass2']->Method() } } ?>[/php:1:c089254ac3] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 20:09 |