Jako, że na co dzień jestem programistą PHP, to tydzień po świeżej instalacji AmigaOS 4.1 wpadłem na pomysł wykorzystania AmigaOS do programowania w języku skryptowym PHP oraz użyciu baz danych SQLite. Oba produkty doskonale nadają się do stworzenia własnej strony, a nawet niewielkiej strony firmowej wykorzystującej wbudowaną bazę danych.
Apache
Zaczniemy od zainstalowania serwera www Apache oraz Parsera PHP. Gotową paczkę lub źródła możemy pobrać z OS4 Depot (odnośniki w ramce). W przypadku gotowej paczki wystarczy, że uruchomimy program instalacyjny i wskażemy miejsce instalacji pakietu. Skrypt instalacyjny automatycznie skopiuje niezbędne pliki oraz dokona stosownych przypisań. W głównym katalogu wskazanym podczas instalacji znajdziemy plik Apache start, który po uruchomieniu doda ikonę do Amidocka. Pozostanie nam jeszcze przeprowadzenie testu działania serwera. Uruchamiamy przeglądarkę internetową i w pasku adresu URL wpisujemy:
http://localhost
Jeśli serwer jest prawidłowo zainstalowany i uruchomiony, naszym oczom pokaże się strona jak poniżej.
OWB i strona startowa serwera Apache.
Teraz sprawdzimy, czy działa parser PHP. W katalogu htdocs tworzymy katalog test, a w nim plik index.php z następującym kodem:
<?php phpinfo(); ?>
Sprawdzamy działanie wpisując w przeglądarce:
http://localhost/test/index.php
VIM
Uzupełnieniem naszego środowiska powinien być edytor tekstu, najlepiej z podświetlaniem składni. Dla AmigaOS mamy dystrybucję znakomitego VIM-a, który po drobnym liftingu posłuży nam za znakomity edytor kodu nie tylko do PHP. W miarę świeżą paczkę VIM-a 7.1 pobierzemy OS4 Depot.
Po instalacji warto zainstalować lepszego Shella dla naszego AmigaOS. Osobiście rekomenduje MSS bądź KingCona (oba można pobrać z Aminetu) i ustawić w nich TERMA w tryb ANSI poleceniem:
set TERM=ansi
Po tym zabiegu VIM nie będzie miał problemów z prawidłowym podświetlaniem składni języka PHP w edytorze.
Czas na podrasowanie samego VIM-a. Wyedytujmy plik S:.vimrc. Dodamy podświetlanie i sprawdzanie składni dopisując:
:syntax on :set cindent
Ustawiamy ilość linii i kolumn okna:
:set LINES=100 :set COLUMNS=70
Powyższe wartości są zależne od rozdzielczości monitora. Warto chwilę poeksperymentować, aby optymalnie dopasować ich liczbę.
Teraz drobna automatyka. W programowaniu obiektowym nudnym i mozolnym procesem jest pisanie akcesorów do zmiennych w klasie. Po dodaniu odpowiedniego kodu wystarczy, że wciśniemy klawisze F3 lub kombinację Shift + F3 do wygenerowania Gettera lub Settera dla zmiennych zapisanych w kolejnych linijkach w formacie :name. Dla tak wpisanego tekstu otrzymamy gettera:
public function getName(){ return $this->name; }
lub settera:
public function getName(){ return $this->name; }
Dodajmy do .vimrc poniższe linijki:
" Public Accessors
map <F3> :s/((w)(w+)).*/public function getu23(){rtreturn $this->1;r}/<CR>
" Public Setters
map <S-F3> :s/((w)(w+)).*/public function setu23($1){rt$this->1 = $1;r}/<CR>
Funkcjonalnością, która na pewno przyda się nam w codziennym programowaniu jest lokalny dostęp do dokumentacji PHP z poziomu edytora. Pobieramy plik dokumentacji VIM-a i rozpakowujemy go do katalogu VIM:Vim7.1/doc. Teraz po ponownym uruchomieniu VIM-a wpisując komendę :help nazwa_funkcji otrzymamy dostęp do opisu żądanej metody.
SQLite
Do szczęścia brakuje nam jeszcze tylko aplikacji do zarządzania bazą SQLite. Pobieramy plik sqlitemanager-1.2.zip i rozpakowujemy do katalogu htdocs serwera Apache.
Efekty pracy nad plikiem konfiguracyjnym edytora VIM z wyświetlonym kodem przykładu.
Otwieramy stronę http://localhost/sqlitemanager-1.2.0, tworzymy nową bazę danych o nazwie articles w pliku articles.db w wersji 2 oraz katalogu test Apache. Przechodzimy do zakładki SQL, wklejamy poniższy kod:
create table article ( id integer primary key, name varchar(255) not null, price varchar(255) not null); insert into article (name, price) values ('Amiga 1200', '500'); insert into article (name, price) values ('Amiga 500', '100'); insert into article (name, price) values ('SAM Flex 667', '3200');
Klikamy w "Execute". W następnym kroku tworzymy plik PHP z kodem naszej strony. Przechodząc do katalogu Apache:htdocs/test/, wpisujemy w Shellu:
vim sqlite.php
i przepisujemy kod:
<?php try { $dbh = new PDO('sqlite2:article.db'); /*** wyświetla tekst o połączeniu do bazy danych ***/ echo 'Connected to database<br />'; /*** zapytanie do bazy SQL ***/ $sql = "SELECT * FROM article"; foreach ($dbh->query($sql) as $row) { print $row['name'] .' - '. $row['price'] . '<br />'; } /*** zamyka połączenie z bazą danych ***/ $dbh = null; } catch(PDOException $e) { echo $e->getMessage(); } ?>
Sprawdzamy świeżo utworzony plik w przeglądarce pod adresem http://localhost/test/sqlite.php. Jeżeli wykonaliśmy wszystko zgodnie z instrukcją, wynik naszej pracy będzie identyczny z poniższym obrazkiem.
Na tym kończymy artykuł wprowadzający w zagadnienie programowania w języku PHP na platformie AmigaOS. Życzę wytrwałości w kodowaniu.
Strona domowa PHP wraz z pełną dokumentacją języka
Strona domowa bazy SQLite
Strona domowa serwera www Apache
Apache dla AmigaOS 4.x
VIM
Dokumentacja VIM-a
SQLite Manager
darmowy podręcznik dla edytora VIM
VIM w wersji dla AmigaOS 4.x
MSS i KingCon
przykłady i pliki konfiguracyjne do artykułu
Artykuł oryginalnie pojawił się w pierwszym numerze Polskiego Pisma Amigowego.