Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [biblioteka] Juborm
ttmdear
post 29.06.2016, 08:17:08
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.06.2016

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


Cześć,

Chciałbym się z wami podzielić moją biblioteką do obsługi bazy danych (mały system ORM).

http://ttmdear.github.io/jub-orm

Powstała ona na potrzeby mojej pracy inżynierskiej smile.gif
Go to the top of the page
+Quote Post
Pyton_000
post 29.06.2016, 08:38:15
Post #2





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

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


Opis wygląda świetnie ale już kod nie koniecznie smile.gif

- Assercje są bez sensu. dla czego is_array zwraca tablicę zamiast true/false? Tak samo inne.
- hasIndex - isset zwróci false dla $tab['ddd'] = null, powinno być array_key_exists
- !is_null($msg) - lepiej by było !empty()

https://github.com/ttmdear/jub-orm/blob/mas...lder/Select.php
- rozbij to na metody
- kolejne:
Kod
        if (!is_null($where)) {
            $sql .= "WHERE $where\n";
        }

jak będzie '' to błąd wink.gif

Duużo kodu jest tam i sporo do poprawki takich pierdół.

- Brak composera smile.gif mega minus jak dla mnie tongue.gif
- jak już robisz:
Kod
$assert->exception("You can't use array append on entity.");
to wypadalo by łapać ten wyjątek.

Dalej nie chce mi się smile.gif To tak wyrywkowo.
Go to the top of the page
+Quote Post
ttmdear
post 29.06.2016, 08:53:53
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.06.2016

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


@Pyton_000

Hej, dzięki za uwagi smile.gif

Te asercje wykorzystuje jako funkcje sprawdzające, wiec jeśli asercja się nie spełnia to
od razu wywalam wyjątek ponieważ dalsze działanie jest niemożliwe.

https://github.com/ttmdear/jub-orm/blob/mas.../src/Entity.php

  1. public static function table()
  2. {
  3. $assert = static::service('assert');
  4. $assert->notNull(static::$table, 'Each entity should have defined table.');
  5. return static::$table;
  6. }


Ogólnie cały czas pracuje na rozbudową i poprawą jakości. smile.gif
Go to the top of the page
+Quote Post
Pyton_000
post 29.06.2016, 08:59:25
Post #4





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

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


No ja rozumiem do czego jest assercia, ale bez sensu jest zwracać wartość przekazaną. Lepiej już nic nie zwracaj i tylko rzucaj Exception jeśli nie spełnia assercji.

Zerknij na to: https://github.com/beberlei/assert/blob/mas...t/Assertion.php
Go to the top of the page
+Quote Post
ttmdear
post 30.06.2016, 14:11:08
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.06.2016

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


Ok już rozumiem

Jest już composer smile.gif
Go to the top of the page
+Quote Post
nospor
post 30.06.2016, 14:34:44
Post #6





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




$sql = "INSERT INTO $table (";

powinno byc

$sql = "INSERT INTO `$table` (";
(lub cos innego w zaleznosci od bazy)

bo jakis geniusz moze uzyc zastrzezonego slowa dla nazwy tabeli.

No i skoro uzywasz PDO z tego co zrozumialem to powinienies jechac na bindowaniu a nie recznym wkladaniu danych

edit: podobna z sytuacja z select i kolumnami

edit: no i takie pierdy jak to:
$where = "$expr";
gdzie powinno byc poprostu:
$where = $expr;

edit:
nie: strpos($column, '.') != false
a: strpos($column, '.') !== false
Przy strpos niesprawdzanie typow jest szczegolnie niebezpieczne

edit:
kody jak ten
  1. private function isSimpleString($string)
  2. {
  3. $re = "/^[a-zA-Z,_,0-9]*$/";
  4. $match = preg_match($re, $string);
  5. if (!empty($match)) {
  6. return true;
  7. }
  8. return false;
  9. }


powinno sie raczej skracac do takiej postaci:
  1. private function isSimpleString($string)
  2. {
  3. return (bool) preg_match('/^[a-zA-Z,_,0-9]*$/', $string);
  4. }




--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 14.05.2024 - 11:06