![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Postanowiłem stworzyć w ramach ćwiczenia i nauki prostego CMSa. Na razie większość funkcji jest w budowie jednak mam już stworzonych parę funkcji (function.php). Chciałbym abyście ocenili jaka jest "amatorskość" tego kodu i jakie rozwiązania zmienić pisząc kolejne funkcje. Co poprawić, co zmienić żeby nie była to typowa "amatorszczyzna początkującego".
Załączam skrypt. Proponuje skupić się na pliku function.php bo jest to "serce" tego skryptu. https://sourceforge.net/projects/ncmsrekami.../?source=navbar Adres przykładowej strony: http://rekamil.zz.mu/ Ten post edytował rekamil97 1.05.2015, 22:55:59 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Załączam link do pobrania tych kliku plików w zipie. tak się nie robi, komu będzie się chciało ściągać w zipie. Nie lepiej wrzucać na jakimś GitHubie czy czymś podobnym? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dodałem na "sourceforge". Plik function.php można zobaczyć tu:
http://pastebin.com/uDBTJdhy |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Na pierwszy rzut:
- połaczenie z DB przekazuje jako parametr w __construct itp - nie wyświetlaj tylko zwracaj dane - skoro $id = 0; to po co jeszcze zapytanie do bazy ? Zacznij od jakiejśc dobrej książki albo tutoriali, dopiero pisz kod, zaczniesz od dobrych nawyków. -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli już zaczynasz coś obiektowo pisać, to pisz to chociaż wg jakichś standardów: http://www.php-fig.org/psr/psr-1/ http://www.php-fig.org/psr/psr-2/ (szczególnie 4.1 i 4.2)
global - tego już się nie używa Zamiast $id = 0 wyrzuć wyjątkiem czy 404 po prostu. Zainteresuj się jakimś systemem szablonów (twig np) bo będziesz miał sieczkę a nie CMS ![]() A i jeszcze jedna sprawa, albo utrzymujesz kod po angielsku, albo po polsku (chociaż wg mnie dużo lepiej po angielsku ![]() Ten post edytował ohm 1.05.2015, 12:52:03 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
- nie wyświetlaj tylko zwracaj dane - skoro $id = 0; to po co jeszcze zapytanie do bazy ? Czyli zamiast echo - return? Jeśli chodzi o to $id = 0 w lini 68 to jest sprawdzanie czy w bazie jest rekord. Jeśli zapytanie zwróci id i RowCount go policzy - oznacza że jest jakiś news z tym id. Jesli nie ma wyświet stronę główną |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
W 65 przypisujesz pod $id 0 więc oczywiste, jest że nie ma takiego news.
Tak, chodzi o return. -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przypisuje po to pod $id 0 aby potem RowCount dostał pusty wynik - jak dostanie pusty wynik wyświetla strone główną. Gdybym nie utworzył zmiennej $id to linia 69 by wywaliła że nie ma takiej zmiennej $id:
Ten post edytował rekamil97 1.05.2015, 14:06:15 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Inaczej: skoro wiesz, że Id będzie równe zero, to może warto odrazu wyświetliś stronę główną bez dodatkowego zapytania ?
-------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Nie używaj nawiasów wraz z echo, są zbedne.
Return każdej z funkcji. -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Inaczej: skoro wiesz, że Id będzie równe zero, to może warto odrazu wyświetliś stronę główną bez dodatkowego zapytania ? Ale gdybym wyświetlił stronę główną zamiast przypisywać $id = 0 to i tak musiał bym mieć mieć drugi raz wyświetlanie strony głównej gdyby id nie istniało (np dla id -1 nie istnieje news więc RowCount zwraca 0 więc wyświetlam stronę główną) w bazie więc kod by się rozbudował i zdublował 2 razy tym samym. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 31 Dołączył: 10.01.2007 Skąd: Bydgoszcz/Inowrocław Ostrzeżenie: (0%) ![]() ![]() |
![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Pomyśle nad takim rozwiązaniem tej funkcji. Jeszcze zamieszczam cały stary kod:
https://sourceforge.net/p/ncms2/code/ci/master/tree/ Żeby można było swobodnie go zobaczyć |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Nie zamieszczaj starego kodu, tylko popraw to o czym piszemy i dopiero cokolwiek wrzucaj. Najlepiej gdybyś pokazywał/poprawiał pojedyńcze funkcje na początek, wtedy złapał byś gdzie popełniasz błedy.
-------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 24 Dołączył: 12.05.2013 Skąd: Hamburg Ostrzeżenie: (0%) ![]() ![]() |
Skoro się dopiero uczysz, to ja polecam zapoznać się z takimi cudami jak programowanie obiektowe, clean code i design patterns. Potem już możesz stukać kod. To, co do tej pory napisałeś nie powinno nigdy ujrzeć światła dziennego. Zacznij od podstaw, bo jak dzisiaj nabierzesz złych nawyków, to już tak ci zostanie... A to nie wróży niczego dobrego programiście. No chyba, że szczytem marzeń jest dla ciebie robienie prostych stronek/wizytówek. Ale raczej nie jest, prawda?
Ten post edytował Xelah 18.05.2015, 08:19:14 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:41 |