Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prosty i ultra lekki PHP Framework
eerie
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 3.08.2017

Ostrzeżenie: (0%)
-----


Od 2015 r. uczę się programować obiektowo w PHP. Przez ten czas napisałem kilka własnych aplikacji. Ostatnią pod koniec 2024 r. Gdy ją skończyłem, doszedłem do wniosku, iż na jej podstawie mogę utworzyć własny PHP Framework. Stworzyłem go w dwa dni i jest bardzo prosto napisany. Tak prosto, że trochę wstydzę się go pokazywać do oceny. Nadaje się do tworzenia ultra lekkich stron i prostych Systemów Zarządzania Treścią. Wszystkie najważniejsze pliki znajdują się w "src/Core". Framework jest oparty na architekturze SOA (architektura zorientowana na usługi). Budowa systemu katalogów przypomina Symfony, na którym się wzorowałem. Bez problemu da się w nim instalować biblioteki przy użyciu Composer'a. Prosiłbym o ocenę... (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jak zauważyłeś, stworzyłem ten framework głównie dla siebie, aby łatwo tworzyć nowe projekty.
Tez tak kiedys myslalem, tez kiedys stworzylem swoj wlasny zajebisty i mega szybki framework. Napisalem na nim nawet pare projektow i bylem zajebiscie dumny.... Jakby mi teraz ktos kazal znowu zaczac w tym pisac to bym sie chyba zastrzelil. To byla tylko strata czasu. W to miejsc trzeba bylo sie uczyc znanych FWs.
Taki wlasny FW raz ze jest mega ubowi, dwa ze jak niedaj boze ktos bedzie chcial cos z toba robic to musi sie tego nauczyc, a dwa ze jak bedziesz chcial pojsc do pracy i pracowac z innymi devami to bedziesz sie musial uczyc tego co juz dawno znac powinienes.
Wiec jak juz bardzo chcesz cos takieg pisac, to tylko w ramach nauki/eksperymentow. Niestety zostajeszz w tyle uzywajac tego.

Co do kodu: to brawa ze jedziesz na najnowszym php (choc chyba nie do konca skoro nie korzystasz z "private readonly" w konstuktorze), kod jest w miare czytelny. W miare dobrze sie to czyta.

Zas co do krytyli (pomijajac to co juz napisano)

1) Takie cosiki
$array = $mainPageService->mainPageAction(....);
return $array;

Sie poprostu robi tak:
return $mainPageService->mainPageAction(....);
Dodatkowa zmienna jest tu zbedna

2) Moze przegapilem, ale nie widze by dla strony mozna bylo wybrac inny szablon niz tylko main. Nie mowie o srodku strony, tylko o calym szablonie na cala strone

3) Brakuje mi w konstruktorze kontrolera by dzieidziczyl po jakims abstrakcyjnym kontrolerze ktory by dodawal na dzien dobry stala funkcjonalnosc

4) Tworzenie w kazdej akcji kontrolera tego non stop
$html = new Html();
$csrfToken = new Token();
jest troche nieteges. Ciagla duplikacja tego samego kodu


6) Osobiscie strasznie nie lubie zbednych zagniezdzen np
public function prepareError(?array $array): string
{
$error = '';

if (is_array($array)) {
foreach ($array as $key => $value) {
$error .= htmlspecialchars($value) . '<br>';
}

$error .= "\n";
}

return $error;
}

powinno wygladac tak

public function prepareError(?array $array): string
{

if (!is_array($array)) {
return '';
}
$error = '';

foreach ($array as $key => $value) {
$error .= htmlspecialchars($value) . '<br>';
}

$error .= "\n";


return $error;
}

Dodatkowo wymuszasz tu jak ma wygladac struktura html bledu. A co jesli bym chcial miec UL LI zamiast BR ?
W przypadku braku bledu to powinno poza tym zwracac NULL a nie pusty text.
W innych miejscach dodajac error, laczysz je w string z nowa linia, potem robisz explode po nowej linii by zwrocic ARRAY... NIe lepiej od razu poprostu trzymac to w array? Taka robota do niczego , juz nie wspomne jak ktos bedzie chcial dodac wlasny error z nowa linia w srodku.

7) W Query nie bardzo kumam tej logiki
public function setParameter(string $search, $replace): self
{
if ($replace === false) {
$replace = '0';
}

jak replace false, to zmien na 0.

8)

public function dbFetchArray($result): ?array
{
return mysqli_fetch_assoc($result);
}

fetch_assoc moze zworic false, twoj kod tego nie uwzglednia i normalnie w swiecie sie wywali w takim przypadku

9) Brakuje interfejsow by ta funkcjonalnosc byla troche bardziej rozszerzalna a nie taka sztywna struktura

10 Brak testow


Wiecej juz mi sie nie chce patrzec (IMG:style_emoticons/default/wink.gif) Generalnie jak mowilem, fajnie ze probujesz, ale to powinno byc tylko w ramach praktyki/testow. No chyba ze jestes juz super specem od Symfony czy czegos innego. Tylko jesli tak, to czemu nie uzywac tego (symfony)? Rownie szybko sie pisze - jak nie szybciej.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.11.2025 - 17:17