Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Cannot redeclare class
Forum PHP.pl > Forum > Przedszkole
Octobus
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 ...
Xelah
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.