Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Klasa pobierająca dane po zalogowaniu do dziennika
Forum PHP.pl > Inne > Oceny
mlawnik
Witam,

postanowiłem rozpocząć naukę OOP od przepisania swojej funkcji. Prosiłbym o komentarz.

https://gist.github.com/marcinlawnik/29879cbed68313e04d65
ssstrz
Na szybko: w 2 miejscach widzialem:
  1. $this->registerUserUsername = null;
  2. //Then fill it with the username
  3. $this->registerUserUsername = $registerUsername;

Po co ten null?

Ciezko bedzie stworzyc potomka twojego curla bo masz metody prywatne. te username to pol biedy ale jak ktos sobie rozszerzy po twojej klasie to zonk bo $curlHandle jest prv i znow trzeba deklarowac. Noi szczegol na koniec: skoro uzywasz deelegacji do curla to mozna by pokusic sie o obiekt user.
mlawnik
Rzeczywiście, ten null tam jest niepotrzebny.
Ustawiłem te metody jako prywatne, ponieważ klasa nie będzie rozszerzana, a poza tym chciałem, żeby w IDE wyświetlały mi się tylko te metody których będę używał.
Możesz podać pseudood takiego obiektu user (użycia)?
ssstrz
Cytat(mlawnik @ 10.08.2013, 10:18:58 ) *
Rzeczywiście, ten null tam jest niepotrzebny.
Ustawiłem te metody jako prywatne, ponieważ klasa nie będzie rozszerzana, a poza tym chciałem, żeby w IDE wyświetlały mi się tylko te metody których będę używał.
Możesz podać pseudood takiego obiektu user (użycia)?

W takim razie jeśli klasa nie będzie rozszerzana możesz użyć
  1. final
- chodzi o to że ty wiesz jak ona działa i jak ją rozszerzać (a raczej że nie będzie rozszerzana) ale jak ktoś dostanie twój kod i zobaczy że jest final to jest jasna deklaracja jak posŧępować z taką klasą. O obiekcie user wspomniałem dlatego że piszesz że chcesz aby to było OOP więc dobrą praktyką było by wyodrębnić poszczegolne czynności przypisane dla danej klasy, np czynnością 'PodajLogin' nie zajmuje się klasa CURL tylko User (który jest po prostu polem wewnatrz tej klasy).
Tylko skoro klasa jest finalna to nie ma co na siłe wprowadzać do niej takiej funkcjonalności, a szkoda bo teraz aby zmienić zachowanie się klasy musisz grzebać w jej strukturze, mogłeś do tego podejść bardziej ogólnie a dopiero w potomku zawrzeć szczegóły działania.
mlawnik
Dobra, dzięki za sugestię.

Mam kolejne pytanie:

Zabieram się do przepisania na OOP dalszej części tego systemu, której zadaniem jest przeparsowanie htmla i wyciągnięcie z niego danych, a następnie zapisanie ich do bazy.
Czy powinna to być jedna klasa, czy też:

  1. class registerDataParser(){
  2. //Ta klasa dostaje dane z registerDataDownloader i po przeparsowaniu zapisuje do tablicy
  3. }
  4. class registerDataWriter(){
  5. //Ta klasa zapisuje tablice w bazie danych
  6. }


A może jeszcze inaczej?

Dla lepszego rozeznania tak wygląda funkcja którą przerabiam:
https://github.com/marcinlawnik/DziennikLog...rToDatabase.php
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.