Zend Framework 2 : Dependency Injection

2,378 views

Published on

Zend Framework 2 : Dependency Injection

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,378
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
53
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Zend Framework 2 : Dependency Injection

  1. 1. ZEND  FRAMEWORK  2  DEPENDENCY  INJECTION      h#p://slideshare.net/samsonasik  
  2. 2. Abdul  Malik  Ikhsan  a.k.a  samsonasik  ~  Zend  Framework  specialist  ~  Codeigniter  Mentor  On  twi#er  @samsonasik  Blog  h#p://samsonasik.wordpress.com  
  3. 3. Apa  sih  “DI”  itu  ?  
  4. 4. «  Dependency  InjecGon  is  where   components  are  given  their   dependencies  through  their  constructors,  methods,  or  directly   into  fields.  »    h#p://www.picocontainer.org/injecGon.html     h#p://www.slideshare.net/fabpot/dependency-­‐injecGon  
  5. 5. -­‐  DEPENDENCY  INJECTION  TERJADI  KETIKA  KOMPONEN  SOFTWARE  (  DALAM  HAL  INI,  KELAS  )  DEPENDENSINYA  DIBERIKAN  MELALUI  KONSTRUKTOR  MEREKA,  METHOD,  ATAU  LANGSUNG  KE  FIELDS  
  6. 6. =>  PASSING  ATAU  SETTING  DEPENDENCY  KE  DALAM  KOMPONEN  SOFTWARE  =>  JIKA  SEBUAH  KELAS  TIDAK  DAPAT  MELAKUKAN  PEKERJAANNYA  TANPA  DEPENDENCY,  MAKA  TERJADILAH  DEPENDENCY  INJECTION  
  7. 7. -­‐  CONSTRUCTOR  INJECTION  -­‐  SETTER  INJECTION  -­‐  INTERFACE  INJECTION  
  8. 8. CONSTRUCTOR  INJECTION  class  Kalimat  {          protected  $filterstring;          public  funcGon  __construct(FilterString  $filterstring  )            {                  $this-­‐>filterstring  =  $filterstring  ;            }    }    
  9. 9. SETTER  INJECTION  class  Kalimat  {          protected  $filterstring;          public  funcGon  setFilterString(FilterString  $filterstring  )            {                  $this-­‐>filterstring  =  $filterstring  ;            }    }    
  10. 10. INTERFACE  INJECTION  interface  Kalimat  {          public  funcGon  setFilter(FilterString    $filterstring);  }    
  11. 11. 2  KELAS  (  SAMPLE  )….  
  12. 12. <?php  class  FilterString  {          protected  $str;          public  funcGon  __construct($str)          {                  $this-­‐>str  =  ucfirst(  str_replace("  ","_",  $str)  );            }          public  funcGon  get()          {                  return  $this-­‐>str;            }  }  
  13. 13. <?php  class  Kalimat  {          protected  $filterstring;          public  funcGon  __construct(FilterString  $filterstring)          {                  $this-­‐>filterstring  =  $filterstring;          }          public  funcGon  out()          {                  echo  ouGng  ....  -­‐>  ;                  echo  $this-­‐>filterstring-­‐>get();          }  }  
  14. 14. TANPA  ZENDDI  <?php  $filter  =  new  FilterString(saya  sedang  membaca);  $kalimat  =  new  Kalimat($filter);  $kalimat-­‐>out();  
  15. 15. KITA  BUTUH  CONTAINER  !!!  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  /*  MENYIMPAN  OBJECT  DEFINITION  DAN  ENVIRONMENT,  MENG-­‐HANDLE  PENCIPTAAN  OBJECT  */  
  16. 16. ZEND  FRAMEWORK  MEMPUNYAI  (  DEPENDENCY  INJECTION  COMPONENT  )  
  17. 17. <?php  $di  =  new  ZendDiDi;  $di-­‐>instanceManager()                -­‐>setParameters(FilterString,  array(                                str  =>  saya  sedang  membaca’  ));  $kalimat    =  $di-­‐>get(Kalimat);  //contains  FilterString  !  $kalimat-­‐>out();  
  18. 18. MENGGUNAKAN  SETTER  ???  
  19. 19. ……………  public  funcGon  setFilterString(FilterString  $filterstring)  {          $this-­‐>filterstring  =  $filterstring;  }  
  20. 20. $di  =  new  ZendDiDi();  $di-­‐>configure(new  ZendDiConfiguraGon(array(          definiGon  =>  array(                  class  =>  array(                          Kalimat  =>  array(                                  setFilterString  =>  array(required  =>  true)                          )                  )          )  )));  $kalimat  =  $di-­‐>get(Kalimat,      array(  str=>saya  sedang  membaca  )  );  $kalimat-­‐>out();  
  21. 21. TERIMA  KASIH  ;)  
  22. 22. Referensi  :  •  h#p://www.picocontainer.org/injecGon.html    •  h#p://www.slideshare.net/fabpot/dependency-­‐ injecGon  •  h#p://mwop.net/slides/2011-­‐10-­‐18-­‐Zf2-­‐Overview/ Zf2Overview.html#slide15  •  h#p://akrabat.com/zend-­‐framework-­‐2/an-­‐ introducGon-­‐to-­‐zenddi/  Foto  :    •  h#p://www.as3dp.com/wp-­‐content/uploads/ 2010/10/dependencyInjecGon.png  

×