Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Hierarchia w CMS
Forum PHP.pl > Forum > Przedszkole
dens666
Cześć,
jest to mój pierwszy post tutaj więc chciałbym na początek wszystkich powitać, na imię mi Michał mam 19 lat i informatyką interesuje się od dzieciństwa, wszystkim po trochu.
Ok teraz przejdzmy do mojego problemu, wygląda on następująco otóż od niedawna wynika to z tego iż mam zbyt dużo wolnego czasu, próbuję napisać swój własny mini CMS.
Nic zaawansowanego, logowanie + rejestracja, wszystko oparte na sesjach, system banowania, edycja profilu użytkownika, lekki panel administratora (Zmiana danych strony, title, desc, etc) i w sumie to tyle, dopiero poznaję tajniki PHP/MYSQL.
To co wyżej opisałem przełożyłem również na praktykę, i nie było najgorzej, lecz teraz już zaczynam się we wszystkim gubić, duży chaos, to jest coś niesamowitego...
Postanowiłem że zasięgnę porady u bardziej doświadczonych użyszkodników, mój problem plega główie na tym że nie wiem jak sobie to wszystko najlepiej rozplanować.
Potrzebuję kilku sugestji co do hierarchi plików, folerów oraz to jak między nimi się przełączać na stronie. Dotychczas używałem systemu podstron: http://rafal.brzezinski.me/system_podstron , lecz ten system jest straszny, strasznie kłopotliwe i drażniące jest dodawanie nowych stron etc. ogólnie sam skrypt nie jest najlepszy.
Ok dobra bo sam się już pogubiłem, w skrócie opiszę czego od was oczekuję.

- Hierarchia plików, jak powinna najlepiej wyglądać (katalogi i podstawowe pliki, jakie?).
- Jakiś system szablonów, coś jak z linku powyżej, najlepiej jakby było oparte o bazę MYSQL i mało lekki panel z możliwością dodawania i usuwania stron.
- I czy są jakieś gotowe funkcje dla strony w PHP? Chodzi mi np. o takie pliki z funkcji do sesji albo coś do ciasteczek, jakieś zaawansowane skrypty do podłączenia do strony (Nie odsyłajcie mnie do Frameworków).
- Budując stronę opartą o jakiś własny skrypt od czego zaczynacie? Najpierw php potem oprawa strony? Czy jak?

Byłbym bardzooo wdzięczny za jakieś rady.
Pozdrawiam Michaś.
slash^
Budujac swoj własny skrypt zaczynamy od frameworka gdyż nie ma sensu wymyślać koła na nowo i pisać wszystkiego od zera smile.gif
Zainteresuj się MVC.
in5ane
Proponuję Ci poznać framework Kohana, imo w wersji 3. Nauczysz się pisać obiektowo, będziesz w miarę stosował pewne standardy. W sieci jest mnóstwo przykładów, tutoriali (bogata społeczność). Doczytałem Twoje Nie odsyłajcie mnie do Frameworków, odpowiedz mi dlaczego. Boisz się, że tego nie ogarniesz? Ja też na początku bałem się, że pogubie się, a wręcz przeciwnie, framework wykonuje za mnie ponad połowę pracy. Korzystanie z framework'ów (w dodatku dobrze rozwijających się) niesie same korzyści. Poza tym, gdy ktoś obcy siada do Twojego kodu, to nie musi go bardzo analizować, gdyż jak zna ten framework, to mniej więcej wie gdzie i co szukać. Przemyśl to, myślę, że naprawdę udzieliłem Ci cenne wskazówki.

@edit:
Cytat(dens666 @ 14.04.2014, 23:30:37 ) *
- Budując stronę opartą o jakiś własny skrypt od czego zaczynacie? Najpierw php potem oprawa strony? Czy jak?
Wszystko zależy od różnych czynników. Jeśli jesteś front-end'owcem (lub grafikiem) to zacznij sobie od tego. Budując graficznie stronę główną wiesz już chociaż, jakie będziesz potrzebował na start funkcjonalności (abyś niczego nie pominął).
dens666
Cytat(slash^ @ 15.04.2014, 00:37:48 ) *
Budujac swoj własny skrypt zaczynamy od frameworka gdyż nie ma sensu wymyślać koła na nowo i pisać wszystkiego od zera smile.gif
Zainteresuj się MVC.

Dzięki, na pewno zaraz zerknę na ten framework.

Cytat(in5ane)
Proponuję Ci poznać framework Kohana, imo w wersji 3. Nauczysz się pisać obiektowo, będziesz w miarę stosował pewne standardy. W sieci jest mnóstwo przykładów, tutoriali (bogata społeczność). Doczytałem Twoje Nie odsyłajcie mnie do Frameworków, odpowiedz mi dlaczego. Boisz się, że tego nie ogarniesz? Ja też na początku bałem się, że pogubie się, a wręcz przeciwnie, framework wykonuje za mnie ponad połowę pracy. Korzystanie z framework'ów (w dodatku dobrze rozwijających się) niesie same korzyści. Poza tym, gdy ktoś obcy siada do Twojego kodu, to nie musi go bardzo analizować, gdyż jak zna ten framework, to mniej więcej wie gdzie i co szukać. Przemyśl to, myślę, że naprawdę udzieliłem Ci cenne wskazówki.


Powiem tak, co do frameworku Kohana już miałem styczność z jedną z jej wersji, tylko że własnie mój problem tkwi że ja chciałbym mieć jak najmniej kodu i żeby był jak najbardziej zrozumiały dla mnie (czyt. na moim poziomie podstawowym), kohana to rozbudowany system, nie ukrywam z tego co pamiętam bardzo mi się podobał, ale tworzenie na nim strony doprowadzało mnie do palpitacji serca. Pewnie dlatego że się dopiero uczę i poznaję możliwości PHP. Kohana jest bardzo znana, tak tylko że już korzystając z niej nie będę się czuł jak na swoim. Nie chce korzystać z framworków bo nie mam dużych wymagań i nie wykorzystałbym w pełni zasobów owego Frameworka, no i nie zrozumiem jego działania. Mam takie pytanie, czy byłbyś w stanie skontaktować się ze mną na Gadu? Miałbym kilka takich szybkich pytań do Ciebie jakbym już zaczął w tej Kohanie.

Dzięki chłopaki za szybką odpowiedz, żeby nie zakładac nowego tematu, zapytam tutaj.
Co powiecie o Kohanie?
Pytania:
Jakie są jej największe zalety według Was
Czy posiada systemy logowania, rejestracji?
Jak działa system szablonów na tym cudeńku?
in5ane
Cytat(dens666 @ 15.04.2014, 09:55:55 ) *
Nie chce korzystać z framworków bo nie mam dużych wymagań i nie wykorzystałbym w pełni zasobów owego Frameworka, no i nie zrozumiem jego działania.
Nie musisz wykorzystywać wszystkich "zasobów" Kohany, część niepotrzebnych modułów można nie uruchamiać, zaś podstawowa Kohana i tak jest szybka. A nawet do prostej strony Kohana się nadaje, bo wiele za nas zrobi, np. walidację wprowadzanych danych, fajny routing, narzucone z góry MVC itp.

Cytat(dens666 @ 15.04.2014, 09:55:55 ) *
Mam takie pytanie, czy byłbyś w stanie skontaktować się ze mną na Gadu? Miałbym kilka takich szybkich pytań do Ciebie jakbym już zaczął w tej Kohanie.
Nie korzystam z GG. Masz pytania, pisz tutaj. Chętnie odpowiem.

Cytat(dens666 @ 15.04.2014, 09:55:55 ) *
Jakie są jej największe zalety według Was
Prostota, szybkość pisania aplikacji, szybkość działania.

Cytat(dens666 @ 15.04.2014, 09:55:55 ) *
Czy posiada systemy logowania, rejestracji?
Jest moduł auth odpowiedzialny za autoryzacje, na jego bazie można bardzo szybko zbudować logowanie czy rejestrację.

Cytat(dens666 @ 15.04.2014, 09:55:55 ) *
Jak działa system szablonów na tym cudeńku?
Dobrze działa. Jest template na którym się operuje, dość proste rozwiązanie. Warto jest rozszerzyć to o własny jakiś TemplateController.
aniolekx
zobacz sobie ten mini framework: http://phpixie.com/

łatwo w nim prześledzić workflow i zrozumieć jak działa.
in5ane
Ale po co wpychasz kogoś, kto nie ma pojęcia o OOP i framework'ach na taki niszowy framework? Kohana ma chociaż społeczność, która zawsze pomoże.
aniolekx
a skąd wiesz ze tamten nie ma? sprawdzałeś? Gdybym miał iść twoim tokiem rozumowania to zaproponował bym mu Symfony 2
in5ane
Cytat(aniolekx @ 15.04.2014, 16:42:54 ) *
a skąd wiesz ze tamten nie ma? sprawdzałeś? Gdybym miał iść twoim tokiem rozumowania to zaproponował bym mu Symfony 2
Tak, sprawdzałem! A Symfony 2 nikt nie ogarnie na start nie mając pojęcia o OOP. A co do społeczności Symfony vs. Kohana też bym dysktuował.
dens666
http://www.blog.kohany.com/kohana/2011/03/...ze-starcie.html
Nikt nie może powiedzieć że kohana jest dla początkująćych, tutaj się nie da nic samemu zrobić, nawet strona się nie wyświetla tylko jest błąd. Jak ja otwieram jakikolwiek plik to tam jest czarna magia dla kogoś kto nie zna dobrze PHP. Jakiś dobry tutorial obsługi tej maszyny? Bo na zdrowy rozum nie da się tu nic zrobić.
Po wrzuceniu plików do xampa i odpaleniu strony i ujrzeniu http://1.bp.blogspot.com/-S8cG-8afDpk/Ud9Z...0/errorsalt.jpg takiej strony to nie pozostaje nic innego jak strzelic sobie w głowę albo pomodlić za tych który tworzyli ten skrypt. Jak można wydać wersję która ma juz na starcie błędy i odstrasza potencjalnych nabywców? Wiem że to nie problem wklepać w google error i naprawić to usuwając bodajże linijke ale coś tu jest nie tak ...
Interesuje mnie tylko jakiś skrypt autoryzacji, coś dla sesji, rejestracja, logowanie i lekki panel nic więcej. Na kohanie nawet nie można się domyśleć gdzie powinny być jakie pliki, na sam początek jakieś kontrolery masakra.
Po odpaleniu strony nic nie ma oprócz błędy a skrypt ma 655 plików i 218 folderów, to jest jakiś żart? Nie wiem czy nawet tak rozbudowany system jak vBulletin czy PHPBB bądź przemek ma tyle folderów. Ci którzy projektowali kohanę musieli mieć przeterminowany towar, albo są takimi nerdami że nie brali pod uwagę że ludzie nie rodza się z wiedzą informatyczną w małym palcu...

edit://
znajdę do tego jakieś gotowe rozwiązania? Chciałbym zobaczyć jak to w ogóle działa, nie mogę nic znaleźć.
pitu
Cytat(in5ane @ 15.04.2014, 13:48:53 ) *
Ale po co wpychasz kogoś, kto nie ma pojęcia o OOP i framework'ach na taki niszowy framework? Kohana ma chociaż społeczność, która zawsze pomoże.


Tak samo Ty pchasz go w Kohanę, która nie będzie już rozwijana? smile.gif
-dens666-
w takim razie skoro żaden framework nie jest godny polecenia, to co dalej? Za co się wziąć?
Zna ktoś może jakiś bardzo ciekawy kurs php ? głównie mnie najbardziej interesują sesje, oraz tworzenie struktury strony, czyt. jak to wszystko że sobą połączyć.
tworzę index a w nim co?
Luna_s20
Ale sobie znaleźliście powód... Gdzie byście nie wpychali - jak ktoś się uczy, lepiej by pisał samemu(na tej samej zasadzie dzieciom na klasówkach nie wydaje się słowników i kalkulatorów - a przecież wówczas klasówki tak szybko i łatwo by przebiegały...)

Jak piszesz swój cms, to najważniejsze, żebyś ty się poruszał w katalogach jak najsprawniej i intuicyjnie. Jeśli się boisz że się pogubisz, wypisz sobie na kartce, co konkretnie ma posiadać strona(zamknij się do podstawowych funkcjonalności), i kolejno każdą z tych funkcjonalności dodawaj "od deski do deski"(dobrze jest po spisaniu takiej listy stworzyć podstawowy szkielet templatki, często wtedy przypomnisz sobie o czymś, co na kartce pominąłeś, lub zdołasz usunąć to, z czym za bardzo wybiegłeś), odznaczaj sobie już wykonane. Jeśli w trakcie pracy pojawi się nowy pomysł, spisz go sobie osobno, powiedzmy na kartce "pomysły" i wróć do niej, gdy wykonasz pierwsze założenia. Pomysł z kartką zwykle przy pierwszym podejściu wydaje się infantylny, ale to bez znaczenia bo jest skuteczny, a szczególnie przydatny gdy masz więcej projektów.
Katalogi staraj się nazywać nazwami sugerującymi zawartość. Wymyślne nazwy (typu _xyz145_src) tajemniczo i fajnie wyglądają, gdy do głównego katalogu zagląda całkowity laik, ale każdego innego(łącznie z tobą gdy po czasie wrócisz do projektu) rozśmieszą lub zdenerwują.

@jeszcze dwie uwagi:
Wiadomo że w trakcie pracy pojawić ci się mogą różne katalogi tymczasowe - chociaż ja tego nie polecam. Plik czy katalog z którego rezygnujesz przenosząc lub usuwając część pracy, lepiej od razu skasować .
Druga kwestia to szkielet - lepiej podstawowe templaty, pliki językowe etc tworzyć na bieżąco zgodnie z potrzebą i po skończeniu wszystkich punktów listy sobie zedytować - bo później będzie to mrówcza robota.
Gość
oo widzisz Luna_s20 dokładnie o takie rady mi chodziło. Całkowicie się z Tobą zgodzę że początkujący powinien zacząć od pracy samemu, bo wie co wtedy robi i co jak działa. Pomysł z kartka świetny, będę próbował.
Co do plików tymczasowych to również masz święta rację, na tym się zgubiłem. porobilem pliki nazwa_sjjsvk nazwa_dhdjs bo coś zmieniem i na wszelki wypadek jakbym chciał wrócić, i w końcu Mialem tyle plików że sam nie wiedziałem co do czego ;/
Wracając do hierarchi, czy ma ktoś z was swój szkielet strony który zawsze stosujecie? Mam na myśli budowę katalogów i jakiś zestaw pustych plików w nim który wypelniacie po drodze. Byłbym super wdzięczny za takie cos.
Kolejna sprawa czy includujac do indexu pliki np. z połączeniem mysql to zarówno np funkcja sprawdzajaca sesje lepiej żeby się znajdowała w pliku z połączeniem czy osobno czy jak?
in5ane
Cytat(dens666 @ 15.04.2014, 22:39:00 ) *
Po wrzuceniu plików do xampa i odpaleniu strony i ujrzeniu http://1.bp.blogspot.com/-S8cG-8afDpk/Ud9Z...0/errorsalt.jpg takiej strony to nie pozostaje nic innego jak strzelic sobie w głowę albo pomodlić za tych który tworzyli ten skrypt. Jak można wydać wersję która ma juz na starcie błędy i odstrasza potencjalnych nabywców?
A umiesz w ogóle czytać po angielsku? Proszę ustawić sól dla cookies! Przeczytałeś na stronie Kohany, jak się odpala od początku framework?
Gość
Akurat angielski znam bardzo dobrze z różnych przyczyn, ją rozumiem że to nie jest problem ale co jeśli z kohany będzie chciał skorzystać ktoś kto go jednak nie rozumie, i pierwsze co ujrzy to błąd? Nie sądzę by chciał dalej tkwić w czymś co nie ułatwia mu pracy.
Jakbyś mógł mi odpowiedzieć na pytanie wyżej byłbym niezmiernie wdzięczny. Nie chciałem Cię urazić czy coś wypowiadając się na temat kohany, po prostu wyraziłem opinię oraz odczucia jakie mi towarzyszyły odpalajac ją pierwszy raz.

Gość
@refresh
Prosilbym o odpowiedź na powyższe posty.
Za 3j wracam z jazd i chciałbym coś zmajstrowac ;D
Greg0
Polecam mikro frameworki Silex i Slim. Dobra szkoła programowania OOP, wzroców i całej reszty.
Kohana - nierozwijany projekt i już trochę przestarzały
Luna_s20
Ojć, zło widzę, zło. Puste pliki które po drodze wypełniamy? W żadnym wypadku wink.gif Też tak na początku kombinowałam, ale przekombinowałam. Pliki tworzę na bieżąco, bo "po drodze" zawsze okaże się, że ich ilość się zmieni.
I ZAWSZE ale to zawsze jak tworzę sobie backup własnych "nagłych i błyskotliwych" rozwiązań, całość wrzucam do osobnej biblioteki.
Załóżmy, stwórz sobie folder "Pracownia", a w nim folder "_w_trakcie", "gotowe_projekty", "skrypty". W folderze skrypty znów katalogi które podpowiedzą ci CO TO ZA SKRYPTY. Czyli (przykładowo) "Logowanie i rejestracja", "Zarządzanie treścią", "Obsługa plików graficznych", "Obsługa plików tekstowych", itd. W ten sposób nawet po 5 latach spoglądając w foldery, wiesz co gdzie jest. Nazwy takich swoich skryptów również nadawaj "oczywiste", nawet jeśli będą długie, by nie zastanawiać się później, gdzie czego szukać.

Gdy rezygnujesz z jakiegoś rozwiązania na stronie, przenosisz jego skrypt do takiej swojej biblioteki a z folderów projektu usuwasz, lub przenosisz go np do folderu "tymczasowe". Wtedy WIESZ NA PEWNO które pliki idą na serwer, a które do kosza po zakończeniu pracy.

Jeśli chodzi o strukturę katalogów strony, jest naprawdę różna w zależności od autora, i nie ma jednego "oczywistego i niezmywalnego" schematu.

Mogę Ci podpowiedzieć jak to może wyglądać. Żeby powiedzieć ci jak robią to inni musiałabym być "innymi", ale mogę ci podpowiedzieć jak ja się do tego zabieram.

adm -> tutaj będą pliki odpowiedzialne za panel zarządzania. Warto osobno podzielić na katalogi(wedle tej samej zasady co dla głównej strony) jeśli masz tego dużo
images -> wiadomo, obrazki wink.gif
- avatars -> awatary użytkownika/ów
- uploads -> jeśli użytkownicy mogą wgrywać wiele plików, warto ten folder podzielić na podfoldery, z których nazwa każdego odpowiada nazwie lub id użytkownika. Pomocne dla wyświetlania plików w profilach. Podobny system można zastosować do katalogu "files" jeśli np użytkownicy mogą wgrywać pliki do pobrania.

includes -> tutaj przechowuj pliki includowane na wybrane podstrony, funckje i klasy
- adm -> pliki includowane do panelu zarządzania
- editor -> pliki odpowiedzialne za wyświetlanie na stronie edytora
- mod -> pliki odpowiedzialne za moderację treści jeśli taką przewidujesz
js -> wiadomo, js smile.gif
lang -> tutaj siedzą pliki językowe jeśli takowe posiadasz
- en
- fr
- pl
- navi
theme
- css -> pliki css
- images -> ikony, logo, tła itd
- template -> szablony html
system
- auth -> weryfikacja dostępu użytkowników, grup itp, zasady sesji, itd
- content -> bbcode, emoty, pliki odpowiedzialne za przetworzenie języka i stylu
- user -> opcje profilu użytkownika

-connect.php -> plik odpowiedzialny za połączenie z bazą danych
-config.php -> plik importujący connect.php oraz pliki systemowe, by nie wpisywać całej listy każdorazowo tworząc podstronę
-help.php -> strona faq, kontaktu, polityki prywatności i regulaminu
-index.php -> wiadomo
-login.php -> wiadomo
-user.php -> profile użytkownika/ów
-reg.php -> plik rejestracji
-view.php -> plik wyświetlający tematy/artykuły/newsy itd


Z czasem na pewno wypracujesz sobie swoją, najwygodniejszą dla siebie strukturę, którą będziesz stosować szablonowo.
I będę obstawać przy tym, by nie zostawiać "śmieci" ani w strukturze, ani w skrypcie. Oraz by nie tworzyć już na początku 40 pustych plików a potem kombinować, jak i czym je wypełnić wink.gif
Przykładowo, do pliku "config.php" warto wczytać tylko to, co NA PEWNO będzie wczytywane na każdej stronie, a co znajduje się w "systemie", by strona nie wczytywała psu na budę potrzebnych plików za każdym razem. Z kolei taki podział pozwoli na ograniczenie zawartości plików znajdujących się w głównym katalogu co jest bardzo wygodne gdy musisz coś na szybko dodać albo zmienić. Rozmieszczając pliki określonym przez siebie, stałym sposobem, ogarniesz się również w każdym swoim dawnym projekcie bez potrzeby wczytywania się w całe strony kodu wink.gif

Podpowiem ci, że ja w katalogu danego projektu ZAWSZE trzymam plik "_db". Pliku nie umieszczam na serwerze, zawiera on pełną strukturę bazy danych, co ułatwia mi pracę.
PrinceOfPersia
Cytat(Greg0 @ 16.04.2014, 18:41:08 ) *
Polecam mikro frameworki Silex i Slim

mam pytanie w związku z tym. Odpisuję tu, żeby nie robić offtopu:
http://forum.php.pl/index.php?showtopic=18...p;#entry1107944
dens666
Luna_s20 - Wielkie dzięki, pięknie wytłumaczone, już zaczynam pracę którą porzuciłem kiedyś.
O takie rady mi chodziło, jesteś świetna!: )
Mam pytanie, czy miałabyś może GaduGadu? Byłbym wdzięczny jakbyś się ze mną skontaktowała GG://15944508, nie mam zamiaru spamować Ci milionami pytań, po prostu chciałbym zająć 5-10 minut Twojego czasu na pytania czysto teoretyczne na żywo.
Może byłabyś w stanie również pokazać mi jak wyglądają Twoje skypty mniej więcej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.