![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 556 Pomógł: 40 Dołączył: 20.07.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
w zasadzie 2 klasy bo connect jest oddzielnie
nie staram się wynaleźć koła na nowo tylko uprościć sobie robotę ![]() ale pewnie jest tu parę błędów więc oceniajcie btw. PDO do mnie nie przemawia jakoś a może przyzwyczaiłem się do starego? pozdrawiam
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Więcej staticów się nie dało?
Czemu setConnect()? getInstance() skoro to singleton. I czemu singleton? Masa private, blokujesz rozwój klasy poprzez dziedziczenie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 556 Pomógł: 40 Dołączył: 20.07.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
klasa powstała w związku z dużymi formularzami i pewnie dlatego singleton w connect bo zapytania w zasadzie dotyczą jednej bazy, jest ich najwyżej kilka ale kolumn duzo
co do private to cenna uwaga ale na dzień dzisiejszy nie bardzo widzę jej rozwój przez dziedziczenie założenie było takie żeby ona wykonywała prawidłowe i przefiltrowane zapytanie i na tyle czytelne że w razie modyfikacji formularza/bazy/widoku (lub po prostu własnego błędu) można było szybko zmodyfikować duże zapytanie sql Ten post edytował kayman 6.11.2013, 21:22:30 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 4 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
crearteSQL? Powinno być raczej createSQL. Nie słyszałem o słowie "crearte". Może to i szczegół, ale warto to poprawić.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 556 Pomógł: 40 Dołączył: 20.07.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jako wartosc jakiego pola daj 0 a do bazy pojdzie NULL...
Jesli Tobie klasa pasuje to ok, w zasadzie nie nadaje sie do zadnego uzywania ot tak przez ludzi. Ograniczona funkcjonalnosc, definiowane danych polaczenia w samej klasie, o, przepraszam, jest changeConnect stosowanie die, ktore zabije mi aplikacje nawet jak nie chce tego brak obslugi zastrzezonych nazwa tabel i kolumn jak wartosc jest pusta to dla double ustawiasz 0, dla INT NULL. hm.... a co jesli ja chce nawet dla DOUBLE dac NULL a nie 0? No i czemu double jest wyroznione a int nie? $sql->setTable('kkk k left join iii i on k.kkk_id = i.id'); - no nie, tabela to tabela, a LEFT JOIN to LEFT JOIN, nie mieszaj tego -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 556 Pomógł: 40 Dołączył: 20.07.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
dzięki za sugestie, jeżeli chodzi o ograniczoną funkcjonalność to racja ale nie wiem czy kiedykolwiek da się stworzyć taką co przewidzi wszystkie opcje, dlatego porobiłem furtki typu setSqlString($string) lub addTextWhere($value)
wartośc 0 zamiast NULL dla double jest mi potrzebna do obecnej aplikacji i przeoczyłem to przy kopiowaniu kodu, oczywiście można wywalić tego ifa ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
dzięki za sugestie, jeżeli chodzi o ograniczoną funkcjonalność to racja ale nie wiem czy kiedykolwiek da się stworzyć taką co przewidzi wszystkie opcje, dlatego porobiłem furtki typu setSqlString($string) lub addTextWhere($value) wartośc 0 zamiast NULL dla double jest mi potrzebna do obecnej aplikacji i przeoczyłem to przy kopiowaniu kodu, oczywiście można wywalić tego ifa ![]() Da się, spójrz chociażby na ZEND-a. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat btw. PDO do mnie nie przemawia jakoś a może przyzwyczaiłem się do starego Nigdy nie zrozumiem po co ludzie tworzą takie potwory które robią nakładki, skoro jest PDO jako standard. Tylko po to, aby korzystać z metody "crearteSQL" która niewiele mówi i nie klepać ciągle SELECT/UPDATE itd? Absurd. edycja: źle przeczytałem mysqli_real_escape_string ... zdawało mi się, że mysqli ma być obiektowe... Ten post edytował !*! 10.11.2013, 11:06:16 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Ale on ma mysqli_ a nie mysql_
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
!*!
mysqli_* jest zarówno obiektowe jak i strukturalne(pewnie dla tych baranów co nie potrafia obiektowości i zakończyli swoja edukacje na mysql, a teraz bd musieli pozmieniac na i przed ![]() Ta klasa ma sesns jeśli podpinamy rózne silniki bazodanowe, ale wtedy jest źle napisana bo ogranicza nas do jednego... Wiesz jak masz 50000 razy napisać SELECT... no to lepiej raz ![]() Ten post edytował com 11.11.2013, 00:29:18 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
mysqli_* jest zarówno obiektowe jak i strukturalne(pewnie dla tych baranów co nie potrafia obiektowości i zakończyli swoja edukacje na mysql, a teraz bd musieli pozmieniac na i przed ![]() O wersji strukturalnej nie wiedziałem... To już w ogóle jest głupotą. Ta klasa ma sesns jeśli podpinamy rózne silniki bazodanowe, ale wtedy jest źle napisana bo ogranicza nas do jednego... Wiesz jak masz 50000 razy napisać SELECT... no to lepiej raz ![]() 1. "SELECT/UPDATE/INSERT" nie zmieniają się, są stałe, więc co za różnica czy będę je miał w kodzie, a modyfikacja zapytania i tak będzie wymagała interwencji w ten ciąg. 2. Czym podpinanie w klasach podobnych jak powyższa, różni się od tego z PDO? Już nie mówiąc o tym, że w większych aplikacjach i tak nie stosuje się takich nadbudówek, bo o wiele wydajniej jest napisać na krótko zapytanie, niż zaprzęgać do tego kombajn, często wadliwy. Rozumiem klasy które mają za zadanie łączenie się z SQL np. pobierając z cfg login i hasło z portem, ale takie coś? Bleee, ohyda. ps. takie coś, ma niby mi zaoszczędzić czasu?
To mi przypomniało bzdurą historię sprzed kilku dni... empty() nie jest funkcją! I świat się zmienił... -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
!*! ok masz rację, przyznaje się rzuciłem tylko pobierznie na to okiem, faktycznie ta klasa nie ma sesnsu..
Cytat O wersji strukturalnej nie wiedziałem... To już w ogóle jest głupotą. Widze ktoś dawno nie zagladał do manuala http://www.php.net/manual/en/mysqli.construct.php ,ale pewnie pracujesz na PDO ![]() ![]() Cytat 1. "SELECT/UPDATE/INSERT" nie zmieniają się, są stałe, więc co za różnica czy będę je miał w kodzie, a modyfikacja zapytania i tak będzie wymagała interwencji w ten ciąg. Właśnie o to chodzi, że się nie zmieniają i to miałem na myśli, na ale faktycznie to co naskrobał za bardzo przypomina PDO i tym samym traci sens ![]() Cytat To mi przypomniało bzdurą historię sprzed kilku dni... empty() nie jest funkcją! No wiesz niektórym wydaje sie, że wiedzą lepiej od nas ![]() ![]() ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 25 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Pozwolę się wtrącić.
Bo jakoś dziwnym trafem każdy kto dodaje tu prace od razu dostaje fale krytyki a przecież nie każdy jest PRO i od czegoś trzeba zacząć. Uważam, że takie klasy jak ta są bardzo ważne i potrzebne, ponieważ pomagają autorowi i klientom klasy ogarnąć podstawy obiektowości i podstawowe polecenia sqla. O wersji strukturalnej nie wiedziałem... To już w ogóle jest głupotą. Zgadzam się. 1. "SELECT/UPDATE/INSERT" nie zmieniają się, są stałe, więc co za różnica czy będę je miał w kodzie, a modyfikacja zapytania i tak będzie wymagała interwencji w ten ciąg. a hermatyzacja, polimorfizm i pierwszeństwo interfejsów nad implementacją? 2. Czym podpinanie w klasach podobnych jak powyższa, różni się od tego z PDO? Fasadą, możemy bez zmian w kodzie zmieniać implementację klasy na: inne silniki, PDO, pliki, nierelacyjne bazy danych. Już nie mówiąc o tym, że w większych aplikacjach i tak nie stosuje się takich nadbudówek, bo o wiele wydajniej jest napisać na krótko zapytanie Oczywiście, jednak nie wyobrażam sobie przepuszczania zapytań bezpośrednio przez klasy systemowe nawet przez PDO. niż zaprzęgać do tego kombajn, często wadliwy. Czy ta klasa to kombajn? ps. takie coś, ma niby mi zaoszczędzić czasu?
Czy więcej kodu oznacza więcej straconego czasu? Czy w programowaniu obiektowym chodzi zawsze o mniejszą liczbę kodu(np metody typu: get, set)? Czy może o czytelność i łatwość rozbudowy? No wiesz niektórym wydaje sie, że wiedzą lepiej od nas ![]() To kim wy jesteście, że wiecie wszystko najlepiej? W takim razie sprzedaję 28 tomów encyklopedii jak wy wszystko wiecie najlepiej. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat a hermatyzacja, polimorfizm i pierwszeństwo interfejsów nad implementacją? To nie ta bajka. Cytat Fasadą, możemy bez zmian w kodzie zmieniać implementację klasy na: inne silniki, PDO, pliki, nierelacyjne bazy danych. Jak coś jest do wszystkiego, to jest do niczego. Z tego co pamiętam w OOP właśnie chodzi o rozbicie wszystkiego co możliwe, a nie budowę jednego kombajnu który ma w sobie wszytko. W powyższej klasie nie ma rozbicia na inne silniki, odróżnienie bazy od SQL / pliki. Jest tylko nadbudówka która nie jest przydatna, ponieważ wszytko to jest dostępne natywnie z poziomu PDO. Cytat Czy więcej kodu oznacza więcej straconego czasu? Czy w programowaniu obiektowym chodzi zawsze o mniejszą liczbę kodu(np metody typu: get, set)? Czy może o czytelność i łatwość rozbudowy? Czytaj wyżej. Nie chodzi o ilość kodu do napisania, tylko o elastyczność której tu brakuje. Nie ma sensu pisać
skoro jest
A że nie muszę pisać polecenia SQL w całości z palca? Co z tego skoro muszę i tak zrobić odwołanie do metody. Dlatego spór o to czy pisać główną konstrukcje czy nie, był dobry tak samo jak klasy które tworzyły jeden interfejs, dawno temu, przed PDO. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Uważam, że takie klasy jak ta są bardzo ważne i potrzebne, ponieważ pomagają autorowi i klientom klasy ogarnąć podstawy obiektowości i podstawowe polecenia sqla. Sam sobie przeczysz.. bo jak ktoś skorzysta z takiej "klasy" nie majac duzego pojecia itak nie pozna np sql bo wszystko ma opakowane i wywołuje to np jak tu
co mu tak naprawde nic nie mówi... Ja w pierwszej swojej wypowiedzi przeoczyłem to, na co zwrócił mi uwage !*! i miał rację, ponadto wymyślanie koła na nowo tylko dla satysfakcji, że działa jest bez sensu, w tym przypadku ponieważ tak jak powiedziano ta klasa nie ma niczego wiecej niż dostarcza nam PDO, a nawet dało by się wymienić szereg ograniczen, chociażby wspomniane przez mnie czy prez Ciebie inne silniki bazodanowe... Cytat To kim wy jesteście, że wiecie wszystko najlepiej? Nikt nie wie wszystkiego tym bardziej najlepiej, źle zinterpretowałeś te słowa, chodziło o to że przychodzą tu osoby, które nie posiadają wiedzy, bo sie jescze uczą i próbują nam wmawiać, że cos nie działa albo działa zupełnie inaczej niż ma, a sami nawet czesto nie zajrzeli do manuala, tylko mówią bo im sie tak wydaje... i potem potrafia prowadzic dyskusje na jakis temat która itak kończy sie na tym że sie okazuje iż mieliśmy rację... Nie twierdze że nik nie ma prawa do pomyłek, ale jesli jest sie czegoś pewnym to trzeba miec na to niezbite dowody... Najlepiej zakończmy te dyskusję bo powoli odbiega ona od tematu oceny.. Jedno jest pewne !*! masz napewno rację ![]() Cytat Wiesz jak masz 50000 razy napisać SELECT... no to lepiej raz Tutaj faktycznie to jest tak jak powiedziałeś, choć można by zaimplementować to troche inaczej z zachowaniem elastyczności i troche w kierunku tego co powiedziałem, ale to już nie w tym temacie, dlatego Twoje argumenty są jak nabardziej słuszne jesli chodzi o klase zaprezetowaną w tym wątku i też sie z Tobą zgadzam ![]() Ten post edytował com 12.11.2013, 23:33:02 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 17:24 |