Pytanie                    | 
                
                    Odpowiedź                    | 
            
        
        | 
     rozpocznij naukę
 | 
 | 
      PHP (Hypertext Preprocessor) to skryptowy język programowania działający po stronie serwera, używany głównie do tworzenia dynamicznych stron internetowych.   
 | 
 | 
 | 
      Jakie są podstawowe cechy PHP?    rozpocznij naukę
 | 
 | 
      PHP jest językiem otwartoźródłowym, wieloplatformowym, łatwym do nauczenia i zintegrowanym z wieloma bazami danych. Wspiera programowanie obiektowe oraz proceduralne.   
 | 
 | 
 | 
      Jakie są różnice między include a require?    rozpocznij naukę
 | 
 | 
      include dołącza plik, a w przypadku błędu skrypt nadal działa. require również dołącza plik, ale w przypadku błędu skrypt przestaje działać.   
 | 
 | 
 | 
      Co to jest zmienna superglobalna w PHP?    rozpocznij naukę
 | 
 | 
      Zmienne superglobalne to wbudowane zmienne dostępne w każdym zasięgu skryptu PHP, np. $_GET, $_POST, $_SESSION, $_COOKIE, $_FILES, $_SERVER, $_ENV, $_REQUEST.   
 | 
 | 
 | 
      Jakie są główne typy danych w PHP?    rozpocznij naukę
 | 
 | 
      Główne typy danych w PHP to: integer (liczby całkowite), float (liczby zmiennoprzecinkowe), string (łańcuchy znaków), boolean (wartości logiczne), array (tablice), object (obiekty), resource (zasoby), null (wartość null).   
 | 
 | 
 | 
      Jak w PHP tworzymy połączenie z bazą danych MySQL?    rozpocznij naukę
 | 
 | 
      Do połączenia z bazą danych MySQL używamy funkcji mysqli_connect($host, $user, $password, $dbname) lub obiektowo przez klasę mysqli.   
 | 
 | 
 | 
      Co to jest PDO i dlaczego warto go używać?    rozpocznij naukę
 | 
 | 
      PDO (PHP Data Objects) to warstwa abstrakcji bazodanowej, która umożliwia jednolite zarządzanie połączeniami do różnych baz danych. Zapewnia większe bezpieczeństwo i elastyczność niż tradycyjne metody.   
 | 
 | 
 | 
      Jakie są główne różnice między PHP4 a PHP5?    rozpocznij naukę
 | 
 | 
      PHP5 wprowadził zaawansowane funkcje programowania obiektowego, takie jak klasy i interfejsy, przestrzenie nazw (namespaces), rozszerzenia PDO, lepsze zarządzanie błędami oraz usprawnienia w zakresie wydajności i bezpieczeństwa.   
 | 
 | 
 | 
      Co to jest session w PHP i jak się ją inicjuje?    rozpocznij naukę
 | 
 | 
      Session to mechanizm przechowywania danych dla pojedynczego użytkownika przez wiele stron. Inicjuje się ją za pomocą session_start().   
 | 
 | 
 | 
      Jak zabezpieczyć aplikację PHP przed atakami SQL Injection?    rozpocznij naukę
 | 
 | 
      Należy używać przygotowanych zapytań (prepared statements) z bind parameters, PDO, walidacje danych, zabezpieczenie konfiguracji baz danych.   
 | 
 | 
 | 
      Co to jest Composer i do czego służy?    rozpocznij naukę
 | 
 | 
      Composer to narzędzie do zarządzania zależnościami w PHP. Umożliwia łatwe zarządzanie bibliotekami i ich wersjami.   
 | 
 | 
 | 
      Jakie są popularne frameworki PHP?    rozpocznij naukę
 | 
 | 
      Popularne frameworki PHP to Laravel, Symfony, CodeIgniter, Zend Framework, Yii, CakePHP.   
 | 
 | 
 | 
      Co to jest PSR i dlaczego jest ważne?    rozpocznij naukę
 | 
 | 
      PSR (PHP Standard Recommendation) to zbiór standardów dla PHP, które promują dobre praktyki i interoperacyjność kodu.   
 | 
 | 
 | 
      Jakie funkcje w PHP używamy do obsługi błędów?    rozpocznij naukę
 | 
 | 
      Do obsługi błędów używamy funkcji takich jak error_reporting(), set_error_handler(), trigger_error(), set_exception_handler().   
 | 
 | 
 | 
      Co to jest namespace w PHP?    rozpocznij naukę
 | 
 | 
      Namespace to sposób na organizację kodu w PHP, który umożliwia unikanie konfliktów nazw poprzez definiowanie przestrzeni nazw dla klas, funkcji i stałych.   
 | 
 | 
 | 
      Jakie są zasady pisania bezpiecznego kodu w PHP?    rozpocznij naukę
 | 
 | 
      Walidacja, sanitacja danych wejściowych, unikanie SQL Injection, ochronę przed XSS (Cross-Site Scripting), używanie HTTPS, zabezpieczenia przed CSRF (Cross-Site Request Forgery), bezpieczne zarządzanie sesjami i hasłami.   
 | 
 | 
 | 
      Co to jest autoloading w PHP i jak go zrealizować?    rozpocznij naukę
 | 
 | 
      Autoloading to mechanizm automatycznego ładowania klas. Realizuje się go za pomocą funkcji spl_autoload_register().   
 | 
 | 
 | 
      Jakie są różnice między metodami GET i POST w PHP?    rozpocznij naukę
 | 
 | 
      GET wysyła dane w URL i jest używany do pobierania danych. POST wysyła dane w ciele żądania i jest używany do przesyłania danych, np. formularzy.   
 | 
 | 
 | 
      Jak w PHP zrealizować przekierowanie strony?    rozpocznij naukę
 | 
 | 
      Przekierowanie strony w PHP realizuje się za pomocą funkcji header('Location: url');.   
 | 
 | 
 | 
      Co to jest cURL w PHP i do czego służy?    rozpocznij naukę
 | 
 | 
      cURL to biblioteka w PHP do wykonywania żądań HTTP. Służy do komunikacji z serwerami, pobierania i wysyłania danych.   
 | 
 | 
 | 
      Co to jest funkcja anonimowa (closure) w PHP?    rozpocznij naukę
 | 
 | 
      Funkcja anonimowa, zwana też closure, to funkcja, która nie ma nazwy i może być przypisana do zmiennej lub przekazana jako argument do innych funkcji.   
 | 
 | 
 | 
      Jakie są zasady tworzenia nazw zmiennych w PHP?    rozpocznij naukę
 | 
 | 
      Nazwy zmiennych w PHP muszą zaczynać się od znaku $, mogą zawierać litery, cyfry i podkreślenia, ale nie mogą zaczynać się od cyfry.   
 | 
 | 
 | 
      Jak w PHP zrealizować dziedziczenie klas?    rozpocznij naukę
 | 
 | 
      Dziedziczenie klas w PHP realizuje się za pomocą słowa kluczowego extends, np. class ChildClass extends ParentClass {}.   
 | 
 | 
 | 
      Co to jest interfejs w PHP?    rozpocznij naukę
 | 
 | 
      Interfejs w PHP to zbiór metod, które muszą być zaimplementowane przez klasy, które ten interfejs implementują, używając słowa kluczowego interface i implements.   
 | 
 | 
 | 
      Jakie są różnice między == a === w PHP?    rozpocznij naukę
 | 
 | 
      == to operator porównania wartości, który nie sprawdza typu danych, natomiast === to operator porównania wartości i typu danych.   
 | 
 | 
 | 
      Jakie są różnice między abstract class a interface w PHP?    rozpocznij naukę
 | 
 | 
      Klasa abstrakcyjna może zawierać implementacje metod i właściwości, natomiast interfejs może zawierać tylko deklaracje metod. Klasa może dziedziczyć po jednej klasie abstrakcyjnej, ale może implementować wiele interfejsów.   
 | 
 | 
 | 
      Co to jest Magic Methods w PHP?    rozpocznij naukę
 | 
 | 
      Magic Methods to specjalne metody w PHP, które zaczynają się od dwóch podkreśleń (__) i mają specjalne znaczenie, np. __construct(), __destruct(), __get(), __set(), __call().   
 | 
 | 
 | 
      Jakie są zalety programowania obiektowego w PHP?    rozpocznij naukę
 | 
 | 
      Zalety programowania obiektowego to: modularność, łatwość utrzymania i rozbudowy kodu, ponowne wykorzystanie kodu, lepsze odwzorowanie rzeczywistości i modelowania danych.   
 | 
 | 
 | 
      Jak w PHP obsłużyć wyjątki (exceptions)?    rozpocznij naukę
 | 
 | 
      Wyjątki w PHP obsługuje się za pomocą bloku try-catch, gdzie kod mogący wygenerować wyjątek umieszcza się w bloku try, a obsługę wyjątków w bloku catch.   
 | 
 | 
 | 
      Jakie są korzyści z używania ORM w PHP?    rozpocznij naukę
 | 
 | 
      ORM (Object-Relational Mapping) upraszcza operacje bazodanowe poprzez mapowanie obiektów na tabele bazy danych, co zwiększa produktywność, ułatwia utrzymanie kodu oraz zapewnia większą abstrakcję.   
 | 
 | 
 | 
      Jakie są zasady tworzenia bezpiecznych haseł w PHP?    rozpocznij naukę
 | 
 | 
      Do tworzenia bezpiecznych haseł w PHP używamy funkcji password_hash() do haszowania haseł oraz password_verify() do ich weryfikacji.   
 | 
 | 
 | 
      Co to jest PDO: prepare() i do czego służy?    rozpocznij naukę
 | 
 | 
      PDO: prepare() przygotowuje zapytanie SQL do wykonania, co zwiększa bezpieczeństwo (zapobieganie SQL Injection) i wydajność (ponowne użycie zapytań).   
 | 
 | 
 | 
      Jakie są metody ładowania plików w PHP?    rozpocznij naukę
 | 
 | 
      Metody ładowania plików w PHP obejmują include, require, include_once i require_once.   
 | 
 | 
 | 
      Co to jest __destruct() w PHP?    rozpocznij naukę
 | 
 | 
      __destruct() to metoda destruktorowa, która jest automatycznie wywoływana przy niszczeniu instancji klasy. Służy do sprzątania zasobów.   
 | 
 | 
 | 
      Co to jest PHP-FPM i jakie ma zalety?    rozpocznij naukę
 | 
 | 
      PHP-FPM (FastCGI Process Manager) to alternatywa dla PHP FastCGI. Zapewnia lepszą wydajność, zarządzanie zasobami oraz stabilność dzięki możliwości uruchamiania wielu procesów PHP.   
 | 
 | 
 | 
      Jakie są najlepsze praktyki debugowania kodu PHP?    rozpocznij naukę
 | 
 | 
      Najlepsze praktyki debugowania kodu PHP to: używanie var_dump(), print_r(), error_log(), włączenie wyświetlania błędów (error_reporting(E_ALL)), korzystanie z narzędzi debugujących jak Xdebug, stosowanie logowania błędów i analizatorów kodu (linting).   
 | 
 | 
 | 
      Co to jest metoda statyczna w PHP?    rozpocznij naukę
 | 
 | 
      Metoda statyczna to metoda, która jest dostępna bez tworzenia instancji klasy, definiowana za pomocą słowa kluczowego static.   
 | 
 | 
 | 
      Co to jest i do czego służy trait w PHP?    rozpocznij naukę
 | 
 | 
      trait to mechanizm umożliwiający wielokrotne używanie kodu w różnych klasach, podobnie do wielokrotnego dziedziczenia. Pozwala na współdzielenie metod między różnymi klasami.   
 | 
 | 
 | 
      Co to jest Dependency Injection (DI) i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      Dependency Injection to wzorzec projektowy, który polega na przekazywaniu zależności do obiektu zamiast tworzenia ich wewnątrz obiektu. Ułatwia to testowanie i zmniejsza zależność między komponentami.   
 | 
 | 
 | 
      Jakie są różnice między metodami file_get_contents() a fread() w PHP?    rozpocznij naukę
 | 
 | 
      file_get_contents() czyta cały plik do zmiennej za jednym razem, natomiast fread() czyta plik blokami o określonym rozmiarze, co pozwala na większą kontrolę przy operacjach na dużych plikach.   
 | 
 | 
 | 
      Jakie są różnice między unlink() a unset() w PHP?    rozpocznij naukę
 | 
 | 
      unlink() usuwa plik z systemu plików, podczas gdy unset() usuwa zmienną z pamięci.   
 | 
 | 
 | 
| 
     rozpocznij naukę
 | 
 | 
      PSR-4 to standard autoloadingu dla PHP, który określa, jak przestrzenie nazw i struktura katalogów powinny być odwzorowane na system plików. Ułatwia to organizację i zarządzanie kodem.   
 | 
 | 
 | 
      Jak działa htaccess w PHP?    rozpocznij naukę
 | 
 | 
      . htaccess to plik konfiguracyjny serwera Apache, który umożliwia nadpisywanie ustawień serwera na poziomie katalogu. Używany jest do zarządzania przekierowaniami, ochrony hasłem, ustawień cache i innych.   
 | 
 | 
 | 
      Co to jest i do czego służy header() w PHP?    rozpocznij naukę
 | 
 | 
      header() to funkcja w PHP służąca do wysyłania nagłówków HTTP. Używa się jej do przekierowań, ustawiania typów zawartości, zarządzania cache i innych operacji związanych z nagłówkami HTTP.   
 | 
 | 
 | 
      Jak działa tryb "strict" w PHP?    rozpocznij naukę
 | 
 | 
      Tryb "strict" w PHP wymusza rygorystyczne sprawdzanie typów zmiennych. Włączając go za pomocą declare(strict_types=1); na początku pliku, PHP wymaga dokładnego dopasowania typów argumentów i wartości zwracanych w funkcjach i metodach.   
 | 
 | 
 | 
      Co to jest array_map() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      array_map() to funkcja, która stosuje podaną funkcję do każdego elementu tablicy (lub tablic) i zwraca tablicę wyników.   
 | 
 | 
 | 
      Co to jest array_filter() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      array_filter() to funkcja, która filtruje elementy tablicy za pomocą podanej funkcji zwracającej true lub false, zachowując tylko te elementy, dla których funkcja zwróciła true.   
 | 
 | 
 | 
      Jakie są różnice między array_merge() a array_combine() w PHP?    rozpocznij naukę
 | 
 | 
      array_merge() łączy wartości dwóch lub więcej tablic w jedną tablicę, natomiast array_combine() tworzy nową tablicę, używając jednej tablicy jako kluczy, a drugiej jako wartości.   
 | 
 | 
 | 
      Jakie są różnice między array_push() a array_unshift() w PHP?    rozpocznij naukę
 | 
 | 
      array_push() dodaje elementy na koniec tablicy, podczas gdy array_unshift() dodaje elementy na początku tablicy.   
 | 
 | 
 | 
      Co to jest json_encode() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      json_encode() to funkcja, która konwertuje tablicę lub obiekt PHP na format JSON (JavaScript Object Notation).   
 | 
 | 
 | 
      Co to jest json_decode() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      json_decode() to funkcja, która konwertuje JSON na tablicę lub obiekt PHP.   
 | 
 | 
 | 
      Jakie są różnice między count() a sizeof() w PHP?    rozpocznij naukę
 | 
 | 
      count() i sizeof() to synonimy w PHP, obie funkcje zwracają liczbę elementów w tablicy.   
 | 
 | 
 | 
      Co to jest explode() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      explode() to funkcja, która dzieli łańcuch znaków na tablicę, używając podanego separatora.   
 | 
 | 
 | 
      Co to jest implode() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      implode() to funkcja, która łączy elementy tablicy w jeden łańcuch znaków, używając podanego separatora.   
 | 
 | 
 | 
      Co to jest trim() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      trim() to funkcja, która usuwa białe znaki (spacje, tabulacje, nowe linie) z początku i końca łańcucha znaków.   
 | 
 | 
 | 
      Jak w PHP obsługiwać pliki CSV?    rozpocznij naukę
 | 
 | 
      W PHP pliki CSV można obsługiwać za pomocą funkcji fgetcsv() do odczytu oraz fputcsv() do zapisu w formacie CSV.   
 | 
 | 
 | 
      Co to jest isset() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      isset() to funkcja, która sprawdza, czy zmienna jest zdefiniowana i nie jest NULL.   
 | 
 | 
 | 
      Co to jest empty() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      empty() to funkcja, która sprawdza, czy zmienna jest pusta (czyli NULL, false, 0, pusty łańcuch znaków, pusta tablica).   
 | 
 | 
 | 
      Co to jest var_dump() i jak działa w PHP?    rozpocznij naukę
 | 
 | 
      var_dump() to funkcja, która wyświetla szczegółową strukturę zmiennej, w tym jej typ i wartość.   
 | 
 | 
 | 
      Jakie są różnice między session a cookie w PHP?    rozpocznij naukę
 | 
 | 
      Cookie przechowuje dane po stronie klienta (przeglądarka), podczas gdy session przechowuje dane po stronie serwera. Sesje są bezpieczniejsze dla przechowywania wrażliwych danych.   
 | 
 | 
 | 
      Co robi include_once oraz require_once?    rozpocznij naukę
 | 
 | 
      include_once i require_once zapewniają, że plik jest dołączany tylko raz, bez względu na liczbę jego wywołań w skrypcie.   
 | 
 | 
 | 
      Kiedy używa się require_once?    rozpocznij naukę
 | 
 | 
      Gdy plik jest niezbędny do poprawnego działania aplikacji, ponieważ zapewnia, że konieczny plik jest załączony dokładnie raz.   
 | 
 | 
 | 
      Jakie są podstawowe wymagania serwera dla uruchomienia PHP?    rozpocznij naukę
 | 
 | 
      Aby uruchomić PHP, serwer musi mieć zainstalowane oprogramowanie serwera WWW (np. Apache, Nginx, IIS), interpreter PHP oraz zazwyczaj bazę danych, taką jak MySQL lub MariaDB.   
 | 
 | 
 | 
| 
     rozpocznij naukę
 | 
 | 
      LAMP to akronim oznaczający zestaw oprogramowania używanego do tworzenia aplikacji webowych: Linux (system operacyjny), Apache (serwer WWW), MySQL (system zarządzania bazą danych) oraz PHP (język programowania).   
 | 
 | 
 | 
      Dlaczego PHP wymaga serwera?    rozpocznij naukę
 | 
 | 
      PHP wymaga serwera, ponieważ jest językiem skryptowym działającym po stronie serwera. Serwer interpretuje skrypty PHP i generuje dynamiczne treści, które są następnie przesyłane do przeglądarki użytkownika.   
 | 
 | 
 | 
| 
     rozpocznij naukę
 | 
 | 
      Apache to jeden z najpopularniejszych serwerów WWW, który jest szeroko stosowany do hostowania stron internetowych i aplikacji webowych. Wspiera on PHP i może być skonfigurowany do współpracy z wieloma innymi technologiami.   
 | 
 | 
 | 
| 
     rozpocznij naukę
 | 
 | 
      Nginx to wydajny, nowoczesny serwer WWW, znany ze swojej wysokiej wydajności i niskiego zużycia zasobów. Jest często używany jako serwer proxy oraz do obsługi dynamicznych aplikacji webowych, w tym PHP.   
 | 
 | 
 | 
      Jakie moduły są używane do integracji PHP z Apache?    rozpocznij naukę
 | 
 | 
      Najczęściej używane moduły do integracji PHP z Apache to mod_php oraz FastCGI (np. mod_fcgid). Umożliwiają one uruchamianie skryptów PHP w środowisku Apache.   
 | 
 | 
 |