![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym prosić o ocenę kodu programowego (PHP + MySQL) mojej bardzo prostej aplikacji internetowej (sieć reklamowa). Całość napisana w dwóch wersjach (Symfony i własny szkielet aplikacji w PHP).
Aplikacja w Symfony + biblioteka do obsługi Api: https://github.com/webeeq/symfony.eeq https://github.com/webeeq/sieciq Własny szkielet tej samej aplikacji w PHP: https://github.com/webeeq/framework.eeq Obydwa projekty poddawałem już ocenie jakieś dwa lata temu, ale nie widzę nigdzie tamtego wątku, więc tworzę nowy. Pewnie został skasowany. Obecne wersje zawierają liczne poprawki. Prosiłbym zwrócić szczególną uwagę na zagadnienia: 1. Tworzenie klas encji tabel bazy danych w Symfony. Czy dobrze to robię? Chodzi mi głównie o brak deklaracji opcji "default". 2. Jakie wzorce projektowe poza Dependency Injection powinienem użyć w moich projektach. Jakie wzorce warto jeszcze znać? 3. Czy zapytania SQL (w cudzysłowie '...') mogą być w wielu liniach. Nie powoduje to błędu, ale czy to ładnie tak programować? 4. Czy z takim programowaniem, jak moje, jest sens w ogóle starć się o pracę? Bądź lepiej będzie, jeśli dam sobie z tym spokój? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Klasa Param to cala prawie do wyrzucenia. Jaki jest jej sens w ogole?
Czemu konfig bazy danych znajduje sie w repo? A co jak inna osoba ma inne dane do bazy niz ty? Niby uzywasz jquery a potem i tak do ajaxa masz function ajaxData(id, file) { if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById(id).innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET", file, true); xmlhttp.send(); } to po co te jquery? Cytat PS. $code = ($_GET['code']) ? (int) $_GET['code'] : 404; Ja też tak piszę. Ma to zapobiec przypadkowemu złemu warunkowaniu w operatorze ternary. Jakis przyklad takowego przypadkowego zlego warunku?zas co do TINYINT(1) to najlepsze jest to ze miesiac temu o to pytales. Wyciagasz w ogole jakas nauke z naszych odpowiedzi czy walimy w powietrze wszystko? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
zas co do TINYINT(1) to najlepsze jest to ze miesiac temu o to pytales. Wyciagasz w ogole jakas nauke z naszych odpowiedzi czy walimy w powietrze wszystko? Myślałem, że dla typów logicznych ten (1) ma znaczenie. W całej reszcie zrobiłem bez liczb w nawiasach. W Symfony 4.4 używają TINYINT(1) dla logicznych: https://github.com/webeeq/symfony.eeq/blob/...00326095423.php Cytat nie $code == 403 a $code === 403 naucz sie uzywac === Czy używanie dokładnego przyrównania jest bezwzględnie wymagane, jeśli nie przyrównuję do zera lub wartości logicznej? W dokumentacji chyba robią zamiennie. Cytat Plik index.php i ten zajebiscie duzy switch...case no wola o pomste do nieba (IMG:style_emoticons/default/wink.gif) Nie tworz takich kobyl, robijaj rzeczy na serwisy, klasy Ten plik index.php odpala kontrolery w oparciu o parametr wywołanej strony. Kontrolery natomiast odpalają serwisy aplikacji. Jak to mogę zrobić lepiej i prościej? Cytat po co takie // src/Controller/ShowSiteController.php wstawki w kontrolerach? Czemu to sluzy procz faktu ze niczemu? Takie komentarze dodawali w dokumentacji Symfony, więc też tak robiłem. W sumie nie sprawdzałem, czy robią to nadal. I faktycznie nie ma to większego sensu. Cytat W kazdym kontrolerze masz ->dbConnect() ->dbClose(); Cala masa zbednego i zduplikowanego kodu Wzorowałem się na Symfony z tymi kontrolerami. Jedna podstrona = jeden kontroler. Jak to mogę zrobić lepiej, aby nie duplikować tego kodu w kontrolerach? (IMG:style_emoticons/default/wink.gif) Cytat Unikaj taki potworkow z referencjami. Jak funkcja ma zwracac dane, to zwracaj je jako tablica a nie przez referencje Co zrobić, gdy metoda zwraca tablicę z wynikiem zapytania do bazy i dodatkowo chcę zwrócić (zmienić) jakąś wartość dla parametru, który i tak muszę podać? (IMG:style_emoticons/default/smile.gif) Cytat CityListModel ktory jest katalagu model/Ajax Nie tworz modeli pod akcje. Model to model, akcja to akcja. Model moze byc odpalony w kazdej akcji Czyli jak w Symfony? Oddzielny model dla zapytań do tabeli `users` i oddzielny do `sites`? Tylko jak realizować połączenia z bazą danych? W konstruktorach? Kurczę. Napisałem się jak głupi, a tu błąd, że zbyt dużo cytatów. I nie mogę reszty dodać... (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 09:14 |