PHP objects and public/private methods

Θοδωρής Λύτρας thlytras at gmail.com
Tue Sep 4 20:21:47 EEST 2007


Στις Τρίτη 04 Σεπτέμβριος 2007 19:52, ο/η DJ Art έγραψε:
> Μετά από λίγο ψάξιμο κατέληξα στο ότι τα interfaces στην PHP είναι όντως
> για να δείχνει όμορφος ο κώδικας. Αν δεν τα χρησιμοποιήσεις και
> απολύτως σωστά, δεν πρόκειται να σκάσει κανένας compiler, δεν πρόκειται
> να δείς κανένα warning, ούτε να διαμαρτυρηθεί κανείς.
> Για παράδειγμα, όταν μια κλάση κάνει implements ένα interface, οφείλει
> να υλοποιεί τις μεθόδους που ορίζει το interface.
> Ε και να μην τις υλοποιεί τελικά η κλάση σου, δε θα σκάσει τίποτα (ενώ
> θα έπρεπε, αυτό το νόημα έχει).

Τώρα το κατάλαβα! Σ'ευχαριστώ. Βρήκα μάλιστα κι αυτό (για java): 
http://java.sun.com/docs/books/tutorial/java/concepts/interface.html
από το οποίο η φράση-κλειδί είναι "Interfaces form a contract between the 
class and the outside world, and this contract is enforced at build time by 
the compiler". Στην PHP δεν έχουμε compiler!

> Αυτό που έκανα εγώ στην πράξη ήταν να τα αγνοήσω όλα και να προσπαθήσω
> να γράψω σα να έγραφα Java (τηρώντας όσους περισσότερους κανόνες μπορώ
> στα "τυφλά") με τη σκέψη του ότι ΑΝ η PHP 6 γίνει ακόμα περισσότερο
> Object Oriented να είναι ο συγκεκριμένος κώδικας όσο πιο "έτοιμος" και
> portable γίνεται.

Ωραίο! Επομένως τα interfaces είναι μια καλή ιδέα και θα τα χρησιμοποιήσω! 
Γιατί αν ποτέ θελήσω να μάθω μια άλλη γλώσσα και να φτιάξω μια "standalone" 
έκδοση του PHP προγράμματος μου, είναι ωραίο οι κλάσεις αντικειμένων να είναι 
φτιαγμένες όπως θα φτιάχνονταν και σε μια άλλη γλώσσα, άρα εύκολα portable!

> Πάντως, αν γράφεις ένα project (και όχι χύμα κώδικα για δοκιμές), θα σου
> πρότεινα να χρησιμοποιήσεις κάποιο σοβαρό IDE. Εγώ χρησιμοποιώ το
> Eclipse με το PDT plugin (php development plugin). Και πάλι γράφεις στα
> τυφλά (κανονικά το Eclipise για Java projects κάνει συνέχεια build το
> project και υποδεικνύει τα λάθη), αλλά υπάρχουν εργαλεία που σε βοηθάνε
> να βγάλεις άκρη με το Object Orientation (π.χ. τα outline tree Views,
> σου δείχνουν μεθόδους που κληρονομούνται ή μεθόδους που υλοποιούν το
> interface, τις private/protected/public μεταβλητές κλπ κλπ)

Όντως προσπαθώ να φτιάξω ένα project, αλλά δεν έχω το χρόνο (και ίσως τις 
γνώσεις?) να μάθω ένα IDE και τη λειτουργικότητά του. Προς το παρόν μου αρκεί 
το editorάκι (kwrite!) μου με το syntax-checking του, και έχω διαπιστώσει οτι 
όσο πιο καλογραμμένος και οργανωμένος ο κώδικάς μου, τόσο λιγότερο νιώθω να 
μη μου φτάνει ο editor και να χρειάζομαι IDE. Έχω τον konqueror ανοιχτό και 
τον apache2 να τρέχει στο laptop και βλέπω συνέχεια το output των PHP scripts 
μου.

Ίσως είναι κάπως lame όλ'αυτά, αλλά...

Και πάλι ευχαριστώ,

Θοδωρής

-- 
"Beauty is transitory"
"Beauty survives"
        - Mr. Spock & Capt. Kirk, "That which survives", stardate unknown
by Theodore Lytras <aspirin at myrealbox.com>
Processing Key: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0




More information about the Linux-greek-users mailing list