• PHP, Apache, VIM i AmigaOS

25.12.2010 09:43, autor artykułu: Marcin "Sand" Spoczyński
odsłon: 3472, powiększ obrazki, wersja do wydruku,

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.

OS4 i PHP
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.

OS4 i PHP
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.

OS4 i PHP
Poprawny wynik pracy.

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.

    
dodaj komentarz
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem