Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Klasa API do gier Totalizatora Sportowego
Beniooo
post 22.04.2016, 20:56:28
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

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


Cześć, czy moglibyście ocenić jak działa moje autorskie API pobierające wartości losowań różnych gier totalizatora sportowego?

Aktualnie działa pobieranie Lotto, Lotto Plus, oraz EkstraPensja

https://github.com/G910/LottoAPI

Każda ocena i podpowiedź jest cenna! wink.gif


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post
Pyton_000
post 22.04.2016, 21:30:07
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Strasznie dużo kodu się duplikuje. Każda metoda praktycznie w 98% ma ten sam kod.

Masz tu jeden z przykładów jak można by napisać:
  1. private function isDateValid($date)
  2. {
  3. $isCorrectData = preg_match("|[0-9]{4}-[0-9]{2}-[0-9]{2}|", $date);
  4. if ($date !== null && !$isCorrectData) {
  5. $this->_lastErrorCode = "clientSide1";
  6. $this->_lastErrorDesc = "Data wprowadzona w niewłaściwym formacie. Prawidłowy: YYYY-MM-DD";
  7.  
  8. return false;
  9. }
  10. return $date;
  11. }
  12.  
  13. public function getLotto($date = null)
  14. {
  15. if(($date = $this->isDateValid($date)) === false) {
  16. return false;
  17. }
  18.  
  19. $data = [];
  20. $data['type'] = 'getLotto';
  21. if ($date !== null) {
  22. $data['type'] .= 'ByDate';
  23. $data['date'] = $date;
  24. }
  25.  
  26. return $this->curl($data);
  27. }


- brak autoloadera (composer nie gryzie smile.gif a mega ułatwia)
-
  1. if(isset($response['status']) && $response['status'] == 1){
  2. $this->_connected = true;
  3. $this->_token = $response['token'];
  4. return true;
  5. }else{
  6. $this->_lastErrorCode = $response['error']['code'];
  7. $this->_lastErrorDesc = $response['error']['description'];
  8. return false;
  9. }

Skoro robisz return true to else już nie potrzebne wink.gif Poza tym odwracając warunek kod będzie czytelniejszy. :
  1. if(empty($response['status'])) {
  2. $this->_lastErrorCode = $response['error']['code'];
  3. $this->_lastErrorDesc = $response['error']['description'];
  4. return false;
  5. }
  6.  
  7. $this->_connected = true;
  8. $this->_token = $response['token'];
  9. return true;


- brak namespace
- $_clientSecret - tak się już nie pisze (chodzi o _ dla oznaczenia widoczności)
- Skoro zwracasz w odpowiedzi array to dlaczego przy błędzie zwracasz fals? Powinna być pusta tablica.
- Wyjątki a raczej ich brak. Zamiast zgadywać czy zadziałało czy nie wystarczy rzucić w pysk Exception smile.gif
- Debug - echo ? seriously ?

To tak na dzień dobry smile.gif
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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 23:33