![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mimo iż wiem wiele na temat php, nie jestem jakimś ekspertem, więc proszę o wyrozumiałość. Chciałbym napisać swojego CMSa (własnego, bezpiecznego, na wzór innych).
Aby to zrobić, trzeba by napisać.... jakiś framework. Nie wiem wiele o tym, ale z tego co zrozumiałem z Wikipedii ułatwia tworzenie modelu (szablonu) jakiegoś projektu - na przykład strony WWW. Pomyślałem, że bezpieczniej będzie, jak wszystkie ważne zmienne umieszczę w pliku php z tablicą $_AXF (ma to trochę wspólnego z nazwą tego mojego "frameworka"). Ta tablica jest w oddzielnym pliku. Tak więc zacząłem pisać klasę pages, która będzie odpowiadać za każdą stronę. Treść stron to po prostu pole w tabeli "strony".
Mam parę pytań co do swojej klasy. 1. Czy umieszczenie w jednej klasie metod statycznych i tych, co trzeba do ich użycia zmiennej jest w porządku? 2. Czy lepiej, aby ta jedna klasa służyła do wszystkiego wiązanego ze stronami (dodawanie, edycja, wyświetlanie...), czy lepiej, abym stworzył kilka mniejszych ? -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Korzystasz z obiektówki i $GLOBALS...? -------------------- ![]() 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
#3
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Znaczy bo nie wiem: co jest źle? Bo to jest tak:
W pliku zmienne.php mam tablicę $_AXF. W niej mam dosłownie wszystko: dane o bazie, nazwę tabeli ze stronami i tak dalej. Ten plik ze zmiennymi includuję do pliku z klasą pages. No i jak zwykle, żeby zmienna z poza funkcji była widoczna, to muszę użyć $GLOBALS. Tak chyba jest w porządku. A jak nie, to jak proponujesz to zrobić ? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Zmiennych globlanych się unika jak ognia, bo często wprowadzają bałagan.
Zrób klasę statyczną, która będzie trzymała rdzeń. -------------------- ![]() 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
#5
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Aha, czyli po prostu taką klasę ze zmiennymi statycznymi publicznymi, do których można się odwoływać bezpośrednio ?
A i czy to nie jest źle, jak mam w jednej klasie wszystkie metody dotyczące w tym przykładzie stron ? Ten post edytował Asmox 16.03.2009, 19:32:46 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Zainteresuj się wzorcem rejestru, korzysta z niego m.in. symfony. Wzorzec ciekawy, wręcz stworzony do konfiguracji
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
OK, tylko za bardzo nie mogę się doczytać o tych wzorcach rejestru, bo na stronach są tylko suche "słownikowe" wyjaśnienia, tak że nic nie rozumiem. Jak proponujesz rozwiązać ten problem ze zmiennymi konfiguracyjnymi ? Proszę podaj jakiś przykład.
Mam też znowu kilka pytań: 1. W jakich plikach umieścić "ramy HTMLa" ? W szablonach (np. newsów, downloadzie itd.), czy gdzieś indziej ? 2. Jak dynamicznie generować pola klasy i po co właściwie? 3. Ciągle zastanawia mnie składnia odwołania: $this->view->error. Czy view to jakieś pole klasy, czy metoda... I jak można się w ten sposób odwoływać do zmiennej error ? 4. Wybrałem wyjątki, ponieważ przy wystąpieniu blokują wykonywanie kolejnych procesów, co na przykład przy bazach danych jest bardzo potrzebne. Czyżbyś sugerował mi powrót do konstrukcji die('Nie mogę utworzyć połączenia z bazą danych!') ? -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
4: absolutnie - po to stworzono wyjątki, aby z nich korzystać.
1,2,3: polecam lekturę o wzorcu MVC, rozwieją się wszystkie Twoje wątpliwości. -------------------- ![]() 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
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Ja sugeruję die()? W żadnym wypadku. Przecież nawet wiadomość wyjątku możesz pobrać do zmiennej, to i tak był tylko przykład.
Chodziło mi o to, że robisz sobie klasę View. Zapisujesz jej instancję do pola view twojej klasy Page. Potem w Page robisz $this->view->error (tworzy się tu automatycznie pole w klasie View, to dość dziwna cecha PHP ![]() Co do wzorca rejestru: masz 2 metody statyczne: set i get. Set zapisuje do statycznej tablicy, get pobiera. Do tego możesz dorzucić ładowanie np. z INI albo XMLa... Ten post edytował Mephistofeles 16.03.2009, 22:31:10 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
1,2,3: polecam lekturę o wzorcu MVC, rozwieją się wszystkie Twoje wątpliwości. Tiaaa.... pewnie już czas kupić nową książkę do PHP. Podstawy ostatnio są dla mnie niewystarczające ![]() -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Chcesz się brać za pisanie CMSa nie mając podstawowej wiedzy...?
Ja bym Ci proponował tego CMSa napisać przy wykorzystaniu jakiegoś FW, polecam Symfony, ale ZF, Kohana i inne też się oczywiście nadadzą |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie, nie źle mnie zrozumiałeś Crozin. Mam książkę o PODSTAWACH PHP pt. "Praktyczny kurs PHP5" autorstwa Marcina Lisa. Niestety są to tylko podstawy, a ja chciałbym dalej rozwijać swoją wiedzę o PHP (znaczy się, że opanowałem podstawy).
Co do wykorzystania Frameworków... Nie wiem, czy to źle, ale ja zawsze wolę wszystko zrobić samemu tj. w tym wypadku napisać własnego Frameworka, nawet jeśli będzie on nie tak dobry jak pozostałe. -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Co do wykorzystania Frameworków... Nie wiem, czy to źle, ale ja zawsze wolę wszystko zrobić samemu tj. w tym wypadku napisać własnego Frameworka, nawet jeśli będzie on nie tak dobry jak pozostałe. Własnego frameworka nie napiszesz - nie coś co mogło by być nazywane frameworkiem obok CakePHP, CodeIgniter, czy Symfony. To nie jest coś co nawet doświadczony programista pisze "od tak". Zamiast męczyć się z bezproduktywnym klepaniem kodu "prawie jak framework" naprawdę polecam skorzystanie z jakiegoś. Masz gotowy szkielet pod tworzenie aplikacji www o konkretnym działaniu ![]() -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Co do wykorzystania Frameworków... Nie wiem, czy to źle, ale ja zawsze wolę wszystko zrobić samemu tj. w tym wypadku napisać własnego Frameworka, nawet jeśli będzie on nie tak dobry jak pozostałe. Też kiedyś "tak miałem". Ale uwierz i ucz się na cudzych, a nie własnych błędach: nie warto. ![]() A już tym bardziej nie warto, gdy celem jest zrobienie CMSa, a nie FW. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Własnego frameworka nie napiszesz - nie coś co mogło by być nazywane frameworkiem obok CakePHP, CodeIgniter, czy Symfony. To nie jest coś co nawet doświadczony programista pisze "od tak". Zamiast męczyć się z bezproduktywnym klepaniem kodu "prawie jak framework" naprawdę polecam skorzystanie z jakiegoś. Masz gotowy szkielet pod tworzenie aplikacji www o konkretnym działaniu ![]() No bo sam nie wiem jak wykorzystać klasy - wszyscy piszą żeby sobie coś poczytać, albo coś innego, a ja za bardzo nie kumam. Więc wpadłem na pomysł na zbudowanie własnego FW, który zawsze by mi pomagał przy tworzeniu jakiejkolwiek strony i mógłbym go edytować jak mi się podoba. Pewnie Zend i inne FW też umożliwiają łatwe tworzenie własnych klas, ale chciałbym najpierw zrobić swojego. Żeby ogólnie się zaznajomić z klasami w PHP, z kilku powodów: - programowanie obiektowe to zapewne kierunek, w którym idą wszyscy programiści - znudziło mi się pisanie nieskończonej liczby funkcji i ich codzienne poprawianie - bo są fajne ![]() Chyba najpierw muszę dostać niezłego kopniaka od PHP, żeby zacząć używać normalnych Frameworków. Cytat(Crozin) A już tym bardziej nie warto, gdy celem jest zrobienie CMSa, a nie FW. Co ? Właśnie zamierzałem zrobić własnego CMSa na własnym Frameworku. -------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chcesz szybko skończyć swój projekt to polecam symfony - sam jestem nim bardzo mile zaskoczony, i bardzo prawdopodobne, że się na niego przerzucę w najbliższym czasie. Teraz również piszę własnego miniframeworka, ale z każdą kolejną klasą mi się coraz bardziej odechciewa
![]() |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Za dużo hasełek się naczytałeś... OOP, obiektowość, zawartość obiektu w obiekcie. Tworzenie prostego CMSa na 20 klasach abstrakcyjnych, singletonie i obiektowym ORMie samo z siebie brzmi dziwnie
![]() ![]() -------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 19 Dołączył: 2.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ale z drugiej strony doszliscie do takich wnioskow dopiero po napisaniu, lub rozpoczeciu swojego FW. Zauwazylem ze od momentu kiedy zaczelismy tworzyc swoj wlasny framework, wiele istotnych zagadnien i rozwiazan stalo sie o wiele bardziej zrozumiale. Latwiej mi teraz przegladac zrodla Symfony czy Zenda, uczyc sie z ich rozwiazan, czy je nasladowac.
Moim zdaniem pisanie swojego FW jest jednym z etapow ktore, dobrze jest przejsc, aby samemu dojsc do odpowiednich wnioskow. Kazdy kiedys zaczynal od globali, odkrywal PDO, czy ORM'y i ostatecznie sam wybierze sobie rozwiazania odpowiednie dla siebie. pozdr -------------------- |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym bardzo zrobić coś samemu, bo swoją ostatnią stronę napisałem kilka lat temu i w dodatku bardzo kiepską. Dlatego na razie nie chcę korzystać z żadnych pomocy, typu Zend, Smarty i jakieś tam inne, tylko napisać coś samodzielnie. Jak skończę swoją stronkę, to zacznę się przyglądać pomocniczym mechanizmom.
Jak patrzyłem po podpisach, to chyba każdy z modów/przyjaciół/adminów i osób, które się liczą na tym forum mają swoją stronę. Taką prawdziwą, którą można pokazać kumplom. Też chciałbym taką zrobić, ale żebym mógł powiedzieć, że to tylko moje dzieło (jeżeli robisz coś bez pomocy to zawsze jest się później bardziej uradowanym, niż jak się tylko rozbuduje jakiś projekt) Ten post edytował Asmox 18.03.2009, 07:00:25 -------------------- |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jak patrzyłem po podpisach, to chyba każdy z modów/przyjaciół/adminów i osób, które się liczą na tym forum mają swoją stronę. Ja mam napisaną za pomocą Django ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:54 |