![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam !
Wybór odpowiedniej architektury projektu często zależy od późniejszej szybkości jego ulepszania/wprowadzania zmian, unowocześniania itd. Pytanie tylko jak zaprojektować odpowiednią architekturę i rozwiązać podstawowe problemy takie jak: 1) System plików i katalogów - tzn jaką należy zaproponować strukturę katalogów ? Katalog główny aplikacji, gdzie trzymać piki JS, CSS, HTML i inne ? Czy dobrym rozwiązaniem jest wyodrębnienie katalogu src, w którym znajdować się będą poszczególne katalogi zawierające pliki JS, CSS, HTML itd. Jak oddzielić od siebie poszczególne aspekty projektu ? Czyli kod html od kodu php, odrębną sekcję obsługującą ajaxy itd itp ... czyli ogólnie - struktura katalogowa i co gdzie trzymać ? 2) Podział na moduły - tzn jak podzielić odpowiednie części projektowanego portalu ? Przykładowo mamy jakiś system, a w nim panel użytkownika i zakładki na których są sekcje rownież podzielone na zakładki ... i na jednej z zakładek mamy formularz, który też jest podzielony na sekcje ![]() 3) Zarządzanie danymi - tzn gdzie trzymać dane wpisywane przez użytkownika i w jaki prosty sposób zarządzać nimi i zależnościami pomiędzy nimi [może pliki XML ?]. Przykładowo, użytkownik wpisuje na pierwszej zakładce jakąś wartość od której zależy układ następnych zakładek (przykładowo na pierwszej zakładce są dane ogólne klienta gdzie wybieramy "nowy klient sklepu" lub "klient sklepu od XX miesięcy" -> jeśli wybierzemy klient sklepu od XX miesięcy, na drugiej zakładce zestaw danych będzie inny). Jak tym łatwo zarządzać i gdzie przechowywać dane, które aktualnie user wypełnia [bo przecież nie w sesji ? to potworne marnotradztwo]. Słyszałem o takim pojęciu jak PostBack, gdzie dane bodajże są wysyłane Ajaxem, sprawdzana jest ich poprawność w czasie rzeczywistym i cały czas jest zachowany STAN aplikacji. Czyli kolejne pytanie - co gdzie i jak ? 4) Wzorce projektowe i frameworki - słyszałem o MVC ale nie mam pojęcia z czym to się je ? Próbowałem instalować Symfony ale podczas generowania projektu z konsoli "symfony generate:project nazwa_projektu" otrzymuje komunikat "A project named nazwa_projektu already exists in this directory.". Nie mam pojęcia za co się zabrać i jak ? 5) Elegancki i przejrzysty kod - tu jest temat morze ![]() ![]() 6) Właściwe korzystanie z dobrodziejstw - czyli kiedy używać sesje a kiedy nie ? Jakich rozwiązań się wytrzegać ? Co najbardziej spowalnia działanie ? Jakiego rodzaju instrukcji starać się unikać ? W jakim środowisku najlepiej to robić [może Eclipse] ? Czy tworzenie bazy i uzupełnienie jej przykładowymi danymi pozostawić w plikach sql ? Do tej pory robiłem to ręcznie w PHPMyAdmin. Czy korzystać z Subversion [Np tortoise lub subclipse do eclipsa] ? Te i inne problemy opiszcie prosze tutaj. Pozdrawiam Domin
Powód edycji: [erix] przenoszę
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 9 Dołączył: 6.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
poruszazs takie tematy, na ktore na tak na prawde sam sobie mozesz odpowiedziec. Wszytko jest kwestia gustu, o którym sie nie dyskutuje. Zawsze mozesz doczytac kilka poradnikow aby rozjasnic sobie pole manewru.
Ja zabierajac sie za projekt CMS najpierw prestudiowalem wszystko co znalazlem w internecie na temat frameeworkow, cms, itp ![]() -------------------- www.quider.pl <- moja prywatna strona
Pomogłem? Kliknij Pomógł |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
szczerze? zainteresuj się jakimiś frameworkami. Nie tyle, żeby na nich coś stworzyć, tylko, żeby nabrać dobrych nawyków i poznać różne techniki. A o MVC jest tyle w necie (i na php.pl), że sobie znajdziesz.
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Myślisz w dobrym kierunku, nawet znalazłeś pełną odpowiedź - Twoje problemy rozwiązuje MVC, najlepiej zacznij od jakiegoś frameworka - narzuci Ci styl. Jeśli symfony jest dla Ciebie za trudne, to może zobacz inny. Prócz symfony i zenda nie masz większego wyboru. Zend jest łatwy w instalacji, zobacz go.
3) wypełnione już dane to trzymiesz w bazie, a nie w plikach. Chyba że czegoś nie skumałem? 5) tylko i wyłącznie obiektówka, strukturalnie to możesz pisać proste skrypciki np pod crona. Ucz się MVC, reszta wozrców sama się przypałęta. Wcześniej jednak musisz potrafić pisać obiektowo. Z reguły nie mieszamy kodu php z html, do tego są różne systemy szablonów albo alternatywna skladnia php. Ten post edytował plurr 2.04.2009, 07:24:07 -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
3) wypełnione już dane to trzymiesz w bazie, a nie w plikach. Chyba że czegoś nie skumałem? Chodzi mi o dane, które trzeba trzymać w formularzu zanim trafią do bazy (aby np przy błędzie lub odświeżeniu user nie musiał za każdym razem tego wpisywać) ... trzeba je jakoś tymczasowo zapisywać bo równie dobrze mogą trafić do bazy (jeśli wszystko Ok i są poprawne) lub użytkownik odświeży przeglądarkę i wtedy utraci dane, które wpisał. Co sądzicie o Ajaxie ? Tzn dokładnie sprawdzanie danych formularza Ajaxem vs. JavaScriptem ? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Tzn dokładnie sprawdzanie danych formularza Ajaxem vs. JavaScriptem ? Była dyskusja na ten temat. Powinny być oba sprawdzania - AJAX: np. czy login jest zajęty, czysty JS: poprawność składni. Cytat trzeba je jakoś tymczasowo zapisywać bo równie dobrze mogą trafić do bazy (jeśli wszystko Ok i są poprawne) lub użytkownik odświeży przeglądarkę i wtedy utraci dane A od czego masz sesje? -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
A od czego masz sesje? Wiadomo w sesji można to trzymać ale np trzymanie dużej ilości danych to raczej jej zawalanie. Pozatym gdy user odświeży przeglądarkę dane które zostały przez niego już wprowadzone znikną. Można by je zapamiętywać w sesji gdy zostaną zwalidowane ... ale jak to zrobić JavaScriptem ? Mam jeszcze jedno pytania: Gdzie trzymać zapytania SQL ? w jednej klasie udostępniającej metody wykonujące operacje na bazie ? Np getAllUsers(){} - zwraca userów ... ? Pozatym przykładowe zapytanie: select * from users where name='$username' AND pswd='$userpswd'; ... jest z tego co słyszałem błędne ponieważ lepiej jest używać "bindowania zmiennych" - czyli kolejny temat. Z czym to się je ? Może jakieś przykłady [bardzo uproszczone/prowizorka] |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak chodzi o zapytania SQL i ich trzymanie w jednym miejscu zainteresuj się wzorcem fabryki (jak się nie mylę)
![]() Natomiast bindowanie polega na dynamicznym podpinaniu wartości do zapytania SQL. W ten sposób wysyłasz raz szkielet zapytania do bazy danych a później np. w pętli wysyłasz dane potrzebne do jego wykonania. Poza tym że skraca to czas wykonania to jest bezpieczniejsze bo odporne na ataki typu SQLInjection, ponieważ baza danych sama kontroluje typ danych jakie powinna dostać. Więcej na temat bindowania -> Biblioteka PDO -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Wiadomo w sesji można to trzymać ale np trzymanie dużej ilości danych to raczej jej zawalanie. Czy ja wiem; zależy od formularza. Ale np. 20 KiB zserializowanych danych sesji, to nie jest dużo. Cytat Pozatym gdy user odświeży przeglądarkę dane które zostały przez niego już wprowadzone znikną. Można by je zapamiętywać w sesji gdy zostaną zwalidowane ... ale jak to zrobić JavaScriptem ? Przekazujesz token żądania w GET. Cytat Mam jeszcze jedno pytania: Gdzie trzymać zapytania SQL ? w jednej klasie udostępniającej metody wykonujące operacje na bazie ? Np getAllUsers(){} - zwraca userów ... ? Zainteresuj się modelem z MVC. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:26 |