Unelte utilizator

Unelte site


mandriva:ghid-2011-p4

Prezentare - Partea I - Partea a II-a - Partea a III-a - Partea a IV-a - Partea a V-a

Partea a IV-a - Aplicații pentru web development

Această secțiune își propune prezentarea a mai multor aplicații pentru programare. Prezentarea este orientata spre PHP și creare de pagini web, dar nu este vorba despre un curs de programare. Se va presupune ca cititorul deține cunoștințele necesare de programare. Astfel această parte a ghidului se adresează programatorilor și nu a celor care acum doresc sa învețe programare. Se vor prezenta aplicații pentru dezvoltare cod, pentru testare, pentru UML și se vor menționa framework-uri sau alte biblioteci legate de aplicații web.

4.1 NetBeans

NetBeans este un mediu de dezvoltare modular ce permite dezvoltarea aplicațiilor scrise in Java, PHP, C/C++, HTML, CSS, etc. având funcții avansate de autocompletare și debugging.

4.1.1 Instalare Netbeans

Pentru rularea aplicației este recomandată instalarea JRE - Java Runtime Environment (deși aplicația poate fi instalată fără JRE, multe plug-in-uri sau unele funcționalități specifice vor necesita aceste biblioteci).

#urpmi java-1.6.0-sun-alsa java-1.6.0-sun-jdbc java-1.6.0-sun-fonts java-1.6.0-sun java-1.6.0-sun-plugin java-1.6.0-sun-devel

Aplicația NetBeans se descarcă de pe site-ul oficial selectând varianta dorită (în cazul nostru PHP). Kitul de instalare descărcat se rulează cu drepturi de utilizator obișnuit, instalarea făcându-se în directorul home al utilizatorului. Vă recomandăm să urmați pașii de mai jos:

chmod +x netbeans-7.0.1-ml-php-linux.sh
./netbeans-7.0.1-ml-php-linux.sh

Ulterior instalării se poate adăuga și suport pentru alte limbaje de programare decât cel inițial. Astfel o singură instalare poate crea și manipula proiecte și fișiere într-o multitudine de limbaje de programare.



4.1.2 Creare proiect nou

Primul pas în crearea unui proiect (File / New Project…) este selectarea tipului aplicației ce vom dezvolta. Pentru acest exemplu alegem PHP / PHP Application. Urmează să dăm un nume proiectului. Câmpul Sources Folder se va completa singur, NetBeans selectând directorul pentru proiecte din setări urmat de denumirea proiectului. Desigur acest director se poate schimba. Opțional, fișierele cu configurarea proiectului se pot pune în alt folder activând opțiunea Put NetBeans metadata into separate directory Următoarea fereastră ne permite selectarea serverului pe care va rula aplicația și dacă se dorește copierea codului într-un alt director înainte de rulare. Pentru cele mai multe cazuri setările implicite sunt adecvate. În cazul în care am avea instalate framework-uri pentru PHP, s-ar putea alege unul pentru creare de proiect nou adecvat framework-ului. Dupa apăsarea pe Finish se poate observa proiectul nou creat.

4.1.3 Instalare plugin-uri

NetBeans oferă un set extensiv de plugin-uri. Majoritatea acestora sunt distribuite prin site-ul dedicat pentru plugin-uri de la NetBeans și pot fi instalate prin intermediul managerului de plugin-uri. Managerul se accesează prin Tools / Plugins.

Câteva dintre cele mai interesante plugin-uri:
– AutoSave Module - permite setarea unui interval de timp la care va fi automat salvat proiectul.
– Copy and Paste History - va ține un istoric al copy/paste, un fel de clipboard manager, când se face paste prin ctrl+shit+v se va prezenta o listă cu istoricul.
CSS Preview - un plugin foarte util pentru web-developeri. În momentul în care se editează un cod CSS, va apărea automat o fereastră cu previzualizarea valorilor și cu posibilități de ajustare direct din această fereastră.
– Spellchecker - corector pentru diverse limbi

Tabul Available Plugins prezintă un set de plugin-uri disponibile online. Se selectează cele dorite și se instalează apăsând Install.

Pornește installer-ul și se confirmă lista de plugin-uri ce urmează a fi instalate. Dacă plugin-urile vin cu licențe proprii se afișează licența pentru ele. Trebuie acceptată licența pentru a putea continua instalarea. NetBeans va verifica semnătura plugin-urilor. Cele create de compania NetBeans au semnături cu încredere, restul de regulă nu au, dar asta nu reprezintă o problema. Se va continua instalarea prin apăsarea butonului Continue. Se va afișa o bara de progres în timpul instalării, urmată de o pagină cu rezumatul acțiunilor efectuate (de exemplu cu lista plugin-urilor instalate). Se apasă Finish și plugin-urile sunt gata de folosire. De asemenea se pot instala plugin-uri și din fișiere, în cazul în care le-ați downloadat din alte surse sau dacă le-ați programat voi. Pentru asta se alege tabul Downloaded și se apasă Add plugins.. după care se selectează fișierele de plugin (de regulă cu extensia .nbm) Prin tabul Installed se pot vedea plugin-urile instalate, se pot activa/dezactiva și desigur dezinstala. În tabul Settings se găsesc serverele disponibile pentru servirea de plugin-uri. Acestea pot fi activate/dezactivate respectiv se pot adăuga servere noi.

4.1.4 PHPUnit în NetBeans

NetBeans oferă suport deplin pentru PHPUnit (vezi capitolul 4.5). Setările pentru unit testing se fac prin Tools / Options / PHP / Unit Testing. Singura opțiune disponibilă este calea către executabilul de PHPUnit, adică /usr/bin/phpunit.

Pentru a crea testele, întâi trebuie specificat directorul unde vor fi fișierele de teste. Clic dreapta pe proiectul dorit, Properties / Sources / Test Folder / Browse. Va trebui sa creați un director nou, sau să alegeți unul existent diferit de folderul unde se află sursele aplicației.

În cadrul proiectului va apărea o secțiune numită Test Files.

În această secțiune se vor pune testele.

4.1.5 UML în NetBeans

NetBeans avea până la versiunea 6.90 un editor de UML încorporat în el. Această parte a aplicației a fost însă scoasă pentru a fi rescrisă în totalitate. Până la reintroducerea acestei funcționalități, se recomandă folosirea versiunii comunitare a aplicației Visual Paradigm SDE for NetBeans. Va trebui să downloadați și să instalați atât aplicația sine stătătoare cât și plugin-ul de NetBeans ce permite interfațarea cu VP-SDE direct din NetBeans. După instalare în NetBeans apelați Tools / Start SDE CE-NB. Veți putea crea proiecte noi de tipul UML și să creați grafice UML sofisticate.

4.1.6 Mercurial în NetBeans

Începând cu versiunea 6.0 NetBeans are încorporat un plugin pentru Mercurial. Acest plugin se instalează automat în cadrul instalării aplicației, deci nu este nevoie de intervenție separată pentru a obține suport de Mercurial. Plugin-ul oferă o interfață complexă și completă pentru toate operațiunile posibile cu Mercurial. Există plugin-uri de NetBeans pentru toate aplicațiile majore de control de versiune:
– Git
– Mercurial
– CVS & SVN

4.2 Eclipse

Eclipse este un mediu de dezvoltare integrat (IDE) care facilitează scrierea programelor. Proiectul este licențiat liber, Eclipse Public Licence și are un real succes în industrie. Companii precum Freescale, Adobe, Aptana și Atmel folosesc Eclipse pentru implementarea propriilor soluții dar, din păcate, extensiile dezvoltate de acestea sunt proprietare (proprietary plugins). Este de fapt o practică comună pentru multe companii să folosească programe libere în infrastructură, dar să dezvolte programe proprietare.

Eclipse este folosit în special de programatorii Java, însă fiind un program extensibil oferă posibilitatea integrării cu orice limbaj de programare.

Limbaje de programare suportate:

  • C si C++
  • Java
  • PHP
  • Python

Pentru rulare Eclipse are nevoie de JDK si JRE.

#urpmi java-1.6.0-sun-alsa java-1.6.0-sun-jdbc java-1.6.0-sun-fonts java-1.6.0-sun java-1.6.0-sun-plugin java-1.6.0-sun-devel

Descarcam de aici Eclipse Classic 3.7 pe care il dezarhivam unde dorim

Pornirea aplicatiei se face prin rularea executabilului eclipse din folderul dezarhivat.

Pentru a avea suport in Eclipse pentru dezvoltarea aplicatiilor in PHP este recomandata instalarea extensiei PDT, ultima fiind 3.0.0.

4.3 Aptana

Aptana este un IDE centrat pe realizarea de aplicații web (php/html sau ruby). Poate fi instalată atât ca aplicație independentă sau ca plugin pentru Eclipse.

4.3.1 Instalare Aptana

Aplicația poate fi descărcată de aici sub forma unei arhive pe care o putem dezarhiva unde dorim.

unzip Aptana_Studio_3_Setup_Linux_x86_64_3.0.4.zip

Pornirea se face prin rularea fișierului AptanaStudio3 din folderul dezarhivat.

4.3.2 Creare proiect nou

In fereastra din stînga cu proiecte click dreapta se alege NewProject. Alegem tipul proiectului, in cazul nostru PHP Project ori Web Project:

Se introduce numele proiectului si calea către surse:

In fereastra Project vom regăsi în folderul cu numele proiectului structura cu sursa proiectului.

FIXME

O captură cu aplicația Aptana:

4.4 Zen-coding

zen coding este un plugin ce poate fi adaugat la aplicatile de mai sus si care permite scrierea de cod html/php/css intr-un mod mai rapid folosind o sintaxa intuitiva.

Scriind doar:

div#page>div.logo+ul#navigation>li*5>a

obtinem

<div id="page">
        <div class="logo"></div>
        <ul id="navigation">
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
        </ul>
</div>

4.5 PHPUnit

PHPUnit este un framework de unit testing pentru PHP. Majoritatea aplicațiilor prezentate mai sus au suport pentru PHPUnit. Instalarea lui se face în 2 pași. Întâi se instalează un pachet cu urpmi:

[root@localhost tux]# urpmq -i php-channel-phpunit
    $MIRRORLIST: media/contrib/release/media_info/20110901-144001-info.xml.lzma
Name        : php-channel-phpunit
Version     : 1.3
Release     : 2
Group       : Development/PHP
Size        : 804                          Architecture: noarch
Source RPM  : php-channel-phpunit-1.3-2.src.rpm
URL         : http://pear.phpunit.de
Summary     : Adds phpunit channel to PEAR
Description :
This package adds the phpunit channel which allows PEAR packages from this
channel to be installed.

[root@localhost tux]# urpmi php-channel-phpunit
[ ... ]
41/42: php-channel-phpunit   ################################################################
[ ... ]

Inainte de a continua verificati daca aveti instalat pachetul php-pdo si optional php-curl si php-dbus. Instalarea efectiva a lui PHPUnit se face cu ajutorul lui PEAR (un sistem de management de extensii pentru PHP). În cazul în care comenzile de mai jos nu funcționează, vizitați site-ul oficial PHPUnit (Autorul obișnuiește să schimbe destul de des metodele de instalare):

[root@localhost tux]# pear config-set auto_discover 1
config-set succeeded

[root@localhost tux]# pear install pear.phpunit.de/PHPUnit
Attempting to discover channel "pear.symfony-project.com"...
downloading channel.xml ...
Starting to download channel.xml (865 bytes)
....done: 865 bytes
Auto-discovered channel "pear.symfony-project.com", alias "symfony", adding to registry
Did not download optional dependencies: pear/XML_RPC2, use --alldeps to download automatically
Attempting to discover channel "components.ez.no"...
downloading channel.xml ...
Starting to download channel.xml (591 bytes)
...done: 591 bytes
[ ... ]
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.0.5
install ok: channel://pear.phpunit.de/PHPUnit-3.5.15

[root@localhost tux]# ls -al /usr/bin/phpunit
-rwxr-xr-x 1 root root 2060 Sep  3 14:35 /usr/bin/phpunit*

4.6 Code Coverage

Code Coverage înseamnă procentajul de acoperirii a codului cu teste. PHPUnit știe să lucreze cu XDebug și să genereze rapoarte sofisticate.

#urpmi xdebug

Dacă aveți instalat atât PHPUnit cât și XDebug, IDE-urile vă vor oferi opțiuni adiționale pentru a colecta date de code coverage. De regulă, liniile de cod acoperite de texte vor fi marcate cu verde, cele acoperite parțial cu galben, iar cele neacoperite cu roșu. În NetBeans activați code coverage prin clic dreapta pe proiect / Code Coverage / Collect and Display Code Coverage. După activare rulați-vă unit testele și veți observa apariția detaliilor referitoare la acoperirea codului.

4.7 Jasmine

Jasmine este un framework de testare bazat pe comportament pentru JavaScript. Framework-ul este independent, nu depinde de browser sau de server sau de DOM, etc. Deși se prezintă ca cel mai util pentru „Behavior-Driven Development“, datorite lipsei unei alternative la fel de performante se folosește și în context de Unit Testing pentru JavaScript.

4.8 Gimp

GIMP este un program pentru editarea de imagini (sau grafică) de tip raster (sau bitmap). Aplicația este destinată executării diverselor modificări cum ar fi retușarea fotografiilor, a compoziției imaginii sau construcția imaginilor. Fiind un competitor direct a celor mai performante aplicații grafice comerciale, GIMP este folosit de mulți profesioniști în design, grafică, artă, etc., precum și de persoane mai puțin avizate care doresc doar să-și retușeze pozele din concediu.

Cu GIMP se pot deschide, edita și salva o multitudine de tipuri fișiere de imagini, cum ar fi: JPG, PNG, GIF, TIFF, BMP, PSD, EPS, PRN, PS etc. compatibile cu majoritatea programelor de prelucrare a imaginilor printre care Adobe Photoshop, Paint Shop Pro sau cu limbajul Postscript. Utilizatorul poate importa documente Adobe PDF și formate RAW de la majoritatea camerelor video digitale, însă nu le poate salva în aceste formate proprietare.

Programul este disponibil în mediile Mandriva, deci se poate instala prin MCC sau din consolă cu comanda:

#urpmi gimp

4.9 InkScape

Inkscape este un editor grafic pentru imagini vectoriale. Este orientat în special pe lucru cu standardul SVG 1.1 dar poate importa/exporta din majoritatea formatelor proprietare de grafică vectorială.

urpmi inkscape

5. Controlul documentelor in Mandriva Linux

Nu putem vorbi de dezvoltare de software (aplicatii sau web) fara un control al versiunii documentelor. Acest sistem ne permite sa accesam versiuni mai vechi salvate ale fisierelor si sa vedem modificarile survenite.

Ceel mai utilizate sisteme de control al versiunilor sunt CVS, Subversion (SVN), Git

5.1 Git

Git este un sistem free ce a fost dezvoltat de echipa kernel.org si promovat de Linus Torvalds.

5.1.1 Instalare Git

Instalarea se face ca orice aplicație din MCC sau din linia de comandă:

#urpmi git gitk

5.1.2 Configurare Git

Înainte de crearea unui proiect este necesar să configurăm git, să-l configurăm cu date noastre de contact:

git config --global user.name "Prenume Nume"
git config --global user.email email@domeniu.ro

5.1.3 Integrarea unui proiect cu Git

Să considerăm că avem un proiect in folderul ~/proiect. Inițializam repository git:

cd proiecte
git init

Adăugăm fisierele din proiect in repository:

git add .

Facem primul commit (captură) al proiectului în folderul său cu comanda:

git commit

Se va cere o descrirere a etapei salvate. Repetam acest lucru de fiecare data cănd considerăm a fi necesar capturarea stadiului în care se află proiectul. Veți observa în interiorul proiectului un folder nou .git ce conține aceste capturi si care nu trebuie a fi șters.

Mai multe opțiuni oferite de git găsiți in acest tutorial.

5.1.4 Interfețe grafice pentru git

Git dispune de o interfață grafice cu funcții intuitive pentru gestionarea git. Se lanseaza în folderul proiectului.

gitk

În meniul File găsim si interfata grafica pentru realizarea commit-ului (gitui)

Trebuie menționat că aplicațiile menționate mai sus includ module pentru git si marchează colorat starea fișierelor față de ultimul commit (modificat, nou, ignorat)

Există de asemenea si interfețe web git. Una dintre acestea este Gitweb

5.1.5 Integrarea git cu repository SVN

Git suportă integrarea cu repository SVN. Acesta permite folosirea locală a facilităților oferite de git și salvarea in repostory remote SVN.

Este necesar instalarea pachetului git-svn:

#urpmi git-svn

Primul pas este copierea pe local a proiectului remote:

git svn clone http://adresarepositorysvn/svn/proiectsvn

Facem modificari local, pe care le salvam local ori de cate ori este nevoie.

git commit -m "Modificari solicitate"

apoi când dorim urcarea lor in repository svn utilizăm:

git svn dcommit

5.2 Mercurial

Mercurial este un sistem de control de versiune creat în același timp cu Git și bazându-se pe aceleași principii. Ambele proiecte au fost create ca și răspuns la oprirea versiunii gratuite a aplicației BitKeeper și ambele au aceleași principii de bază (sistem distribuit, ușurință de clonare și „merge“, viteză, securitate, etc.). Atât Git cât și Mercurial (hg) sunt cele mai apreciate sisteme în momentul de față.

5.2.1 Instalare Mercurial

Se poate face din MCC sau din linia de comandă:

#urpmi mercurial

5.2.2 Configurare Mercurial

Mandriva va crea un fișier cu setările cele mai probabile. Acest fișier se poate edita ușor pentru a modifica informațiile din el. Fișierul de configurare este ~/.hgrc

[tux@localhost ProiectPentruGhid]$ cat ~/.hgrc
[ui]
username = Super Tux <supertux@mandrivausers.ro>
verbose = True

[extensions]
color =
hgk =

5.2.3 Integrarea unui proiect cu Mercurial

Considerăm proiectul din capitolul NetBeans (~/NetBeansProjects/ProiectPentruGhid/). Inițializăm mediul:

[tux@localhost ~]$ cd NetBeansProjects/ProiectPentruGhid/
[tux@localhost ProiectPentruGhid]$ hg init

Vedem fișierele găsite:

[tux@localhost ProiectPentruGhid]$ hg status
? Tests/ExampleClassTest.php
? exampleClass.php
? index.php
? nbproject/private/config.properties
? nbproject/private/private.properties
? nbproject/private/private.xml
? nbproject/project.properties
? nbproject/project.xml
? vpproject/ProiectPentruGhid.vpp
? vpproject/ProiectPentruGhid.vpp~1

Adaugăm toate fișierele la repository:

[tux@localhost ProiectPentruGhid]$ hg add
adding Tests/ExampleClassTest.php
adding exampleClass.php
adding index.php
adding nbproject/private/config.properties
adding nbproject/private/private.properties
adding nbproject/private/private.xml
adding nbproject/project.properties
adding nbproject/project.xml
adding vpproject/ProiectPentruGhid.vpp
adding vpproject/ProiectPentruGhid.vpp~1

Facem primul „commit“ pentru a marca începutul lucrării:

[tux@localhost ProiectPentruGhid]$ hg commit -m "Comit initial, de aici incepe totul"
Tests/ExampleClassTest.php
exampleClass.php
index.php
nbproject/private/config.properties
nbproject/private/private.properties
nbproject/private/private.xml
nbproject/project.properties
nbproject/project.xml                                                                                                                                                                                                                               
vpproject/ProiectPentruGhid.vpp                                                                                                                                                                                                                     
vpproject/ProiectPentruGhid.vpp~1
committed changeset 0:339a0f701fb2

Din acest moment mediul (repository) este funcțional și poate fi clonat pentru lucru:

[tux@localhost ProiectPentruGhid]$ hg clone ./ ~/Download/Temp/proiectClone
updating to branch default
resolving manifests
getting Tests/ExampleClassTest.php
getting exampleClass.php
getting index.php
getting nbproject/private/config.properties
getting nbproject/private/private.properties
getting nbproject/private/private.xml
getting nbproject/project.properties
getting nbproject/project.xml
getting vpproject/ProiectPentruGhid.vpp
getting vpproject/ProiectPentruGhid.vpp~1
10 files updated, 0 files merged, 0 files removed, 0 files unresolved

5.2.3 Interfețe grafice pentru Mercurial

Mercurial dispune de aceeași interfață grafică creată în tcl-tk ca și Git. În cazul lui Mercurial interfața grafică se rulează astfel (într-un folder cu un repository deja inițializat):

[tux@localhost ceva_proiect]$ hg view

Desigur există și variante de interfețe bazate pe tehnologii web, plugin-uri pentru medii de dezvoltare, precum și suport din partea majorității aplicațiilor de management de proiecte (ex. Jira, SourceForge, etc.).

5.3 Subversion

Subversion (SVN) se bucura de o răspandire între programatorii ce dezvoltă pe Windows deoarce există un client reușit pentru acest sistem Tigris.

5.3.1 Instalarea SVN

Instalarea este ușoară:

#urpmi subversion subversion-tools

5.3.2 Creare repository

svnadmin create repo

Copiem in folderul repo toate fisierele pe care le dorim incluse, apoi le adaugăm la svn

svn add ./

Dupa modificări ulterioare la fișiere realizarea commit-ului se face facil:

$ svn commit -m "Modificari de interfata."
Sending        sandwich.txt
Transmitting file data .
Committed revision 3.

5.3.3 Interfețe grafice pentru SVN

Există mai multe interfețe grafice pentru SVN dintre care amintim KDESVN.

De asemenea există și interfețe web de explorare a modificărilor salvate intr-un repository - ca si Websvn

SVN

De asemenea mediile de dezvoltare prezentate anterior au module ce pot gestiona un repositry SVN.

Prezentare - Partea I - Partea a II-a - Partea a III-a - Partea a IV-a - Partea a V-a

mandriva/ghid-2011-p4.txt · Ultima modificare: 2011/12/28 11:39 (editare externă)