Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zamiana funkcji na inna
treewood
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 18.01.2003

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


Czy jest jakas metoda lub funkcja dzieki, ktorej mozna zdefiniowac albo ignorowac funkcje, ktore sa gdzies wczesniej zadeklarowane a chce sie je zastapic?

Przykladowo jest funkcja do wyswietlania czegos tam i chce zrobic plugin, ktory by dzialal w podobny sposob co dana funkcja ale robil jeszcze jakies operacje wewnatrz. I teraz ... nazwa funkcji bylaby ta sama jednak nie moge zadeklarowac dwa razy tej samej nazwy funkcji a jednak chcialbym by jedna druga zastepowaly.

Oczywiscie ma to zastosowanie w przypadku istnienia przykladowej aplikacji, ktora dziala jak dziala i nie chce jej zmieniac a wystarczy wgrac plugin i zastapic dana funkcje.

Dobra maslo maslane ... przyklad ponizej:

  1. <?php
  2.  
  3. function a( ){
  4.  return 'a';
  5. }
  6.  
  7. // plugin, ktory by zastapil ja
  8. function a( ){
  9.  return 'aa';
  10. }
  11.  
  12. ?>


--------------------
Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
Go to the top of the page
+Quote Post
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Nie mozna. Chyba, ze zrobisz tak, ze 1 wgrywasz druga nie, albo 2 wgrywasz pierwsza nie tongue.gif Zaslanianie nie ma sensu poniewaz w php nie trzeba deklarowac funkji na poczatku... jak uzyjemy sobie jej w srodku, a jej definicja jest na koncu to on i tak ja widzi. Wiec jakby mial rozpoznawac, do ktorej funkcji sie odwolujesz? tongue.gif


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
hawk
post
Post #3





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Można to zrobić na obiektach. Mieć jakiegoś class loadera, w którym aplikacja/pluginy rejestrują klasy, i który, jak trzeba wczytać kod klasy, sprawdza gdzie jest dostępna najnowsza wersja danej klasy i robi odpowiedni require_once.

OOP rulez biggrin.gif
Go to the top of the page
+Quote Post
treewood
post
Post #4





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 18.01.2003

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


Ostatecznie mozna przez function_exists( ); ale nie jest to idealne wyjscie ...

  1. <?php
  2.  
  3. if( !function_exists( 'a' ) ){
  4.   function a( ){
  5.    return 'a';
  6.  }
  7. }
  8.  
  9. // plugin
  10. function a( ){
  11.   return 'aa';
  12. }
  13. ?>


dla testu zrobilem tak na przykladowo 50 funkcjach. zwyczajnie wstawilem if'a przed funkcja i myslalem, ze generacja bedzie wygladala o wiele gorzej a odziwo roznica byla w granicach bledu bo ok. +/- 0.001 sek

Ten post edytował treewood 27.10.2004, 13:28:52


--------------------
Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
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: 19.08.2025 - 05:05