Γιατί να χρησιμοποιήσω PHP Framework;

Γιατί να χρησιμοποιήσω PHP Framework;

Όλα τα framework που θα συζητήσουμε σε αυτό το άρθρο είναι ολοκληρωμένα και γραμμένα σε PHP όπως είναι τα CakePHP, Symfony, CodeIgniter κ.α. Και κάποια άλλα (άλλα όχι όλα), μπορεί να είναι μικρό-frameworks, όπως τα FatFreeFramework, Limonade, Glue και το Slim.

Πότε θα πρέπει να χρησιμοποιήσω Framework;

Τα Frameworks είναι κατάλληλα για διαδικτυακές εφαρμογές. Κάθε εφαρμογή που απαιτεί τη χρήση βάσεων δεδομένων, φορμών, συνόδων (sessions), cookies ή κάποιας απομακρυσμένης υπηρεσίας (όπως είναι το Twitter, το Facebook και άλλα) θα ωφεληθεί αν υλοποιηθεί με κάποιο Framework.

Επίσης ένα Framework δεν είναι κατάλληλο για την περίπτωση που κατασκευάζεται την προσωπική σας σελίδα και θέλετε να έχετε μια με δύο σελίδες, αλλά ούτε και για βοηθήματα γραμμής εντολών.

Τι παρέχει ένα Framework;

Βάσεις δεδομένων

Τα Frameworks μπορούν να συνδεθούν σε διαφορετικά συστήματα βάσεων δεδομένων. Αυτό σημαίνει πως μπορείτε να αλλάξετε τη βάση δεδομένων σας χωρίς να χρειαστεί να αλλάξετε ούτε μια γραμμή κώδικα. Για παράδειγμα, μπορείτε να μεταφέρετε τα δεδομένα σας από μία βάση δεδομένων MySQL σε μια Postgress ή MSSQL.

Επίσης μερικά Frameworks έχουν τη δυνατότητα να αναγνωρίζουν τις σχέσεις ανάμεσα στους πίνακες αυτόματα και να τις διαχειρίζονται. Αυτό μπορεί να σας βοηθήσει να εξοικονομήσετε χρόνο από το να γράφετε τα δικά σου JOIN quiries.

Cache

Από το να είστε υποχρεωμένοι να χρησιμοποιείτε συναρτήσεις του τύπου apc_add και apc_fetch στον κώδικα σας, μπορείτε να χρησιμοποιείτε ποιο γενικές κλάσεις που είναι συμβατές με περισσότερες μηχανές για cache όπως είναι η Memcache, APC, eAccelerator και XCache.

Διαχείριση φορμών

Τα Frameworks CakePHP και Symfony επιτρέπουν στον developer να ορίσουν δημιουργήσουν φόρμες με εντολές και συναρτήσεις της PHP. Σε αυτές τις περιπτώσεις το Framework αναλαμβάνει να διαχειριστεί τη δημιουργία των φορμών, την πιστοποίηση των δεδομένων και να διασφαλίσει την ασφάλεια των δεδομένων.

Πιστοποίηση

Τα περισσότερα Frameworks έχουν εγκατεστημένες μονάδες για πιστοποίηση χρήστη. Μπορούν να διαχειριστούν τη σύνδεση και αποσύνδεση ενός χρήστη στην εφαρμογή. Μπορούν επίσης να αναλάβουν την εγγραφή ενός χρήστη, τα δεδομένα των συνόδων του και τα δικαιώματα πρόσβασης του σε διάφορους τομείς της εφαρμογής.

Τυπικά είναι πάρα πολύ εύκολο να αλλάξετε ή να προσθέσετε νέα πεδία.

Ευκολία στην αποσφαλμάτωση και την βελτίωση των επιδόσεων

Τα Kohana3 και Symfony2 έχουν δικιά τους  μπάρα αποσφαλμάτωσης. Αυτό σας επιτρέπει να επιθεωρήσετε καθολικές μεταβλητές, ερωτήματα προς τη βάση δεδομένων, καταγραφές και χρόνους ολοκλήρωσης της σελίδας.

Internationalization

Ενσωματωμένα frameworks μετάφρασης σας επιτρέπουν να δημιουργήσετε εφαρμογές που απευθύνονται σε χρήστες συγκεκριμένων κρατών.

Ποια είναι τα πλεονεκτήματα από τη χρήση ενός Framework;

Φορητότητα

Ο τρόπος επιλογής βάσης δεδομένων και συστήματος για Caching σας επιτρέπει να εγκαταστήσετε τις εφαρμογές σας σε πολλές διαφορετικές εγκαταστάσεις server με διαφορετικές παραμέτρους και χαρακτηριστικά. Επίσης αν η εφαρμογή σας είναι ανοικτού κώδικα, με την δυνατότητα της φορητότητας είναι πιθανότερο περισσότεροι χρήστες να την χρησιμοποιήσουν.

Ταχύτερη ανάπτυξη

Επειδή τα Frameworks έχουν μεγάλες συλλογές από βιβλιοθήκες, πολλές από τις εργασίες που θα κάνατε είναι ήδη έτοιμες. Για παράδειγμα δεν χρειάζεται να γράψετε κάποια κλάση για να συνδεθείτε ή να διαχειριστείτε τις βάσεις δεδομένων σας, να γράψετε κλάσεις για τη διαχείριση των χρηστών σας κ.α.

Ασφάλεια της εφαρμογής

Τα χαρακτηριστικά ασφαλείας όπως είναι η πιστοποίηση χρηστών και η διαχείριση των δικαιωμάτων τους διαχειρίζονται από το Framework. Οι εγγραφές στη βάση δεδομένων είναι ασφαλείς, χωρίς SQL Injections και άλλα συναφή και άλλα.

Υποστήριξη από την κοινότητα

Τα frameworks υποστηρίζονται από κοινότητες, κανάλια IRC και άλλα. Αν αντιμετωπίζετε κάποιο πρόβλημα με το Framework, τότε μπορείτε να απευθυνθείτε άμεσα στην κοινότητα και να λάβετε βοήθεια. Επίσης μπορεί το ίδιο πρόβλημα που αντιμετωπίζεται εσείς να το είχε και κάποιος άλλος στο παρελθόν και να βρείτε τη λύση στο πρόβλημα σας χωρίς καν να ρωτήσετε.

Επεκτάσεις και μονάδες

Κάποια από τα μέλη που συμμετέχουν στις κοινότητες υποστήριξης δημοσιεύουν δωρεάν επεκτάσεις για το framework και μονάδες που μπορείτε να κατεβάσετε και να χρησιμοποιήσετε. Τέτοιες επεκτάσεις μπορεί να σας παρέχουν διασύνδεση με άλλες εφαρμογές μέσω κάποιου API κ.λ.π.

Χρήση καλών μοντέλων προγραμματισμού

Τα περισσότερα Frameworks σας υποχρεώνουν να ακολουθήσετε το μοντέλο προγραμματισμού Model View Controller (MVC). Αυτό σας επιτρέπει να γνωρίζεται πως θα δομηθεί ο κώδικας σας πριν ακόμα αρχίσετε να γράφετε, κάνοντας έτσι το τελικό προϊόν ποιο ποιοτικό.

Ευκολία στον κώδικα

Τα Frameworks είναι πολύ καλά τεκμηριωμένα και δοκιμασμένα. Αν κάποια στιγμή στο μέλλον χρειαστεί να έρθει ένας νέος προγραμματιστής στην ομάδα σας, ή αν πουλήσετε το έργο σας, ο νέος developer θα πρέπει να διαβάσει μόνο την τεκμηρίωση του Framework, και από εκεί και πέρα να κατανοήσει όλη σας την εφαρμογή. Στην περίπτωση που δεν είχατε χρησιμοποιήσει κάποιο Framework, τότε θα έπρεπε να καταναλώσει πολύ χρόνο και χρήμα ο νέος developer για να εκπαιδευτεί στο νέο σύστημα.

Ποιο Framework πρέπει να χρησιμοποιήσω;

Ο κάθε ένας έχει τη δική του γνώμη για το ποιο είναι το καλύτερο Framework. Κατά τη γνώμη μου είναι καλύτερο να δείτε όλα τα Frameworks και τα χαρακτηριστικά τους και τον τρόπο που δομούν τις εφαρμογές. Αν έχετε κάποια προηγούμενη εμπειρία στην Ruby On Rails, τότε ίσως θελήσετε να δείτε το CakePHP ή το Trax. Και τα δυο διαθέτουν υλοποίηση των ActiveRecord και είναι δομημένα όπως και το Rails. QPHP θα είναι ποιο εύκολο για αυτούς που έχουν εμπειρία στην ASP.NET, ενώ το Symfony2 είναι καλύτερο για όσους έχουν εμπειρία στην Java. Επίσης βεβαιωθείτε πως έχετε ρίξει μια ματιά και στα Kohana, Code Igniter, Yii, Lithium, Fuel, Alloy και το Akelos πριν επιλέξετε ποιο σας ταιριάζει καλύτερα.