Γρήγορη symfony DI Έναρξη (Injection εξάρτηση) Tutorial
Τι είναι η εξάρτηση Injection (DI);
Ένεση Εξάρτηση είναι μια τεχνική που επιτρέπει την χαλαρά συνδεδεμένες αντικειμένων στο εσωτερικό μιας εφαρμογής λογισμικού. Σε γενικές γραμμές, εάν ένα αντικείμενο απαιτεί την πρόσβαση στις λειτουργίες του άλλου, θα ήταν αρχικοποιείται στο εσωτερικό που οδηγεί σε στενά συνδεδεμένες συστήματα. Με την εφαρμογή ένεση εξάρτηση έχουμε ένεση από τα αντικείμενα που διατίθενται προς χρήση (μερικές φορές αναφέρεται επίσης αντιστροφή του ελέγχου - IOC). Πάρτε το ακόλουθο παράδειγμα:
<? Php class DecisionMaker { δημόσια makeDecision λειτουργία (array $ παραμέτρων) { / / Ανάγκη τον προσαρμογέα βάσης δεδομένων $ Dp = νέα DecisionParameters ()? $ ParameterScore = $ DP-> getScore ($ παράμετροι)? / * ... Κάποιοι πιο λογική απόφαση ... * / επιστροφή ($ parameterScore> 50)? } }
Αυτό το κομμάτι του κώδικα λέγεται ότι είναι στενά συνδεδεμένες με το αντικείμενο DecisionParameters. Ξαναγράφοντας το παραπάνω σε ένα χαλαρά συνδεδεμένες τρόπο θα είχαμε κάτι σαν ....
<? Php class DecisionMaker { ιδιωτική $ _dp? δημόσια λειτουργία __construct ($ DP) { $ This-> _dp = $ dp? } δημόσια makeDecision λειτουργία (array $ παραμέτρων) { $ ParameterScore = $ this-> _dp-> getScore ($ παράμετροι)? / * ... Κάποιοι πιο λογική απόφαση ... * / επιστροφή ($ parameterScore> 50)? } }
Παρόλο που κερδίζει τα οφέλη της χαλαρά συνδεδεμένες κωδικό είμαστε ακόμη πιο περίπλοκη, έτσι ώστε κάθε φορά που ένα αντικείμενο είναι instantiated πρέπει επίσης να υπόσταση σε εξαρτήσεις του και να περάσει αυτές σε πάρα πολύ. Για παράδειγμα, το εξής:
$ Επιλογή = νέα DecisionMaker ()? echo $ επιλογή-> makeDecision (array ('προσπάθεια' => 'χαμηλά', 'επιστροφή' => 'υψηλά'))?
τώρα γίνεται:
$ Dp = νέα DecisionParameters ()? $ Επιλογή = νέα DecisionMaker ($ DP)? echo $ επιλογή-> makeDecision (array ('προσπάθεια' => 'χαμηλά', 'επιστροφή' => 'υψηλά'))?
Η κατάσταση αυτή γίνεται όλο και πιο επώδυνη, όπως τον αριθμό των εξαρτήσεων για μια τάξη είναι αυξημένη, και τι θα γίνει αν οι εξαρτήσεις ίδιοι οι εξαρτήσεις; Αυτό μπορεί πολύ γρήγορα γίνει εφιάλτης διοίκηση αντικείμενο! Εισάγετε δοχεία ένεση εξάρτησης (ή πλαίσια) ...
Συνέχεια ανάγνωση "Quick symfony Έναρξη DI (Injection εξάρτηση) Tutorial '»
















































