Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Cannot redeclare class
Octobus
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


Potrzebuję połączyć się do paru sklepów magento w jednym zapytaniu przez Mage (takie magento api). Mam więc kod


  1.  
  2. require_once '/home/moj_login/domains/'.$folder_sklepu.'/public_html/app/Mage.php';
  3. if (!Mage::isInstalled()) {
  4. echo "Nie udało się połączyć";
  5. }
  6. $this->mage = Mage::app('default');


Zaraz pod min musi byc kod ktory laczy sie do innych sklepow ale tez z apomoca mage, wiec kod jest w petli i includuje ten sam plik tylko ze z innej sciezki. Jasna rzecz ze musial mi wyjsc taki problem, ale jak wymazac stara klease zeby zrobic miejsce dla nowej ? unset($this->mage) niestety nie dziala ... pewnie dla tego ze to metoda statyczna ...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Xelah
post
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 12.05.2013
Skąd: Hamburg

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


Najprościej ujmując: nie da się. Raz zadeklarowana klasa będzie w pamięci do czasu zakończenia skryptu. Nie masz na to wpływu.

A tak dokładniej to to, co chcesz zrobić nie ma za bardzo sensu. Bo Mage to nie API. To tak zwana "God class". Bez niej Magento nie istnieje. I to nie ma niczego wspólnego z API.
Nie możesz użyć tej samej klasy nawet jak zdefiniujesz ją w innej przestrzeni nazw, bo całe Magento zawsze odwołuje się do, na przykład, \Mage::app().

Jeśli masz kilka działających sklepów to prostszym rozwiązaniem będzie użycie ich API, które udostępniają przez HTTP.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:42