Symfony plugins – automatyczne tworzenie paczki PEAR

Wstęp

Wpis nie będzie o tym jak napisać plugin do Symfony ale jak zrobić z już napisanego pluginu, prawie autamtycznie, paczkę PEAR, która wymagana jest przy dodawaniu pluginu do repozytorium pluginow na www.symfony-project.org. Instrukcje dotyczą systemu Windows.

Przygotowania

Po pierwsze, załóż konto na stronie Symfony. Po drugie zainstaluj  PHP.

Instalacja PEAR i PFM

W wersji PHP (skompilowanego) dla Windows trzeba zainstalować biblioteki PEAR. Przejdź do katalogu gdzie zainstalowany jest PHP i wykonaj polecenie:

go-pear.bat

Następnie trzeba uaktualnić biblioteki do najnowszej wersji (alpha):

pear channel -update pear.php.net
pear upgrade PEAR

Teraz potrzebujemy narzędzia do generowania plików z definicją dla PEAR:

pear install PEAR_PackageFileManager_Cli-0.3.0

W trakcie instalacji mogą wystąpić błęd typu: Failed to download NAZWA_BIBLIOTEKI within preffered state stable, latest realease is ……, use “channel://pear.php.net/NAZWA_BIBLIOTEKI”. Wówczas każdą taką bibliotekę, która jeszcze nie jest w fazie “stable”, instaluj ręcznie za pomocą polecenia:

pear install channel://pear.php.net/NAZWA_BIBLIOTEKI

Po prawidłowej instalacji PFM  w katalogu PHP winien być widoczny plik “pfm”. Jest to plik php, warto stworzyć dla niego plik uruchamiający pfm.bat:

"C:\Program Files\PHP5\php.exe" -f "C:\Program Files\PHP5\pfm"

Teraz uruchomienie PFM będzie odbywało się za pomocą jednego polcenia w linii komend: pfm

W miarę automatyczne tworzenie paczki

Dodaj kanał Symfony do PEAR:

pear channel-add http://pear.symfony-project.com/channel.xml

Przejdź teraz do katalogu gdzie przygotowany jest plugin. Nie zapomnij o plikach README i LICENSE, które winny znaleźć się w korzeniu. Przykładowa strukutra powinna wyglądać tak:

2009-07-20  13:44    <DIR>          .
2009-07-20  13:44    <DIR>          ..
2009-06-18  19:42    <DIR>          config
2009-06-18  19:42    <DIR>          lib
2009-06-18  19:42    <DIR>          web
2009-07-16  11:31             1˙081 LICENSE
2009-07-20  11:59             1˙707 README

Plik README  musi być w formacie Markdown. Polecam skorzystanie z narzędziaa “Dingus“, które konwertuje format markdown do html. Więcej o formacie markdown tutaj.

Teraz pozostaje już tylko wygenerowanie definicji, uruchom  pfm:

pfm

PFM wyświetli szereg pytań, konfiguracja powinna wyglądać tak:

PEAR Package File Manager Command Line Tool

Please enter the location of your package [.]*:

Creating a new package file ...

Enter the base install directory*: .

Enter the name of the package [sfFlashMessagePlugin]*:

Channel or URI based package? [c] (c,u)*: c

Enter the package channel*: pear.symfony-project.com

Enter a 1 line summary*: Summary

Enter a description* (2 blank lines to finish):
Description lines

Enter the release version*: 1.0.0

Enter the API version [1.0.0]*:

Choose a release stability [alpha] (alpha,beta,stable)*:

Choose an API stability [alpha] (alpha,beta,stable)*:

Enter any release notes* (2 blank lines to finish):
First release

Enter the minimum PHP version [5]*:

Enter the minimum PEAR Installer version [1.4.0]*:

Please choose a license from one of the following options

    1) Apache
    2) BSD Style
    3) LGPL
    4) MIT
    5) PHP

Please choose an option: 4

How many maintainers?*: 1

What type of maintainer is #1? [lead] (lead,developer,contributor,helper)*:

Enter maintainer #1's name*: Your Name

Enter maintainer #1's username*: yuorusername

Enter maintainer #1's email [arturr@php.net]*: your@email.com

W podsumowującym menu wybierz 14. Save & Quit. Powstanie plik z definicją: package.xml. Dodać należy jeszcze zależność (dependency) od Symfony. Otwórz package.xml i zmodyfikuj sekcje <depedencies> tak aby wyglądała jak poniżej:

 <dependencies>
  <required>
   <php>
    <min>5</min>
   </php>
   <pearinstaller>
    <min>1.4.0</min>
   </pearinstaller>
    <package>
      <name>symfony</name>
      <channel>pear.symfony-project.com</channel>
      <min>1.2.0</min>
      <max>1.3.0</max>
      <exclude>1.3.0</exclude>
    </package>
  </required>
 </dependencies>

WAŻNE: Dodatkowo zamień wszystkie atrybuty role=”php” na role=”data” w sekcji <contents> (pliki z tym pierwszym atrybutem instalują się nieprawidłowo). Usuń również wszystkie atrybuty baseinstalldir.

Teraz przygotuj paczkę

pear package package.xml

Powstanie archiwum tgz. Zaloguj się na stronie Symfony i stwórz nowy plugin. Użyj archiwum tgz aby wysłać paczkę PEAR.

Podsumowanie

Ta wersja PFM nie jest zbyt stabilna i często raportuje błędy lub działa nie tak jak się tego oczekuje. Mimo to ułatwia nieco tworzenie paczek PEAR. Szczególnie w przypadku dużej liczby plików.

0 Komentarzy

Komentarze zostały wyłączone.