Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Simple PHP Engine


Neproify

Rekomendowane odpowiedzi

Witajcie. Z dniem dzisiejszym opublikowałem kod źródłowy Simple PHP Engine. W założeniach będzie to prosty silnik z obsługą użytkowników, szablonów, aplikacji, itd. Kod jest w bardzo wczesnym stanie, aczkolwiek zapraszam do oceny, podsuwania propozycji, itd.

 

https://github.com/Neproify/Simple-PHP-Engine/tree/master

Odnośnik do komentarza
Udostępnij na innych stronach

To na pewno wszystko co miałeś do pokazania z tych plików?

Projekt jest na początku, jest czysto hobbistyczny - rozumiem, że jest tego mało, ale zacząłem dopisywać powoli nowy kod. Aczkolwiek temat zakładam, bo ktoś będzie miał może jakiekolwiek uwagi dotyczące kodu - czy to wytknie mi jakieś błędy, czy cokolwiek, jakieś pomysły może...

 

Zawsze uważam, że skoro robię coś co i tak udostępnię, to warto od początku pokazywać kod.

Edytowane przez Neproify
Odnośnik do komentarza
Udostępnij na innych stronach

Pojawiły się pierwsze "efekty" - stworzyłem podstawy obsług MySQL z wykorzystaniem PDO. Później dodam ochronę przed SQL injection(wbudowane "escapowanie"). Zabieram się do podstaw systemu szablonów - tymczasowo zapisywanie i odczytywanie z poziomu strony. Następnie będą zmienne w szablonach(coś w stylu systemu z IPB).

se5905.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

A gdzie przestrzenie nazw? A gdzie PSR? A gdzie testy? Po co wszędzie te index.html? Po co te stałe "IN_ENGINE"?

 

PS: Widzę że przy autoloaderze to zaszalałeś.

IN_ENGINE jest po to, by nie wywoływać plików spoza skryptu. Index.html po to, by nie było widać zawartości katalogów.

 

Autoloader jak na razie wystarcza. Jak będzie trzeba, to dopiszę/napiszę coś większego.

Odnośnik do komentarza
Udostępnij na innych stronach

 

IN_ENGINE jest po to, by nie wywoływać plików spoza skryptu. Index.html po to, by nie było widać zawartości katalogów.

No ale po co? Co z tego że ktoś sobie wpisze path do jakiegoś pliku php? Ustawienia widoczności zawartości katalogów ustawia się bezpośrednio w httpd.

Nie zawsze masz taką możliwość. Spójrz w katalogi IPB i zauważ, że tam również dodali index.html, ponieważ nigdy nie wiesz jak skonfigurowany serwer ma użytkownik.

 

A gdzie przestrzenie nazw? A gdzie PSR? A gdzie testy?

 

Tymczasowo testów brak. Aczkolwiek gdy skończę podstawy aplikacji, to dodam coś, by można było testować.

Odnośnik do komentarza
Udostępnij na innych stronach

Pojawiła się większa aktualizacja - dokończone podstawy systemu aplikacji oraz szablonów. Dodałem testową aplikację oraz strukturę bazy danych. Wystarczy pobrać całość, skonfigurować "config.php" i wrzucić bazę. Jakieś opinie?

 

W planach jest zrobienie "parsowania" różnych danych w szablonach.

 

Nie mogę edytować, więc piszę drugi post.

Odnośnik do komentarza
Udostępnij na innych stronach

IPB jeżeli chodzi o jakość kodu jest słaby i nie warto się na nim wzorować.

Powinieneś brać przykłady z frameworków takich jak Symfony czy Zend.

Co do twojego wcześniejszego postu - dodałem przestrzenie nazw i użyłem edytowanego przezemnie loadera z PSR-4. Do tego dodałem ładowanie aplikacji.

 

Skoro ostrzegasz, to powiem, że nie biorę zbytnio przykładu z niczego - po prostu robię coś na wzór tego z IPB - pracowało mi się na nim najlepiej. A to co pod maską... Nawet nigdy nie zajrzałem. ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Po co wykorzystujesz przestrzenie nazw, skoro później i tak ich nie używasz? Z resztą podobnie z klasowością.. Druga sprawa, to ciekawi mnie parsowanie zmiennych superglobalnych POST i GET, a także to w jaki sposób przechowujesz zacacheowane templatki (bo chyba to robisz...?)

Zapraszam na moje portfolio oraz bloga wojtusdev.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Po co wykorzystujesz przestrzenie nazw, skoro później i tak ich nie używasz? Z resztą podobnie z klasowością.. Druga sprawa, to ciekawi mnie parsowanie zmiennych superglobalnych POST i GET, a także to w jaki sposób przechowujesz zacacheowane templatki (bo chyba to robisz...?)

Tymczasowo nie ma pamięci tymczasowej - nie jest to zbytnio potrzebne - obecnie wyświetlana jest tylko statyczna zawartość.

 

Co do klas - np. klasa DB przyda się, gdy będziesz musiał wykonywać działania na dwóch bazach - wtedy robisz na szybko $db2 = new DB(); potem łączysz z bazą i tyle. Zero zapamiętywania zmiennych, czy czegokolwiek.

Odnośnik do komentarza
Udostępnij na innych stronach

I co za różnica czy pobierasz zawartość takiego pliku CSS z bazy danych czy plików statycznych?

 

Kiedyś tam dodam pamięć podręczną aktualizowaną co jakiś czas. ;)

Ah, rozumiem. Zmienię sobie kolor jakiegoś przycisku i soft po zapisaniu stwierdzi że potrzebuje np. 24 godziny na aktualizację cache, tak?

PS: Dlaczego nie odpowiadasz na wszystkie (albo większość) zadanych pytań tylko wybierasz te wygodne? Jeżeli nie chcesz odpowiadać to po co stworzyłeś ten temat?

Odnośnik do komentarza
Udostępnij na innych stronach

I co za różnica czy pobierasz zawartość takiego pliku CSS z bazy danych czy plików statycznych?

 

Kiedyś tam dodam pamięć podręczną aktualizowaną co jakiś czas. ;)

Ah, rozumiem. Zmienię sobie kolor jakiegoś przycisku i soft po zapisaniu stwierdzi że potrzebuje np. 24 godziny na aktualizację cache, tak?

 

Oraz przebudowę cache przy zmianie szablonu.

O co dokładniej chodzi ci z preprocesorem css?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.