Ανάπτυξη ιστοτόπου σε περιβάλλον Debian/eclipse pdt
Το eclipse είναι ένα περιβάλλον ανάπτυξης εφαρμογών σχεδιασμένο γενικά ώστε να μπορεί να χρησιμοποιηθεί για διάφορες γλώσσες.
Μιά από αυτές είναι και η php . Αυτό γίνεται με την βοήθεια του πρόσθετου PHP_Development_Tools. (επίσημη σελίδα)
Το PDT παρέχει
- χρωματισμό συντακτικού
- συνόδους αποσφαλμάτωσης
- κρύψιμο-επέκταση κομματιών κώδικα
- συμπλήρωση κώδικα
- ενσωματωμένη αναφορά συναρτήσεων-κλάσεων
Εγκατάσταση eclipse pdt
[επεξεργασία]Ο παρακάτω οδηγός αφορά την έκδοση lenny του Debian.
Χρειάζεστε:
- Java πλατφόρμα (υπάρχουν τρεις εκδόσεις)
- sun-java6-jdk ,sun-java6-jre, Προσοχή ,είναι [non-free] πακέτα που σημαίνει ότι ίσως πρέπει να προσθέσετε τη λέξη non-free στα αποθετήρια σας στο /etc/apt/sources.list
- OpenJDK debian πακέτο. Παρόλο το όνομα είναι συνδυασμός του επίσημου openJDK της sun και του IcedTea της redhat. Αυτό επιτρέπεται από την Sun μέσω του OpenJDK trademark notice.
- IcedTea Στο debian δεν υπάρχει , αφού εμμέσως συμπεριλαμβάνεται κομμάτι του στο openJDK
- Eclipse
- eclipse 3.2(callisto) Στο lenny υπάρχει αυτή η έκδοση.
- Eclipse 3.4 (ganymede). Κάνετε λήψη από εδώ το πακέτο eclipse classic εγκαταστήστετο σε ένα κατάλο και τρέξτε από μια γραμμή εντολών το πρόγραμμα. Για την ώρα (02-2009) δεν υπάρχει πακέτο debian.
- PHP_Development_Tools (PDT). Πρόκειται για πρόσθετο(plugin) του eclipse που μας περέχει περιβάλλον δημιουργίας και διαχείρισης php εγχειρημάτων. Δεν υπάρχει πακέτο Debian, και θα πρέπει να το εγκαταστήσετε χρησιμοποιώντας την ενημέρωση λογισμικού Help->Software updates που προσφέρει το περιβάλλον eclipse. Δυστυχώς με openjdk δεν καταφέραμε να κάνουμε εγκατάσταση ,και μάλιστα σε επίσημο FAQ] συνίσταται το sunjdk για να ξεπεραστεί αυτό ακριβώς το πρόβλημα!
- Πρέπει ενσυνεχεία να ενεργοποιήσετε την έκδοση java κατα προτίμηση για την ώρα της sun γιατί η openjdk δεν μας αφήνει μέσα στο eclipse να κάνουμε λήψη του pdt. Αυτό το καταφέρνουμε με την εντολή
# update-java-alternatives -l //εμφάνιση λίστας εναλλακτικών υλοποιήσεων της java. java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk java-6-sun 63 /usr/lib/jvm/java-6-sun java-gcj 1042 /usr/lib/jvm/java-gcj
Και επιλέγουμε από την λίστα την υλοποίηση της java που θέλουμε με την παράμετρο -s ή --set πχ
# update-java-alternatives --set java-6-sun
Πρόκειται για εντολή στο στυλ του εργαλείου update-alternatives που σου επιτρέπει να επιλέξεις ποιό απο μια ομάδα πακέτων που προσφέρουν ίδια λειτουργικότητα θα είναι ενεργό.
Ίσως χρειαστείται και το πακέτο xulrunner.
Επίσης για να έχουμε δυνατότητα αποσφαλμάτωσης php έργων θα χρειαστεί να μεταφορτώσουμε το xdebug (υπάρχει πακέτο .deb ) και κατόπιν να κάνουμε τις απαραίτητες τροποποιήσεις στο php.ini
Ξεκινώντας με το eclipse
[επεξεργασία]Θεωρούμε καθ'όλη την έκταση του κεφαλαίου αυτού ότι έχουμε σαν χώρο εργασίας (workspace) τον φάκελο ~/http-docs. Και σ'αυτόν έχουμε έναν υποφάκελο για κάθε εργασία μας. Βέβαια χρειάζεται προσεκτική ρύθμιση των δικαιωμάτων πρόσβασης προκειμένου να λειτουργεί σωστά και ο εξυπηρετητής http αλλά και να μπορούμε να επεξεργαστούμε τα αρχεία.
Αρχικά θα δούμε την οθόνη δεξιά. Αυτό που θα παρατηρήσουμε είναι ότι είναι ανοιχτή μια java όψη-προοπτική (perspective). Μια από τις πρώτες μας εργασίες είναι να αλλάξουμε σε php όψη και να κλείσουμε την java προοπτική. Αυτό θα το καταφέρουμε με δεξί κλικ στην java όψη πάνω δεξιά και επιλεγοντας close στο μενού αντικειμένου και κατόπιν αριστερό κλικ στο κουμπί open perspective και στο μενού που εμφανίζεται 'other' και κατόπιν επιλέγουμε την όψη PHP.
Εισαγωγή εγχειρημάτων στον χώρο εργασίας
[επεξεργασία]Το επόμενο βήμα μας είναι να εισάγουμε τυχών υπαρκτές εργασίες που έχουμε δημιουργήσει.
- Από την κεντρική γραμμή μενού επιλέξτε File > Import.... και ανοίξει ο καθοδηγητής Εισαγωγής.
- Επέλεξε General > Existing Project into Workspace και κάνε κλικ στο Next.
- Επέλεξε είτε Select root directory ή Select archive file και κάνε κλιλ στο σχετικό πλοηγό για να βρεις τον κατάλογο ή το αρχείο που περιέχει το προτζετκ.
- Κάτω από τα εγχειρήματα επέλεξε το/τα εγχειρήματα που θα ήθελες να εισάγεις
- Κάνε κλικ στο Finish για να αρχίσει η εισαγωγή.
Σε περίπτωση που δεν γίνεται η εισαγωγή του έργου σας δημιουργήστε εκ νέου ένα έργο και μετακινήστε εκεί τα αρχεία του.
Βασική οθόνη του eclipse με pdt
[επεξεργασία]Δεξιά βλέπουμε αριθμημένα τα βασικά μέρη της php προοπτικής eclipse :
- Περιηγητής καταλόγων του επιλεγμένου php έργου (php explorer).
- Πολλαπλές καρτέλες τμημάτων επεξεργασίας κειμένου.
- Καρτέλες βοηθητικών όψεων. (στην εικόνα ενεργή είναι καρτέλα όψη των σημείων διακοπής)
- Περίγραμμα των συναρτήσεων , κλάσεων κτλ που περιέχονται στο έργο μας
- Καρτέλα (που δεν είναι ενεργή) όλων των διαθέσιμων php συναρτήσεων. (php functions)
- Διαθέσιμες προοπτικές eclipse
Θα χρειαστούμε το πακέτο php5-debug . Μόλις εγκατασταθεί πρέπει να βρούμε το μονοπάτι στο οποίο εγκαταστήθηκε η βιβλιοθήκη και να κάνουμε την παρακάτω προσθήκη στο αρχείο /etc/php5/apache2/php.ini. Κατά προτίμηση βρείτε τον τομέα του αρχείου Dynamic extensions και προσθέστε τις παρακάτω γραμμές:
zend_extension="/usr/lib/php5/20060613/xdebug.so" ; ανάλογα με την έκδοση του debian μπορεί να είναι διαφορετικό το μονοπάτι αυτό. xdebug.remote_enable=true xdebug.remote_host="127.0.0.1"
Επίσης βρείτε στο ίδιο αρχείο την ρύθμιση imiplicit_flush και θέστε την ως εξής:
implicit_flush = On
Έχοντας ρυθμίσεις σωστά το php.ini κάντε μια επανεκκίνηση του http εξυπηρετητή.
#/etc/init.d/apache2 reload
Κατόπιν πρέπει να ορίσουμε τον πλοηγό μέσα από τον οποίο θα βλέπουμε τους ιστοτόποους που αποσφαλματώνουμε. Window->Preferences->General->Web browser και εδώ μας δίνεται η δυνατότητα να επιλέξουμε εσωτερικό πλοηγό (μέρος του eclipse εγχειρήματος) ή έναν εξωτερικό που έχουμε συνηθίσει όπως galeon . iceweasel , κτλ.
Πάλι στο παράθυρο Window->Preferences->PHP->Debug πρέπει να θέσουμε PHP Debugger = XDEBUG , Server (δεν το πειράζουμε για την ώρα) , PHP Executable = (εδώ πρέπει να βρούμε το μονοπάτι του αρχείου που περιέχεται το πρόσθετο του http εξυπηρετητή που παρέχει την php μηχανή )
Κατόπιν πρέπει να δημιουργήσουμε τόσες διαμορφώσεις αποσφαλμάτωσης όσα και τα έργα που θέλουμε να αποσφαλματώσουμε.
Πχ έστω το έργο dokuwikitest τα βήματα που θα ακολουθήσουμε είναι τα εξής:
- Run->Debug configurations
- Στο παράθυρο που θα εμφανιστεί στο αριστερό μέρος κάνουμε δεξί κλικ και δίνουμε την εντολή new στο PHP Web Page
- Στα δεξιά θα εμφανιστεί ένα τμήμα στο οποίο θα συμπληρώσουμε τα εξής στοιχεία
- Name : dokuwikitest (ή ανάλογα το όνομα του έργου μας
- Server Debugger : XDebug
- PHP Server Εδώ κάνουμε κλικ new και στο παράθυρο που θα εμφανιστεί , Name: dokuwikitest και url : http://dokuwikitest
- File : Πληγούμαστε αν δεν θυμόμαστε απ'έξω το αρχικό αρχείο του έργου μας , συνήθως index.php , doku.php κτλ'
- URL : Αποεπιλέγουμε το πεδίο AutoGenerate και γράφουμε doku.php
- Στην καρτέλα Common στο πλαίσιο Display in favorite menu επιλέγουμε Debug , Run ώστε να είναι προσβάσιμη από αυτά τα κεντρικά μενού η διαμόρφωσή μας
Γενικές έννοιες
[επεξεργασία]Μια βασική λειτουργία που εκτελούμε στα πλαίσια της αποσφαλμάτωσης είναι η προσθήκη στον κώδικά μας σημείων στάσης (breakpoints) στα οποία σταματά η εκτέλεση του προγράμματος και μας δίνεται η ευκαιρία να εξετάσουμε μεταβλητές ώστε να ανακαλύψουμε σφάλματα.
Άνοιγμα όψης αποσφαλμάτωσης
[επεξεργασία]Χρήσιμη εντολή είναι αυτή που ανοίγει την view (όψη) της αποσφαλμάτωσης .
Ctrl+Shift+L η οποία μας εμφανίζει πλαίσιο με τις συντομευσεις του eclipse
πληκτρολογίου. Εκεί ψάχνουμε για την συντόμευση με όνομα breakpoints. Είναι εντολή που θα ανοίξει την όψη που θέλουμε διαχείρισης των σημείων διακοπής. Η προκαθορισμένη συντόμευση γι'αυτό είναι η Shift+Alt+Q B , όμως στην ελλάδα υπάρχει ο κίνδυνος ο συνδυασμός Shift+Alt να γυρίσει το πληκτρολόγιο στα ελληνικά οπότε μια ποιό βολική συντόμευση θα ήταν η Ctrl+Alt+Q B
Επίσης μπορούμε να ανοίξουμε την όψη της αποσφαλμάτωσης με χρήση του ποντικίου από το γραμμή μενού:
- Window -> Show view -> other -> Debug -> Breakpoints
Μέσα από την όψη της αποσφαλμάτωσης μπορούμε να ελέγχουμε καλύτερα τα σημεία διακοπής είτε
κατα όμάδες ή καθ'ένα ξεχωριστά.
Βασικές έννοιες-λεξικό
[επεξεργασία]- workbench (παράθυρο εργασίας)
- perpsective (προοπτική)
- view (όψη)
- php project (έργο php)
- workspace (χώρος εργασίας)
- Πρόκειται για τον φάκελο στον οποίο αποθηκεύονται οι εργασίες μας.
- code assist (βοήθεια κώδικα)
- php debug perspective ( προοπτική αποσφαλμάτωσης php )
Συχνές απορίες
[επεξεργασία]- Αν προσπαθώντας να ανοίξεις ένα αρχείο πέρνεις το μήνυμα '..out of sync' , (πιθανώς γιατί είχες ανοίξει
και επεξεργαστεί το ίδιο αρχείο από άλλον επεξεργαστή κειμένου) πατώντας F5 (refresh) μέσα από τον επεξεργαστή του eclipse pdt θα φορτωθεί το αρχείο.
Προβλήματα
[επεξεργασία]- Σε περίπτωση που κατά την εκκίνηση εμφανιστεί μήνυμα λάθους workspace is in use ... πρέπει να μεταβούμε στον κατάλογο .metadata στον κατάλογο που αντιστοιχεί στο τρέχων workspace μας και να σβήσουμε το αρχείο .lock
Αυτό το σφάλμα συμβαίνει όταν δεν έχει κλείσει ομαλά η εφαρμογή.
- Πως μπορούμε να αλλάξουμε το χρώμα στοιχείων και τμημάτων του περιβάλλοντος eclipse ;