Aktualizacja do najnowszego PHP 8 już jest! Zobacz główne zmiany.

Tablice, stringi, pliki - kolejny projekt > Lekcja 1

Projekt: lista zadań!

Jak wspomniałem we wstępie, zrobimy sobie listę zadań (tzw. TODO). Nasz program będziemy obsługiwali z poziomu konsoli. Czy będzie to najbardziej użyteczna aplikacja na świecie? Ponownie raczej nie, ale jako przykład do nauki powinna sprawdzić się dobrze.

Założenia

Skoro mamy do dyspozycji tylko tekstową konsolę, to musimy wymyślić sobie jakieś komendy, które będą wykonywały określone operacje. Mój pomysł na całość jest taki:

  • Zadania do wykonania będą przechowywane w pliku tekstowym.
  • Gdy uruchomimy skrypt, pojawi się lista zapisanych zadań odczytana z pliku.
    php skrypt
    
  • Gdy uruchomimy skrypt, dodając słówko add oraz treść zadania, zostanie ono dodane do pliku.
    php skrypt add "Testowe zadanie"
    
  • Gdy uruchomimy skrypt, dodając słówko remove oraz numer zadania (wyświetlany na liście), zostanie ono usunięte z pliku.
    php skrypt remove 5
    
  • W przypadku, gdy dodamy do skryptu nieznane polecenie, powinien on wyświetlić stosowny błąd.
    php skrypt blah
    

Zawsze na początku pojawia się php, ponieważ wskazujemy w ten sposób, że plik ma być uruchomiony przez interpreter PHP (jeśli nie wiesz, o co chodzi, wróć do jednej z pierwszych lekcji na temat uruchamiania kodu). skrypt jest przykładową nazwą pliku z kodem aplikacji. "Testowe zadanie" zostało zapisane w cudzysłowie, aby zostało potraktowane jako jedna wartość (spacja oddziela kolejne). Dalsza rozbudowa w trakcie pracy jest niewykluczona, pierwotnie jednak mamy takie oto proste założenia.

Zaczynamy!

Od razu w głowie pojawia się pierwszy problem: jak tu odczytać te nasze „argumenty”, które chcemy przekazać do skryptu? To na szczęście nie jest nic trudnego. Dostaniemy je automatycznie w predefiniowanej tablicy $argv. Jak czytamy w dokumentacji pierwszą wartością, jaką zawsze dostaniemy, będzie nazwa uruchamianego pliku. Raczej do niczego nam się ona nie przyda, ale przyjmujemy ten fakt do wiadomości.

Stwórzmy nowy plik, na przykład index.php (można obrać sobie od razu taki nawyk, bo serwery www domyślnie szukają właśnie pliku o takiej nazwie). Spróbujmy teraz dla testu wyświetlić sobie zawartość $argv.

<?php
var_dump($argv);

Rezultat wykonania polecenia: php index.php add &quot;Testowe zadanie&quot; z instrukcją var_dump()

Działa. I faktycznie jako pierwszy element tablicy mamy nazwę pliku, a dalej nasze podane parametry. Pora przygotować prosty szkielet aplikacji. W momencie uruchomienia potrzebujemy sprawdzić, czy podany został jakiś argument - innymi słowy: czy oczekiwana jest jakaś akcja (na przykład dodane czy usunięcie zadania). Czyli tak w zasadzie na ten moment potrzebujemy ustalić, czy indeks numer 1 w tablicy $argv istnieje. Dlaczego 1? Bo, jak na pewno pamiętamy, indeksy liczymy od zera, a pierwszy (0) jest nazwą uruchamianego pliku. Do sprawdzenia, czy dana zmienna lub element tablicy istnieje, możemy użyć konstrukcji isset. Łącząc to z if i dokładając testowe echo uzyskamy coś takiego:

<?php
if (isset($argv[1])) {
    echo $argv[1];
} else {
    echo 'list';
}

Rezultat wykonania polecenia: php index.php add &quot;Testowe zadanie&quot; po dodaniu warunku z isset

Mam nadzieję, że te kilka linijek jest zrozumiałe. isset zwraca true lub false, w zależności od tego, czy element o indeksie 1 istnieje w tablicy $argv. I również w zależności od tego wyświetlamy napis list lub to, co zostało przekazane.

Na razie mamy tylko tyle, ale będziemy dalej rozwijać i przebudowywać nasz projekt w kolejnych lekcjach.

Powrót Następna lekcja

Udostępnij

  • Facebook
  • Twitter

Komentarze