Τεχνικός Εφαρμογών Πληροφορικής ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής
Περιεχόμενα 1.Τι είναι η Php; 2.Πως γίνετε η γραφή και εκτέλεση των προγραμμάτων; 3. Υλοποίηση απλών προγραμμάτων 4.Ποια είναι η δομή των προγραμμάτων;
Εισαγωγή (1/3) Η είναι μιας γενικής χρήσης Γλώσσα Προγραμματισμού για δημιουργία δυναμικού περιεχομένου σημαίνει... Hypertext Preprocessor Προ Επεξεργαστής Υπερκειμένου Τρέχει σε συνδιασμό με κάποιον server (διακομιστή web), πχ Apache Τα scripts εκτελούνται στον server και όχι στον client Παράγει συνήθως κώδικα HTML που φτάνει στον client Μπορεί να εκτελεστεί σε διάφορα ΛΣ, όπως GNU/Linux, Windows Συνδιάζεται με διάφορα συστήματα βάσεων δεδομένων, όπως MySQL, Oracle, PostgreSQL, ODBC
Εισαγωγή (2/3) Δεν κοστίζει τίποτα, είναι ελεύθερη για λήψη και χρήση Επίσημη ιστοσελίδα: http://php.net/ Τα αρχεία της php έχουν κατάληξη.php,.php4,.php5 Αποθηκεύονται και εκτελούνται στον server (διακομιστή web) O πελάτης/browser δεν έχει πρόσβαση σε αυτά αλλά στο παραγόμενο αποτέλεσμα Τα αρχεία περιέχουν κατά βάση κώδικα HTML, CSS, Javascript, όπου παρεμβάλλεται κώδικας php Δεν χρειάζεται να κάνετε compile (μεταγλωτίσετε) κάτι ή να εγκαταστήσετε επιπλέον λογισμικό, τα αρχεία εκτελούνται από τον server (διακομιστή web)
Εισαγωγή (3/3) Ένα php αρχείο μπορεί να περιέχει και HTML tags και Scripts Η σύνταξη της γλώσσας είναι σαν της C++ H είναι εύκολη στην εκμάθηση και ιδιαίτερα αποδοτική Η μοιάζει με τη JavaScript, με τη διαφορά ότι είναι serverside γλώσσα (εκτελείται στο server και όχι στον client!)
Γενική Λειτουργία Ο κώδικας είναι ενσωματωμένος στην HTML, γράφεται δηλαδή μέσα στον κώδικα της HTML με χρήση tags Όταν φτάνει ένα αίτημα (page request), ο server (διακομιστής) αναγνωρίζει το περιεχόμενο από το file extension (.php ή.phtml) πχ. Hello.php Ο server εκτελεί τον κώδικα, και δημιουργεί την έξοδο σε HTML Το αποτέλεσμα στη συνέχεια γίνεται download στον client Ο χρήστης ποτέ δεν βλέπει τον κώδικα. Βλέπει μόνο το αποτέλεσμα στη σελίδα
Τι είναι η (Personal Home Page Hypertext Preprocessor) ;
Τι μπορεί να κάνει; Η μπορεί... να παράγει δυναμικό περιεχόμενο σελίδων να δημιουργήσει, να ανοίξει, να διαβάσει, να γράψει, να διαγράψει και να κλείσει αρχεία στο διακομιστή (server) να συλλέξει/διαχειριστεί δεδομένα φόρμας να στείλει και να λάβει cookies να προσθέσει, να διαγράψει, να τροποποιήσει πληροφορίες σε βάση δεδομένων
Τι μπορεί να κάνει; Η μπορεί... να περιορίσει τους χρήστες ώστε αυτοί να έχουν πρόσβαση σε ορισμένες σελίδες στην ιστοσελίδα σας να κρυπτογραφήσει δεδομένα Με την δεν είστε περιορισμένοι να εξάγετε HTML κώδικα. Μπορείτε να εξάγετε εικόνες, αρχεία PDF, ακόμη και αρχεία Flash. Μπορείτε επίσης να εξάγετε οποιοδήποτε κείμενο σε XHTML(EXtensible HyperText Markup Language) και XML (EXtensible Markup Language).
Ιστορία (1/4) Η ανάπτυξη της άρχισε το 1994, όταν ο Rasmus Lerdorf έγραψε μια σειρά από Common Gateway Interface (CGI) script σε γλώσσα Perl, τα οποία χρησιμοποίησε στην προσωπική του ιστοσελίδα. Τα εργαλεία εκτελούσαν εργασίες, όπως η εμφάνιση του βιογραφικό του και την καταγραφή της κυκλοφορίας της ιστοσελίδα του. Στην συνέχεια έγραψε εκ νέου αυτά τα script σε γλώσσα C για λόγους απόδοσης αλλά και τους πρόσθεσε τη δυνατότητα να συνεργάζονται με web φόρμες και να επικοινωνούν με βάσεις δεδομένων, δίνοντας το όνομα "Personal Home Page/Forms Interpreter" ή /FI.
Ιστορία (2/4) Ανακοίνωσε δημοσίως την κυκλοφορία του /FI ως "Personal Home Page Tools ( Tools) version 1.0" δημοσίως στις 8 Ιουνίου, 1995. Η αρχική δεν επρόκειτο να είναι μια νέα γλώσσα προγραμματισμού, και μεγάλωσε σταδιακά, με τον Lerdorf να επισημαίνει εκ των υστέρων ότι δεν είχε ποτέ καμία πρόθεση να γράψει μια γλώσσα προγραμματισμού και ότι απλώς συνέχισε στο επόμενο λογικό βήμα στο δρόμο ανάπτυξης. Μια ομάδα ανάπτυξης άρχισε να σχηματίζεται και, μετά από μήνες εργασίας και δοκιμών beta,κυκλοφόρησε επίσημα η /FI 2 τον Νοέμβριο του 1997.
Ιστορία (3/4) Μια από τις επικρίσεις κατά της είναι ότι δεν είχε σχεδιαστεί αρχικά, αλλά αντίθετα αναπτύχθηκε οργανικά και αυτό έχει οδηγήσει σε ασυνεπή ονοματοδοσία των λειτουργιών και των παραμέτρων τους. Οι Zeev Suraski και Andi Gutmans ξαναέγραψαν τον parser της το 1997 που αποτέλεσε τη βάση της 3, αλλάζοντας το όνομά της γλώσσας με το αναδρομικό ακρωνύμιο :. Hypertext Preprocessor και η οποία εκδώθηκε τον Ιούνιο 1998. Οι Suraski και Gutmans προχώρησαν στη συνέχεια στο να ξαναγράψουν τον πυρήνα της, με αποτέλεσμα το να παράγουν το Zend Engine το 1999, το οποίο και αποτέλεσε τη βάση της 4.
Ιστορία (4/4) Τον Ιούλίο του 2004, κυκλοφόρησε η 5, που τροφοδοτείται από το νεότερο Zend Engine II και περιλαμβάνει νέα χαρακτηριστικά, όπως βελτιωμένη υποστήριξη για τον αντικειμενοστραφή προγραμματισμό, τις επεκασεις αντικείμενων Data (POP) και πολλές βελτιώσεις επιδόσεων. Το 2008, η 5 έγινε η μόνη σταθερή έκδοση υπό ανάπτυξη, με αρκετές υποεκδόσεις που συνεχίζουν ως σήμερα.
Σήμερα Υπάρχουν 4 ενεργές εκδόσεις που υποστηρίζονται: 5.3.x 5.3.28 ως τον Ιούλιο του 2014 5.4.x 5.4.30 ως τον Μάρτιο του 2015 5.5.x 5.5.14 ως τον Ιούνιο του 2016 5.6.x 5.6.2
Σήμερα!ΣΗΜΑΝΤΙΚΟ! Κάθε από μία τις παραπάνω εκδόσεις έχει ένα σύνολο μεταβλητών και παραμέτρων. Κάθε εκδοσή έχει αλλαγές με αποτέλεσμα κάποιες μεταβλητές να έχουν καταργηθεί εντελώς(removed) και κάποιες να έχουν τεθεί προς κατάργηση (deprecated).
Πως ξεκινάω; Βήματα για την γραφή και την εκτέλεση ενός προγράμματος Για να αρχίσετε να χρησιμοποιείτε την, χρειάζεται... μια web φιλοξενία με υποστήριξη ή έναν διακομιστή web server ακόμα και στον δικό σας υπολογιστή, όπου μπορείτε να εγκαταστήσετε την και MySQL (πχ XAMPP) Να δημιουργήσετε κάποια αρχεία php στον ριζικό κατάλογο του διακομιστή web και ο server θα τα εκτελέσει αυτόματα για εσάς (htdocs του Xampp) Δεν χρειάζεται να κάνετε compile κάτι ή να εγκαταστήσετε επιπλέον λογισμικό web. Να έχετε στον Η/Υ σας έναν απλό επεξεργαστή κειμένου, ή κάποιον επεξεργαστή κώδικα, όπως το Geany, Notepad++
Server Side Web Programming 1. CGI (Common Gateway Interface) σενάρια: η πιο συνηθισμένη προσέγγιση σε server-side programming Παγκόσμια υποστήριξη: Κάθε server υποστηρίζει CGI programming. Υπάρχει πολύς κώδικας έτοιμος για χρήση. Τα πιο πολλά APIs (Application Programming Interface) επιτρέπουν CGI programming. Επιλογή γλωσσών: Το CGI είναι πολύ γενικό, τα προγράμματα γράφονται σχεδόν σε κάθε γλώσσα. Η Perl είναι η πιο δημοφιλής. Χρησιμοποιούνται όμως και C, C++ ή Python. Μειονέκτημα: Μία ξεχωριστή process τρέχει κάθε φορά που το script γίνεται requested
Server Side Web Programming Άλλες εναλλακτικές λύσεις προσπαθούν να αποφύγουν τα Μειονεκτήματα 2. Server-Side Includes (SSI): Ο κώδικας είναι embedded σε HTML σελίδες και αξιολογείται από το server καθώς εξυπηρετούνται οι σελίδες. Προσθήκη δυναμικά παραγόμενου περιεχομένου σε υπάρχουσα HTML σελίδα, χωρίς να χρειάζεται να γίνει εξυπηρέτηση ολόκληρης σελίδας από CGI πρόγραμμα
Server Side Web Programming 3. Active Server Pages (ASP, ASP.NET) : Ενσωματωμένη στο web server, δεν χρειάζεται επιπλέον διαδικασία. Επιτρέπει στους προγραμματιστές να αναμειγνύουν κώδικα με HTML σελίδες και να μη γράφουν ξεχωριστά προγράμματα
Server Side Web Programming 4.Java Servlets (Sun): Οι ιστοσελίδες που περιέχουν κώδικα JSP (JavaServer Pages), δηλ. ανάμιξη HTML με Java, μετατρέπονται σε Servlets πριν εκτελεσθούν στον server. Ένα Servlet είναι μια τάξη (class) της Java που υλοποιεί (implements) το interface Servlet και δέχεται αιτήσεις (requests) και παράγει αποκρίσεις (responses). Οι αιτήσεις μπορεί να προέρχονται από τάξεις της Java, από Web clients ή και από άλλα Servlets. Java Server Pages (JSP): Όπως οι ASP, τεχνολογία η οποία επιτρέπει σε developers να ενσωματώνουν Java σε web pages
Γιατί ; Είναι πιο εύκολη στην εκμάθηση και τη χρήση H ASP.NET απαιτεί γνώση VBScript ή C# ή άλλης γλώσσας Το CGI απαιτεί Perl ή C Πιο δύσκολες γλώσσες στην εκμάθηση βέβαια περισσότερες δυνατότητες! Γράφτηκε ειδικά για τη δημιουργία δυναμικών ιστοσελίδων Δεν ισχύει για την Perl, VBScript, Java Πραγματοποιεί συγκεκριμένες εργασίες πιο γρήγορα και πιο εύκολα Είναι δωρεάν και ανεξάρτητη πλατφόρμας Η ανάπτυξή της καθοδηγείται από τους χρήστες και όχι από κάποια εταιρεία Αποτελεί το πιο δημοφιλές εργαλείο για την ανάπτυξη δυναμικών τοποθεσιών ιστού
Υλοποίηση απλών προγραμμάτων
Υλοποίηση απλών προγραμμάτων <html> <head> ΡΗΡ κώδικας <title> Test</title> </head> <body> <?php echo <p>hello World!</p> ;?> </body> </html> Παραγόμενο Αποτέλεσμα <html> <head> <title> Test</title> </head> <body> <p>hello World!</p> </body> </html>
Υλοποίηση απλών προγραμμάτων <html> <head> <title> <?php echo "Τίτλος σελίδας";?> </title> </head> <body> <?php echo "<p> Εδώ μπορείτε να γράψετε το κυρίως κείμενο της σελίδας σας </p>";?> </body> </html>
Υλοποίηση απλών προγραμμάτων <html> <body> <strong> <?php echo "Hello,". "<i>". " World!". "</i>";?> </strong> </body> </html>
Βασική Σύνταξη Ένα script μπορεί να τοποθετηθεί οπουδήποτε στο έγγραφο, ενώ ξεκινά με <?php και τελειώνει με?> Π.χ <?php echo <p>καλησπέρα σας!</p> ;?> Οι περισσότερες εντολές τελειώνουν με ερωτηματικό ; H εντολή echo στέλνει στον web browser κείμενο
Βασική Σύνταξη Μπορούμε να παρεμβάλουμε όσες φορές θέλουμε τον ίδιο κώδικα Ο κώδικας εκτελείται σειριακά, όπως διαβάζεται δηλ. η μια εντολή ακολουθείτε μετά την άλλη Απαιτείται προσοχή με την σύνταξη για να αποφύγουμε πιθανά λάθη. Μερικά βοηθητικά σημεία: χρησιμοποιείτε εισαγωγικά, παρενθέσεις και αγκύλες σε ζεύγη προσοχή στα πεζά/κεφαλαία η αγνοεί τα κενά
Δομή Αρχείο myfirst.php <?php Kώδικας?> Αρχείο myfirst.php <html> <head> <title>my first php </title> </head> <?php Kώδικας?> Κώδικας HTML <?php Kώδικας?> </html>
Βιβλιογραφία Ζήσης Μιχάλης GreekLUG, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Πρέντζα Ανδριάννα, ΠρογραμματισμόςΠαγκόσμιου Ιστού, Παν. Πειραιώς. Kωλέτσου Ευτυχία, Basic, http://ekoletsou.gr Αντωνής Κωνσταντίνος, Server Side Web Programming, http://www.poikonomou.com/teaching/2012-07-09-15-13-28/2013-12-25-17-15-00/item/100-php http://athos.cti.gr/intech/index.php?q=node/20 http://www.tutor.edu.gr/index.php/php/phpi/phpintro