Θερινό Σχολείο, Ιουλίου slim. Δημοσθένης Νικούδης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Σχετικά έγγραφα
Το Έργο Συνεισφοράς. Ανάπτυξη εφαρμογής για κινητές συσκευές του Σ.Δ.Μ. Open eclass. Θερινό Σχολείο, Ιουλίου 2014

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Workshop 5ης εβδομάδας Ο πρώτος μας κριτής

Θερινό Σχολείο, Ιουλίου Εισαγωγή στο. Αχιλλέας Πιπινέλης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

BibConvert μετατροπές LOM

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Ενότητα 2: HTTP, Clients και Servers (II) (Web, το θεμέλιο του Σημασιολογικού Ιστού)

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓIΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΑΡΤΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ:ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Το γεγονός ότι αποτελεί λογισµικό ανοικτού κώδικα το καθιστά αρκετά ευέλικτο σε συνεχείς αλλαγές και βελτιώσεις. Υπάρχει µια πληθώρα χρηστών που το χρ

Σενάριο workshop 1ης εβδομάδας

Δομημένος Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

XAMPP Apache MySQL PHP javascript xampp

ΑΠΟΘΕΤΗΡΙΟ ΕΦΑΡΜΟΓΩΝ ΥΠΠΕΘ ΚΑΙ ΕΠΟΠΤΕΥΟΜΕΝΩΝ ΦΟΡΕΩΝ (git.minedu.gov.gr)

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Η Πύλη των Μονάδων Αριστείας ma.ellak.gr & η Υπηρεσία Τηλεκπαίδευσης

Basic Missions

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Η Πύλη των Μονάδων Αριστείας ma.ellak.gr & η Υπηρεσία Τηλεκπαίδευσης

Paybybank RESTful API GUIDE

Joomla! with K2 - User Guide

Περιεχόμενα. Πρόλογος... xiii

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Diving in the code of a CMS

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Αντικειμενοστραφής Προγραμματισμός και JavaScript

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Κύκλος Εκπαίδευσης «Συστήματα Ηλεκτρονικής Μάθησης & Ηλεκτρονική Αξιολόγηση» moodle. Αλέξανδρος Ταγκούλης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Διαδικαστικά

PayByBank RESTful API GUIDE

Περιήγηση Σύνταξη στο Clilstore

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Δομημένος Προγραμματισμός

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING

Αρχίζοντας. Το Joomla τρέχει: Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) PHP MySql

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Αντικειμενοστρεφής Προγραμματισμός

E-LIS: E-prints για τη Βιβλιοθηκονομία και την Επιστήμη της Πληροφόρησης (ΒΕΠ)

Αυτοματοποιημένη χαρτογραφία

Σύστημα Αποτίμησης Ποιότητας Ευρυζωνικών Συνδέσεων (ΣΑΠΕΣ)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Κεφάλαιο 10 ο Υποπρογράµµατα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: OSPF Cost

Πώς τροποποιούμε το Invenio;

Αποτελεί την πρόταση του GUnet. ασύγχρονης τηλεκπαίδευσης. Είναι ένα ανοικτό αρθρωτό σύστημα διαχείρισης ηλεκτρονικών μαθημάτων

Εισαγωγή στη Βιοπληροφορική

Γενικά (για τις γραπτές εξετάσεις)

Το αίτημα (http request) για την αποστολή μηνύματος γίνεται στον server μας στο URL με τις ακόλουθες μεταβλητές.

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Ειδική διάλεξη 2: Εισαγωγή στον κώδικα της εργασίας

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

ΘΕΡΙΝΟ ΣΧΟΛΕΙΟ ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP, MySQL & Wordpress

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Social Network : Programming on FACEBOOK

Εργαστήριο #10 (Ε10) 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

B. Ενσωμάτωση Ιθαγενών Μεθόδων

Νέες Τεχνολογίες και Εκπαίδευση ΕΠΠΑΙΚ ΑΣΠΑΙΤΕ Παράρτημα Κρήτης. Μιχαηλίδη Αφροδίτη 2017

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Ενότητα 3: Τα δεδομένα στο Web. (και η σημασιολογία τους semantics )

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Αστέριος Κατσιφοδήμος Γιώργος Νικολάου Κώστας Βρυώνη. ΕΠΛ 428 Προγραμματισμός Συστημάτων 16/04/07

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Ανάκτηση Πληροφορίας (Information Retrieval IR)

Transcript:

Θερινό Σχολείο, 14 20 Ιουλίου 2014 slim Δημοσθένης Νικούδης Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Τι είναι framework Μια δομή/καλούπι που μας βοηθάει να οργανώσουμε τον κώδικα μας Συνήθως παρέχει βιβλιοθήκες για συχνά tasks όπως templating, routing, request handling κτλ. Είναι ένα επίπεδο πιο πάνω από μια απλή βιβλιοθήκη μας ορίζει πως πρέπει να γραφτεί γενικότερα ο κώδικας αντί να παρέχει απλά συναρτήσεις προς χρήση

Γιατί framework; Σωστά δομημένος κώδικας από την αρχή αναγκαζόμαστε να αναλύσουμε και να χωρίσουμε τον κώδικα μας από την αρχή Καλύτερη επικοινωνία με άλλους developers οποιοσδήποτε ξέρει το framework μπορεί να καταλάβει τον κώδικα μας και να συνεισφέρει Γρηγορότερη ανάπτυξη μπορούμε να εστιάσουμε στην εφαρμογή μας

Slim Micro-framework Παρέχει τα ελάχιστα δυνατά features που μπορεί να παρέχει ένα framework Ελάχιστο overhead σε σχέση με την «ελεύθερη» PHP Object oriented Πολύ απλό στη χρήση

Παράδειγμα Slim Routing με μια παράμετρο Τι θα τυπώσει αν ονομάσουμε το αρχείο index.php και καλέσουμε /index.php/hello/george? Χρήσιμα links: http://www.slimframework.com/

URL rewriting Το path /index.php/hello/george δεν είναι «όμορφο» Θα ήταν καλύτερο να το μετατρέψουμε σε: /hello/george Μπορεί να επιτευχθεί με URL rewriting mod_rewrite στον Apache HttpRewriteModule στον Nginx

Παράδειγμα mod_rewrite RewriteEngine On # Some hosts may require you to use the `RewriteBase` directive. # If you need to use the `RewriteBase` directive, it should be the # absolute physical path to the directory that contains this htaccess file. # RewriteBase /modules/rest/ RewriteCond %{REQUEST_FILENAME}!-f RewriteRule ^(.*)$ index.php [QSA,L] Τοποθετείται είτε απευθείας στο config του server είτε στο.htaccess

Πως θα το χρησιμοποιήσουμε Θα προσθέσουμε το Slim framework στα includes του openclass Φάκελος /includes Θα δημιουργήσουμε ένα νέο module στο openclass Φάκελος /modules/rest/ Μέσα στο module θα φτιάξουμε ένα index.php το οποίο θα φορτώνει το Slim και θα αρχικοποιεί το routing για τους πόρους Χρήσιμα links: http://docs.slimframework.com/#routing-overview

Υπάρχουσα υποδομή Το rest module έχει δημιουργηθεί, με ένα βασικό index.php που χειρίζεται την αυθεντικοποίηση Επίσης έχει δημιουργηθεί το αρχείο courses.php που περιέχει τη δομή των συναρτήσεων που θα χειριστούν τον πόρο /courses Η υποδομή έχει δημιουργηθεί για τη διευκόλυνση των ασκήσεων και για να αποτελέσει την αφετηρία για τη δημιουργία άλλων πόρων

Άσκηση 1 Θα δημιουργήσουμε τον πόρο GET /courses που θα επιστρέφει έναν πίνακα με μαθήματα Τα δεδομένα θα πρέπει να επιστρέφονται σε μορφή JSON Τα πεδία που θα επιστρέφονται για κάθε μάθημα είναι: code, lang, title, keywords, visible Ο πίνακας με τα μαθήματα θα είναι αρχικά σταθερός και «hardcoded» μέσα στο GetCourses. Ακολουθεί ο πίνακας των μαθημάτων.

Άσκηση 1 (Πίνακας μαθημάτων) code lang title keywords visible 1001 el Μαθηματικά I math, sci 1 1002 el Αλγοριθμική alg, progr 1 2001 el Λειτουργικά Συστήματα I 2002 el Αντικειμενοστραφής Προγραμματισμός os 1 progr 1

Σύνδεση με βάση δεδομένων Το openclass εφόσον έχει εγκατασταθεί σωστά παρέχει έναν wrapper για σύνδεση με τη βάση δεδομένων Εξασφαλίζει ότι θα γίνει μόνο μια σύνδεση με τη βάση Η ανάκτηση της σύνδεσης με την κλήση Database::get() Η κύρια κλήση για εκτέλεση ερωτημάτων είναι: Database::get()->queryFunc($sql, $callback, $argument1, $argument2,, $argumentn); Reference μεθόδων της κλάσης Database: https://github.com/maellak/openeclass/blob/master/modules/db/database.php

Άσκηση 2 Θέλουμε να επεκτείνουμε την άσκηση 1, ώστε ο πίνακας των μαθημάτων να μην είναι «hardcoded» αλλά να ανακτάται από τη βάση Το output θα πρέπει να περιέχει τα πεδία της προηγούμενης άσκησης και τα εξής επιπλέον: prof_names, public_code

Σας ευχαριστώ πολύ Ερωτήσεις; Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας