Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Klasa pobierająca dane po zalogowaniu do dziennika
mlawnik
post
Post #1





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


Witam,

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

https://gist.github.com/marcinlawnik/29879cbed68313e04d65


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ssstrz
post
Post #2





Grupa: Zarejestrowani
Postów: 103
Pomógł: 17
Dołączył: 15.12.2012

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


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.

Ten post edytował ssstrz 9.08.2013, 17:30:06
Go to the top of the page
+Quote Post
mlawnik
post
Post #3





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


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)?


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
ssstrz
post
Post #4





Grupa: Zarejestrowani
Postów: 103
Pomógł: 17
Dołączył: 15.12.2012

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


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.
Go to the top of the page
+Quote Post
mlawnik
post
Post #5





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


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

Ten post edytował mlawnik 11.08.2013, 09:58:20


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
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: 21.08.2025 - 03:37