[biblioteka] Juborm |
[biblioteka] Juborm |
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 |
|
|
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
- 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 Duużo kodu jest tam i sporo do poprawki takich pierdół. - Brak composera mega minus jak dla mnie - 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ę To tak wyrywkowo. |
|
|
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 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
Ogólnie cały czas pracuje na rozbudową i poprawą jakości. |
|
|
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 |
|
|
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 |
|
|
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
powinno sie raczej skracac do takiej postaci:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 14.05.2024 - 11:06 |