Zend\Di impressioni – ZF2

Written by on gennaio 8, 2012 in Applicazioni, PHP, Tests - No comments

Il panorama Zend è in completo cambiamento. La recente uscita della beta2 (seconda di un ciclo di quattro beta) del framework di seconda generazione marchiato Zend ha posto le basi per iniziare a muovere i primi passi nelle nuove implementazioni e funzionalità disponibili, in particolare il DiC (Dependency Injection Containers).

Il componente è molto flessibile e configurabile, questo lo rende ottimo per l’inziezione delle dipendenze. In particolare il componente è diviso in diverse sezioni e può essere configurato in diverse modalità per potergli far dirigere l’iniezione delle dipendenze.

Il metodo più semplice e veloce è utilizzare la definizione forte dei tipi in modo che autonomamente possa capire quali oggetti andare ad iniettare per costruire tutte le dipendenze. Le parti non fortemente dichiarate, come stringhe e tipi  base (scalari), possono essere dichiarate nel configuratore e ottenere un risultato semplice e veloce.

Possiamo vedere un esempio molto chiaro proposto da Ralph Schindler (puoi controllare l’originale sull’account github di Ralph Schindler)

<?php

namespace MovieApp {

    class Lister implements FinderAwareInterface {
        public $finder;
        public function setFinder(Finder $finder){
            $this->finder = $finder;
        }
    }

    class Finder {
        public function findAllByName($name) {}
    }

    interface FinderAwareInterface {
        public function setFinder(Finder $finder);
    }
}

namespace {
    // bootstrap
    // ... start autoloader

    $di = new Zend\Di\Di;
    $lister = $di->get('MovieApp\Lister');

    // expression to test
    $works = ($lister->finder instanceof MovieApp\Finder);

    // display result
    echo (($works) ? 'It works!' : 'It DOES NOT work!');

}

L’applicazione esegue la “get” ed è compito del DiC andare a costruire tutte le dipendenze e restituire l’oggetto correttamente inizializzato.

About the author

Sono, Walter Dal Mut, un consulente che opera nel mondo dell'IT come freelance in Torino e provincia. Il mio mondo informatico/elettronico ruota intorno a quatto tecnologie essenziali che sono Zend Framework per lo sviluppo di Applicazioni Web, Eclipse Framework per lo sviluppo di Applicazioni Desktop, Android Platform e iOS Apple per lo sviluppo di applicazioni mobile.

Comments are closed.

Categorie