Posted on 17th February 2010One Response
Tworzenie pliku packages.xml

Prawidłowo skonstruowany plugin do symfony zawiera oprócz całej struktury plików mały pliczek packages.xml. To właśnie dzięki niemu mozliwe jest instalowanie plugina przy pomocy taska. W tym artykule opiszę jak generować pliki packages.xml przy pomocy narzędzia Pear Package File Manager…

Zakładam, że naszym systemie zainstalowany jest PHP i Pear. Skoro tak upewnijmy się, że nie mamy zainstalowanego programu pfm

bash3-1$ pfm
Command not found

Najpierw zróbmy upgrade samego Peara

bash3-1# pear channel-update pear.php.net
bash3-1# pear upgrade PEAR

Instalujemy po kolei:

bash3-1# pear install channel://pear.php.net/PHP_CompatInfo
bash3-1# pear install channel://pear.php.net/XML_Serializer
bash3-1# pear install channel://pear.php.net/PEAR_PackageFileManager_Plugins
bash3-1# pear install channel://pear.php.net/PEAR_PackageFileManager
bash3-1# pear install PEAR_PackageFileManager_Cli-0.3.0

Jeśli wszystko zainstalowało się bezbłędnie to wypróbujmy działanie pfm. Przejdźmy do katalogu z pluginem i po prostu wydajmy polecenie pfm:

bash3-1$ cd /www/symfony-plugins/plugins/caMailerPlugin
bash3-1$ pfm

Po wpisaniu polecenia pfm konsola zrobi się nieco bardziej interaktywna i zacznie wypytywać nas o różne rzeczy. W moim przypadku wylądało to tak:

PEAR Package File Manager Command Line Tool

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

W tym kroku musimy podać względną ( bądź bezwzględną ) ścieżkę do katalogu z pluginem. My znajdujemy się w katalogu z plugnem zatem wpiszmy . ( kropkę ).

Creating a new package file ...

Enter the base install directory*:

Wskażmy teraz gdzie ma instalować się plugin. Podajmy znowu kropkę .

Enter the name of the package [caMailerPlugin]*:

Teraz system pyta nas o nazwę naszego pluginu ( w nawiasie kwadratowym sugeruje nazwę katalogu ). Możemy zgodzić się na jego propozycję wciskając enter bądź wpisać dowolnie inną nazwę.

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

W tym kroku wybierzmy tryb channel (c).

Enter the name of the channel [pear.php.net]*:

Teraz musimy podać nazwę kanału pear symfony: pear.symfony-project.com

Enter a 1 line summary*:

Podajmy krótkie podsumowanie pluginu

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

Teraz wpiszmy nieco dłuższy opis pluginu i wciśnijmy dwa razy enter.

Enter the release version*:

Musimy wpisać wersję pluginu. Zazwyczaj przyjęło się nazywać wersję w formacie x.y.z ( np. 0.4.6 ).

Enter the API version [0.3.2]*:

Teraz należy podać wersję API ( jeśli od ostatniego realeasu uległa jakiejś zmianie ).

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

Teraz musimy określić stabilnośc neszego pluginu. Jeśli jest to plugin rozwojowy wpiszmy alpha bądź beta. Stable wpiszmy dopiero kiedy będziemy pewni, że w pluginie nie ma żadnych poważniejszych błedów. Mała uwaga. Jeśli jako wersję wpiszemy 1.0.0 a póżniej wybierzemy wersję niestabilną ( alpha albo beta ) pearowi niekoniecznie musi się to do końca spodobać ( parserowi symfony także )

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

Jak wyżej lecz dotyczy wersji API

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

Jeśli wiemy co zmieniło się od czasu ostatniego wypustu opiszmy wszystkie te rzeczy w tym kroku i zatwierdźmy wciskając dwa razy enter.

Enter the minimum PHP version [5]*:

Jaka minimalna wersja parsera PHP jest wymagana żeby plugin ruszył. Jeśli rzeczywiście używamy funkcji które dostępne są tylko od określonej wersji php zaznaczmy to w tym kroku wpisując właściwą wersję php.

Enter the minimum PEAR Installer version [1.4.0]*:

Jaka jest minimalna wersja Peara. Zostawmy tak jak jest i przejdźmy do kolejnego kroku wciskając enter

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:

Teraz należy wybrać rodzaj licencji, zgodnie z ideą pluginów symfony należy wybrać licencję spokrewnioną z licencją MIT. Ja wybiorę BSD, ale uwaga, nazwa BSD Style jest nierozpoznawana przez instalator symfony, będziemy ją musieli później ręcznie wyedytować i zmienić na New BSD.

How many maintainers?*:

Ilu jest członków zespołu pracującego nad pluginem. Ja robiłem swój plugin sam więc wpisuję 1.

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

Jaka jest rola członka oznaczonego jako #1. Oczywiście wybieram lead ( lider zespołu ).

Enter maintainer #1's name*:

Imię członka zespołu. Wpisuje swoje dane: Damian Kopiec.

Enter maintainer #1's username*:

Teraz naelży podać nazwę użytkownika pod jaką jesteśmy zarejestrowani na stronie symfony-project.

Enter maintainer #1's email [username@php.net]*:

Wpisujemy adres email.

PEAR Package File Manager Command Line Tool

    1. Package name                 [caMailerPlugin]
    2. Channel/URI                  [Channel: pear.php.net]
    3. Summary                      [plugin summary]
    4. Description                  [plugin description]
    5. Maintainers
    6. Version                      [Release: 0.4.3 API: 0.4.3]
    7. Stability                    [Release: alpha API: alpha]
    8. License                      [BSD Style]
    9. Notes                        [changelog]
   10. Dependencies
   11. Tasks
   12. Regenerate contents
   13. Echo package file to stdout
   14. Save & Quit
   15. Quit without saving          (ctrl-c)

Please choose an option from the menu:

To juz ostatni krok przed wygenerowaniem ostatecznego pliku xml. Jeśli wszystko jest ok wybierzmy opcję numer 14 – Save & Quit

Teraz bardzo ważne jest to żeby wyedytować plik packages.xml i zmienić w nim:

  • Rodzaj licencji z BSD Style na New BSD
  • W strukturze plików zamienić wszystkie wystąpienia role=”php” na role=”data”

Na koniec do sekcji required należy dodać:

<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>

Teraz po wydaniu polecenia

pear package package.xml

Utworzy nam się gotowa paczka z rozszerzeniem tgz. Paczka jest gotowa do zuploadowania na stronie symfony.

Życzę powodzenia.

Inne posty:

  1. Tworzenie modułów mod_dav_svn.so i mod_authz_svn.so
  2. Podpowiadanie składni w pliku schema.xml
Comments
comment by Bronder Call
Posted on 2010/05/30 at 19:28

Logically this is great, keep up the good work.

Leave a Response
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Comment moderation is enabled. Your comment may take some time to appear.