Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dublowanie kodu w OPP
eminiasty
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

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


Bardzo proszę o pomoc bo juz nie wiem w czym rzecz. Czym więcej dopisuje funkcji do mojej strony muszę kopiować wcześniej napisane linijki kodu. Przecież php obiektowe miało być proste. Mialo sie tu raczej nic nie powtarzać. Nie wiem co robię źle i jak można uprościć napisany przeze mnie kod. O co chodzi, tak na prawde?
Napisałem cały moduł newsów (bardzo uproszczony na razie), aczkolwiek są już funkcje takie jak index, view, add, edit, del (czyli podstawa). Problemem jest to, że muszę pomiędzy kontrolerami i wszystkimi/większością funkcji (tam gdzie wywołuje widoki) kopiować ciągle ten sam kod! W moim przypadku:

  1. if(isset($this->session->userdata['logged_in'])) {
  2. $session_data =$this->session->userdata('logged_in');
  3. $data['session_id'] = $session_data['id'];
  4. $data['session_login'] = $session_data['login'];
  5. $data['admin'] = $this->model_login->checkAdmin();
  6. }
  7. $data['setPageName'] = $this->model_site->setPageName();
  8. $data['returnSubpage'] = $this->model_panel->returnSubpage();
  9. @$data['breadcrumbs'] = $this->model_panel->breadcrumbs();


Odpowiada on za sesje, sprawdzenie czy jestes adminem, oraz inne funkcje z modeli.

PYTANIE DO WAS: Czy jest jakas możliwość by tego nie kopiwac a by nie rzucalo bledu o braku dostepi do zmiennej np $admin (juz w widoku)?
Próbowałem to wywoływać w konstruktorze jednak bez efektu ;/

Dorzucam całość jednego kontrolera:
http://wklejto.pl/288309

Dopiero się uczę obiektowości ...

Ten post edytował eminiasty 8.07.2017, 19:05:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 884
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


Pamiętaj, że tworzenie klas nie musi, a często nie powinno zawierać wszystkich funkcji jakie ma mieć twój skrypt.
Np. funkcje autoryzacji powinny być w innym obiekcie. Wtedy powtórzeń nie będzie.

A co do samego OOP - nikt nie powiedział że człowiek od razu nauczy się programowania obiektowego po przeczytaniu jednej książki, artykułu czy kursu PHP-OOP. Człowiek uczy się poprzez praktykę. Dzisiaj robisz spieszysz kod ale jutro będziesz się śmiał z tego że byłeś taki głupi że nie potrafiłeś tak prostych rzeczy (IMG:style_emoticons/default/smile.gif)

Nie poddawaj się!
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 18:30