Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OOP-PHP]Uniewaznienie funckji w pod stronach
Forum PHP.pl > Forum > PHP > Object-oriented programming
marcio
Witam mam taki problem robie sobie switch'a w ktorym jest edytowanie i aktualizowanie postow lecz gdy przechodze to edycji postow pokazuje sie tez form z glownej strony tam gdzie sie dodaje nowe posty i dziala,przeszkadza mi to estetycznie i przez to edycja nie dziala poprawnie(przynajmniej mam nadzieje ze to jest przyczyna).

Tzn chodzi o to ze w momencie gdy wywoluje klase czyli:
  1. <?php
  2. include('klasa.php');
  3. $ksiega = new Ksiega($_POST['nick'], $_POST['message']);
  4. $ksiega->Dodaj_wpis();
  5. $ksiega->Pokaz_ksiege();
  6. echo('<div style="background:#000;color:#0f0;text-align:center;border:2px solid:white;">Powered by Marcio. GG(4854727)<img src="http://www.gadu-gadu.pl/users/status.asp?id=4854727&styl=1"/></div>');
  7. ?>

W podstronie edycji jest niepotrzebna 1 funckja a mniej wiecej $ksiega->Dodaj_wpis ktora wyswietla form z dodawaniem postow, i teraz moje pytanie jest nastepujace jak to usunac z podstrony edycji??
Mam teraz zrobic EXTENDS mojej klasy i uniewaznic funckje ktore mi przeszkadzaja?

Jesli ktos jest zainteresowany pomoca i chce zobaczyc klase to:

PLIK KLASY ZNAJDUJE SIE TUTAJ:KLASA
nevt
z klasie rozszerzenia zadeklaruj te metody ponownie jako prywatne, z pustym ciałem definicji...
phpion
Hmmm mi się wydaje, że należy zmienić hierarchię klas i na nowo przemyśleć projekt. Dziedziczenie powinno być rozszerzeniem klasy o metody, a nie ich "usuwaniem".
marcio
@NEVT mozesz troche jasniej bo ja OOP malo znam(pokazac na przykladzie)

z mojej znajomosci OOP to chodzi o mniej wiecej cos takiego

  1. <?php
  2. include('klasa.php'); // includuje oryginalna klasa
  3. class Ksiega_edit extends ksiega {
  4. // tutaj dac private dla tych metod ktore chce zmienic czyli??
  5. //i jak wywolac funckja bez jej ciala? o tak
  6.  
  7. Dodaj_wpis() {} //Nic mam tu nie dac tylko nawiasy klamrowe?Jak sie zmienia tylko troche funkji to wiem ze sie zmienia tylko to co //potrzeba a ja chce uniewaznic cala funckje
  8.  
  9. $ksiega_edit = new Ksiega_edit();
  10. $ksiega_edit->Pokaz_ksiege();
  11. //Chodzi o cos takiego?
  12. ?>


@phpion.com O tym nie ma zabardzo mowy biggrin.gif
phpion
~nevt'owi chodziło o coś takiego:
  1. <?php
  2. class Jakas {
  3. public function zrobCos() {
  4. echo 'robie!';
  5. }
  6. }
  7.  
  8. class Jakas_Inna extends Jakas {
  9. public function zrobCos() {
  10. }
  11. }
  12. ?>

Czyli nadpisanie danej metody pustą.
marcio
Czyli w sumie moja czesc kodu byla dobra?
A mam pytanie czy jesli sprobuje to zrobic a mi nie wyjdzie to pomozecie, bo juz sobie z usuwaniem i edytowaniem poradzilem

P.S w sumie to te klasy teraz zaczely mi sie podobac, rozumie je troche i nie sa wcale takie zle

P.S2 mam teraz nastepne pytanie jak juz zrobie druga klasa z funkcja ktora tylko potrzebuje, jak zrobic zeby ta klasa dziala tylko gdy sie edytuje posta czyli jak url jest taki:
  1. <?php
  2. localhost/qwe.php?strona=&action=edytuj&id=177&kod=sds23a
  3. ?>

questionmark.gif

Pytam bo wiem jak by to mialo wygladac jak by to bylo w osobnym pliku lecz jest zawsze w qwe.php lecz zmienia sie link i nie wiem jak na jego podstawie uruchomic 2 klase
nevt
Popieram stanowisko kolegi phpion.com. To, co chcesz osiągnąć jest technicznie możliwe, ale niewłaściwe z założenia i świadczy o błędach w projekcie. Piszesz, że dopiero zaczynasz przygodę z OOP. Więc zancznij od lektury jakiegoś podręcznika / tutoriala o PROJEKTOWANIU (nie programowaniu) OBIEKTOWYM. Wtedy zrozumiesz, czm są obiekty, ich własności i metody. Na czym polega hermetyzacja, hierachia klas i dziedziczenie. Jak opanujesz te podstawy, to ich implementacja w dowolnym języku OOP nie sprawi ci trudności.

Pozdrawiam i powodzenia.
marcio
Ok nie zaprzeczam ze macie racje ale nie chce tego pisac na nowo bo to byl dla mnie duzy wysilek napisac to w OOP i bedzie to moj ostatni skrypt napisany na klasach.Dlatego prosze was w troche wiecej kompresji mojego problemu jesli jest to mozliwe.
Jedyna rzecz jaka mi przychodzi do glowy to zrobic cos takiego.
Gdy odpalam glowna klase ktora wywoluje wszystkie fuckcje czyli qwe.php zrobic if'a ktory za pomoca strstr albo strpos sprawdzi czy w zmiennej $_SERVER['PHP_SELF'] znajduje sie ciag edycji czyli action=edytuj i jesli tak to uniewaznia dane funkcje.
Czy dobrze mysle?Bardzo bede wdzieczny jesli mi mniej wiecej powiecie jakby mialo dzialac te sprawdzenie url jesli moje jest bledne
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.