Pomysły na projekty w PHP

Pomysły na projekty w PHP dla początkujących

22 listopada 2022

Odkąd założyłem tego bloga, zawsze podkreślałem, że najlepszą formą nauki programowania jest praktyka.

Tak się składa, że dzisiejszy temat jest mi wyjątkowo bliski. Moim pierwszym pełnoprawnym językiem programowania było właśnie PHP i nauczyłem się go przede wszystkim za sprawą zrealizowania kilku własnych projektów.

W tym wpisie przedstawię kilka pomysłów na projekty, które mogą zrealizować początkujący. Dzięki nim będziesz mógł się sporo nauczyć, a także, być może stworzyć coś ciekawego do swojego portfolio.

Każdy z tych pomysłów powinien postawić Cię przed nieco innymi, bardzo popularnymi w programistycznym świecie wyzwaniami. Wierzę, że po zrealizowaniu tego rodzaju projektów, powinieneś być w stanie swobodnie realizować większość wyzwań, z jakimi przyjdzie Ci się w przyszłości mierzyć jako programiście PHP.

Pamiętaj, jeżeli nie będziesz w stanie czegoś zrobić, szukaj solucji w internecie, a w razie potrzeby pytaj swoich znajomych lub innych programistów na specjalistycznych, internetowych forach (np. na Stack Overflow) – o ile rzeczywiście będziesz chciał się nauczyć, a nie tylko będziesz liczył, że ktoś napisze gotowy kod za Ciebie, inni powinni dość chętnie Ci pomóc.

1. System CMS

Jeżeli programujesz w PHP, jestem niemal pewien, że słyszałeś o WordPress czy Joomla. To systemy CMS, które ułatwiają zarządzanie treściami na stronie.

Dzięki nim nie musisz grzebać w plikach czy oprogramowaniu do zarządzania bazą danych (np. phpMyAdmin) i możesz komfortowo zarządzać swoją stroną w interaktywny sposób.

Wymyślanie koła na nowo nie ma tu wielkiego sensu, bo istnieje cała masa wspaniałych, niesamowicie rozbudowanych CMS, ale mimo wszystko, uważam, że warto zbudować coś własnego, bo to świetny pomysł na naukę.

Dzięki budowie CMSa możesz nauczyć się między innymi:

  • Podstawowych operacji związanych z bazami danych (tzw. CRUD)
  • Jak działają sesje na przykładzie logowania
  • Routingu
CMS napisany w PHP

Powyżej zamieszczam zrzut ekranu z panelu administracyjnego CMSa, którego parę ładnych lat temu napisałem w ramach nauki. Co prawda można powiedzieć, że projekt trafił na śmietnik, ale co się dzięki niemu nauczyłem to moje.

2. Sklep internetowy

Jeżeli czujesz się na siłach i wiesz, że jesteś w stanie tworzyć aplikacje bezpieczne nie tylko dla Ciebie, ale i Twoich użytkowników, bardzo dobrym pomysłem na naukę może być własne, proste oprogramowanie do zarządzania sklepem internetowym.

W moim przypadku był to system do obsługi zapytań z konfiguratora (coś w stylu tego, co mają salony samochodowe, choć znacznie prostsze). Nauczyłem się przy tym niesamowicie dużo, a także niejako zmusiłem się do nauki podstaw JavaScript, który przy tym projekcie okazał się niezbędny.

Przy takim projekcie możesz nauczyć się tego, co w CMS, a także:

  • Integracji z serwisem do obsługi płatności (tutaj odradzam wymyślanie koła na nowo, bo bezpieczeństwo jest kluczowe — zwykle warto skorzystać z gotowego, sprawdzonego rozwiązania).
  • Ciekawszej obróbki danych, jak np. przy pisaniu własnego, zintegrowanego systemu do wystawiania faktur, jeśli będziesz chciał coś takiego implementować.
  • Wysyłania maili, np. po złożonym zapytaniu/zamówieniu.
  • Lepszego rozumienia sesji, które wykorzystasz nie tylko przy mechanizmie logowania, ale też np. przy koszyku, jeżeli będzie on dostępny dla niezalogowanych.

Zdecydowanie polecam ten projekt do nauki, ale niedoświadczonym programistom odradzam jego publikację. Bezpieczeństwo jest tu szczególnie ważne, dlatego za takie systemy powinny brać się przede wszystkim osoby, które mają już jakieś doświadczenie i znają dobre praktyki pozwalające na minimalizowanie ryzyka włamań czy błędów.

3. Prosta gra przeglądarkowa lub serwis społecznościowy

A gdyby tak, zamiast skakać po różnych projektach, rozwijać cały czas jeden?

Przy takim podejściu świetnym pomysłem może być stworzenie własnej gry przeglądarkowej lub serwisu społecznościowego.

Te dwa typy aplikacji mają tę przewagę, że zwykle posiadają wielu stałych użytkowników. To z kolei wiążę się z tym, że jako administrator czy developer, najprawdopodobniej będziecie często dostawać nowe sugestie i zgłoszenia błędów — to z kolei pozwoli Wam się stale rozwijać. Uważam, że posiadanie takiego serwisu czy gry przeglądarkowej (nawet jeśli zrzesza jedynie kilkunastu/kilkudziesięciu aktywnych użytkowników) to rewelacyjny pomysł na naukę, bo macie okazję do zbierania nieustannego feedbacku.

Co więcej, przy tego typu projektach, oprócz rzeczy typowych dla CMSa czy sklepu internetowego, możecie się także nauczyć np. form bardziej interaktywnych operacji na bazach danych. W końcu wyobrażasz sobie, gdyby użycie miksturki w grze albo danie komuś lajka na serwisie społecznościowym powodowało odświeżenie całej strony? Dzięki temu będziesz mógł zgłębić chociażby mało popularny już dziś AJAX, czy nawet zainteresować się technologiami takimi jak chociażby React, który może bezproblemowo współpracować z backendem tworzonym w naszym ukochanym PHP.

4. Portal z wynikami związanymi z Twoim ulubionym sportem

Ostatni prezentowany tu pomysł powinien świetnie uzupełnić poprzednie, zwłaszcza że jego stworzenie nie powinno wymagać aż tak dużo czasu, a będziesz mógł dzięki niemu bardzo dobrze zgłębić dwa naprawdę ważne zagadnienia.

  • Obsługę CRON, czyli zadań wykonywanych o okreslonej porze lub co określoną ilość czasu.
  • Korzystanie z API. W końcu chyba nie chciałbyś wpisywać wszystkich wyników samemu, skoro możesz to zautomatyzować?

Zacznij od znalezienia API związanego z Twoim ulubionym sportem. Jeżeli nie planujesz go nadużywać, prawdopodobnie uda Ci się znaleźć coś darmowego, co w zupełności wystarczy na potrzeby związane z nauką.

Później spróbuj zacząć przetwarzać wyniki tak, aby ułożyć je w jakąś logiczną, przystępną dla użytkowników całość i stwórz system, który będzie regularnie aktualizował te wyniki nawet w czasie, w którym Ty będziesz spał.

Uważam, że ten projekt jest zdecydowanie najmniej złożony ze wszystkich tu opisanych, ale również można się przy nim dużo pobawić i zgłębić wiele wartościowej wiedzy. Co więcej, jeżeli taki pomysł by Ci się spodobał, nic nie stoi na przeszkodzie by połączyć go chociażby z CMSem do dodawania postów na blogu, czy drobnym portalem społecznościowym dla innych kibiców.