Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


Dipter
Napisane: 27.06.2012, 15:50:56





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

extract + dowolny sposób wczytania pliku z widokiem (require, include etc.)
  Forum: Object-oriented programming · Podgląd postu: #973112 · Odpowiedzi: 3 · Wyświetleń: 546

Dipter
Napisane: 22.06.2012, 16:59:14





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Pierwsza klasa:
1. Niepotrzebnie jest statyczna, poza tym skoro używasz statycznych metod używaj static *typ* function zamiast *typ* function.
2. Metody takie jak Database, Router, Session itp. to dość dobry pomysł, ale lepiej jakbyś użył do tego jakiegoś kontenera (Poczytaj o DependencyInjection).

Druga klasa:
1. "class Controller extends Services" - Nie powinno być takiego dziedziczenia, ty nie rozszerzasz serwisów, tylko z nich korzystasz/robisz na nich operacje - Przekaż obiekt Services poprzez konstruktor/metodę do obiektu Controller.
2. Nie zauważyłem byś gdziekolwiek przekazywał jakąkolwiek konfigurację, a to poniekąd zły znak.

Trzecia klasa:
1. Ten sam błąd co w klasie wyżej, pkt. 1
2. Skoro korzystasz z jakiejś ścieżki kilkukrotnie to zapisz ją gdzieś do zmiennej i używaj w ten sposób. Poza tym lepiej byś tę ścieżkę przekazał jako argument / klucz konfiguracji, zamiast ustawiać na sztywno w klasie.
3. Do tworzenia obiektów przyda Ci się call_user_func_array lub ReflectionClass.
4. Porozdzielaj metode Run() na inne, wyspecjalizowane metody dla poszczególnych elementów ponieważ robi się bałagan.
5. Dane imho nt. modułu itp powinny zostać wcześniej sprawdzone (długość, czy to string itp) i dopiero później powinny być przekazane do Applications w celach sprawdzenia istnienia i utworzenia obiektu.
  Forum: PHP · Podgląd postu: #971804 · Odpowiedzi: 3 · Wyświetleń: 600

Dipter
Napisane: 20.05.2012, 22:28:11





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Przekaż obiekt poprzez argument metody sendNewPassword
  Forum: Frameworki · Podgląd postu: #964448 · Odpowiedzi: 3 · Wyświetleń: 429

Dipter
Napisane: 30.11.2011, 23:59:29





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Dlaczego metodą? Może być równie dobrze obiektem klasy Umiejętność. Dlaczego upierasz się przy swojej racji i tłumaczysz wszystkim dookoła, że to my mamy coś nie równo, zamiast dać coś komuś wyjaśnić i pomyśleć trochę LOGICZNIE.
  Forum: Object-oriented programming · Podgląd postu: #918628 · Odpowiedzi: 23 · Wyświetleń: 1 745

Dipter
Napisane: 29.11.2011, 22:19:27





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Dokładnie tak, różnicą w tym przypadku może być wygoda pisania, zaoszczędzać parę linijek kodu tongue.gif
  Forum: PHP · Podgląd postu: #918274 · Odpowiedzi: 30 · Wyświetleń: 1 504

Dipter
Napisane: 29.11.2011, 21:45:24





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Po pierwsze twój kod nawet nie zadziała. Żeby zrobić "ciąg" wykonywanych metod, w każdej z nich musisz zwracać jakiś obiekt, w twoim przypadku tej samej klasy.

W klasie masz metody save oraz setData. W metodzie setData ustawiasz dane i w metodzie zwracasz obiekt, a dalej możesz wykonywać inne operacje.

  1. class X
  2. {
  3.  
  4. private $data = array();
  5.  
  6. public function setData(array $data)
  7. {
  8. $this->data = $data;
  9.  
  10. return $this; // Zwracasz obiekt klasy X
  11. }
  12.  
  13. public function save()
  14. {
  15. // Zapis danych...
  16. }
  17.  
  18. }
  19.  
  20. $data = array('foo' => 'bar');
  21.  
  22. $x = new X();
  23. $x->setData($data)->save();
  24.  
  Forum: PHP · Podgląd postu: #918261 · Odpowiedzi: 30 · Wyświetleń: 1 504

Dipter
Napisane: 29.11.2011, 19:14:47





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

  1. class Lancuch
  2. {
  3.  
  4. public function ala()
  5. {
  6. return $this;
  7. }
  8.  
  9. public function ma()
  10. {
  11. return $this;
  12. }
  13.  
  14. public function kota()
  15. {
  16. return $this;
  17. }
  18.  
  19. }
  20.  
  21. $lancuch = new Lancuch();
  22. $lancuch->ala()->ma()->kota();
  23.  


Po prostu w metodzie zwracasz obiekt klasy.
  Forum: PHP · Podgląd postu: #918201 · Odpowiedzi: 30 · Wyświetleń: 1 504

Dipter
Napisane: 22.07.2011, 16:37:54





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Nie Zend_DB, a Zend_Db. Wielkość znaków ma znaczenie smile.gif
  Forum: Frameworki · Podgląd postu: #883816 · Odpowiedzi: 3 · Wyświetleń: 567

Dipter
Napisane: 6.07.2011, 15:29:29





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Funkcja conn nie istnieje.

Zamień:
  1. $result = conn($query);

Na:
  1. $result = mysql_query($query);

W 6 linijce smile.gif
  Forum: Przedszkole · Podgląd postu: #879614 · Odpowiedzi: 3 · Wyświetleń: 329

Dipter
Napisane: 5.07.2011, 15:58:47





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

  1. public function Dodaj( $a, $b ){
  2. $this -> wynik = $a + $b;
  3. return $this; // zwracasz obiekt...
  4. }


smile.gif
  Forum: Przedszkole · Podgląd postu: #879277 · Odpowiedzi: 3 · Wyświetleń: 310

Dipter
Napisane: 23.06.2011, 22:03:23





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

  1. <?php
  2. header('refresh: 5; url=/tutaj/link/');
  3. ?>


Gdzie 5 to czas w sekundach po jakim ma przekierować smile.gif
  Forum: Poszukuję · Podgląd postu: #875501 · Odpowiedzi: 11 · Wyświetleń: 869

Dipter
Napisane: 3.05.2011, 22:07:36





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Błędem jest to co podał mat-bi.
kadlub - Bardzo inteligentnie, teraz przy każdej wykonanej akcji będzie niszczyć sesję i przenosić do głównej strony. Chyba jasno widnieje instrukcja switch i stan wyrażenia "wyloguj".

Popraw linie 17 - ?action=wylogyj -> ?action=wyloguj
  Forum: Przedszkole · Podgląd postu: #860347 · Odpowiedzi: 10 · Wyświetleń: 781

Dipter
Napisane: 23.04.2011, 23:15:56





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

1. Definiujesz dane do bazy danych, które równie dobrze mógłbyś wpisać do klasy poprzez choćby tablicę z konfiguracją.
2. Klasa jest kompletnie nie tyle co źle, a bezsensownie napisana.
3. Pakujesz wszystko do jednego - Połączenie z bazą danych, operacje na niej, dane użytkownika, autoryzacja, wyświetlanie.
4. Łączysz się za każdym razem przy próbie utworzenia obiektu User.
5. Prawie w każdej metodzie wykonujesz zapytanie o_O.
6. Wspomniałem wyżej, że klasa jest napisana bezsensu, ponieważ niektóre "metody" zawarte w niej są na siłę wepchane (czyt. Twoja klasa to kontener na funkcję)
7. Podstawy OOP się kłaniają - Single Responsibility Principle - Jedna sprawa - Jedna klasa.

Przede wszystkim musisz oddzielić od siebie taki rzeczy jak baza danych (dostęp, komunikacja, obsługa), zarządzanie użytkownikiem, autoryzacja.

Stwórz klasę, która zajmie się połączeniem z bazą danych, zwróci Ci obiekt jakiegoś sterownika bazy danych (np. klasę dziedziczącą po PDO).

Zrób osobną klasę dla obsługi użytkownika (tworzenie, usuwanie, edycja / pobieranie danych) oraz osobną do autoryzacji (logowanie, wylogowywanie, sprawdzanie).

pozdrawiam wink.gif
  Forum: PHP · Podgląd postu: #857906 · Odpowiedzi: 20 · Wyświetleń: 1 893

Dipter
Napisane: 31.01.2011, 00:17:19





Grupa: Zarejestrowani
Postów: 81
Dołączył: 28.11.2010
Skąd: Kraków

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

Zawsze można skorzystać z funkcji array_search, bez utrudniania sobie życia tongue.gif
  Forum: PHP · Podgląd postu: #832357 · Odpowiedzi: 7 · Wyświetleń: 1 296


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 16.05.2024 - 05:44