Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
7th PHPIndonesia Surabaya Meetup
Taufan Adhitya - Lead Dev @Mataharilabs
28 September 2013 @UPN Surabaya
Explained
Apa yang akan kita diskusikan :
● Kenapa menggunakan Composer?
● Apa itu Composer?
Kenapa Menggunakan Composer?
Contoh “native” php
PHP secara “native” punya bakat
menghasilkan “spaghetti code”
Masalah utama pada “spaghetti
code”
● Tidak ada modularitas.
● Kurangnya peng-organisasi-an kode
● Tidak ada pembagian ant...
2005-2006 : Dimulainya era “PHP
Framework”
Keuntungan menggunakan PHP
Framework
● Organisasi kode.
● Mempromosikan standard.
● Mempromosikan reusabilitas kode.
Pilihan kita ketika perlu fitur
tambahan yang tidak disediakan
Framework
● Mengimport external library
● Menulis library s...
Setiap Framework punya repository
khusus untuk “package”
● Symfony -> Bundle
● CodeIgniter -> Spark
● Zend Framework -> Mo...
Di PHP, tidak mudah
mengintegrasikan library satu
dengan yang lain
Apa Itu Composer?
Perbandingan arsitektur “package”
antar bahasa pemrograman
● Perl -> CPAN
● Ruby -> Gem
● Java -> Maven
● Python -> pip
● ...
Composer adalah Depedency
Manager untuk PHP
● Composer bisa menginstall package yang
dibutuhkan
● Composer bisa mengupdate...
Composer menggunakan SAT solver
● Semua package pertama-tama di kumpulkan
dalam “pool”
● Depedency antar package diterjema...
Depedency resolusi dengan SAT
solver
● Install B (versi 1 atau 2) -> (B1|B2)
● A require B (versi 1 atau 2) -> (-A|B1|B2)
...
Menggunakan composer.json untuk
mendefinisikan depedency
Composer-isasi project :)
Beberapa terminologi depedency
dalam Composer
● Require
● Require-dev
● Provide
● Replace
● Conflict
● Recommend
● Suggest
Composer memiliki Sentral
Repository
Composer juga support
Decentralized/Private Repository
(Satis)
Depending.in : Me-monitoring
composer depedency
Peran lain Composer
● Memungkinkan kita me-reproduksi
“environment” aplikasi yang sama di semua
mesin yang kita pakai
● Me...
composer.lock = Tidak ada lagi
coding drama!
● Semua developer dalam team bekerja
dengan versi package yang sama.
● Semua ...
Composer Hook = Automate more!
● pre-install-cmd
● post-install-cmd
● pre-update-cmd
● post-update-cmd
● post-create-proje...
Statistik seputar Composer
● 7 release (sejak 2011)
● 244 contributor
● 16.586 packages yang tersedia di packagist
● 55.07...
Reuse! Automate! http:
//getcomposer.org!
Question Time!
Nächste SlideShare
Wird geladen in …5
×

Composer Explained [PHP Indonesia Meetup]

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen
  • Als Erste(r) kommentieren

Composer Explained [PHP Indonesia Meetup]

  1. 1. 7th PHPIndonesia Surabaya Meetup Taufan Adhitya - Lead Dev @Mataharilabs 28 September 2013 @UPN Surabaya Explained
  2. 2. Apa yang akan kita diskusikan : ● Kenapa menggunakan Composer? ● Apa itu Composer?
  3. 3. Kenapa Menggunakan Composer?
  4. 4. Contoh “native” php
  5. 5. PHP secara “native” punya bakat menghasilkan “spaghetti code”
  6. 6. Masalah utama pada “spaghetti code” ● Tidak ada modularitas. ● Kurangnya peng-organisasi-an kode ● Tidak ada pembagian antara fungsi dan tujuan. ● Tidak memungkinan penggunaan ulang (mengandalkan Copy-Pasta!). ● Sulit untuk di-verifikasi
  7. 7. 2005-2006 : Dimulainya era “PHP Framework”
  8. 8. Keuntungan menggunakan PHP Framework ● Organisasi kode. ● Mempromosikan standard. ● Mempromosikan reusabilitas kode.
  9. 9. Pilihan kita ketika perlu fitur tambahan yang tidak disediakan Framework ● Mengimport external library ● Menulis library sendiri
  10. 10. Setiap Framework punya repository khusus untuk “package” ● Symfony -> Bundle ● CodeIgniter -> Spark ● Zend Framework -> Modules ● CakePHP -> Bakery Penyedia external library lainnya : ● PEAR ● PHPClasses?
  11. 11. Di PHP, tidak mudah mengintegrasikan library satu dengan yang lain
  12. 12. Apa Itu Composer?
  13. 13. Perbandingan arsitektur “package” antar bahasa pemrograman ● Perl -> CPAN ● Ruby -> Gem ● Java -> Maven ● Python -> pip ● C#(.net) -> NuGet ● Node.JS-> npm ● PHP -> Composer
  14. 14. Composer adalah Depedency Manager untuk PHP ● Composer bisa menginstall package yang dibutuhkan ● Composer bisa mengupdate package yang memiliki release terbaru ● Composer bisa menghapus package yang sudah tidak diperlukan
  15. 15. Composer menggunakan SAT solver ● Semua package pertama-tama di kumpulkan dalam “pool” ● Depedency antar package diterjemahkan menjadi boolean.
  16. 16. Depedency resolusi dengan SAT solver ● Install B (versi 1 atau 2) -> (B1|B2) ● A require B (versi 1 atau 2) -> (-A|B1|B2) ● A conflict B (versi 1 atau 2)-> (-A|-B1), (-A|-B2) ● C dan D provide E -> (-E|C|D) ● B2 update B1 -> (-B1|-B2) Contoh kasus : (-A|B1|B2) (-B2|C) (A) (-B1|-B2) (-A|-C) SAT solver akan mengevaluasi boolean untuk A, B1, B2 dan C sehingga semua kondisi menjadi TRUE. Jika nilai akhirnya TRUE, dia akan diinstall.
  17. 17. Menggunakan composer.json untuk mendefinisikan depedency
  18. 18. Composer-isasi project :)
  19. 19. Beberapa terminologi depedency dalam Composer ● Require ● Require-dev ● Provide ● Replace ● Conflict ● Recommend ● Suggest
  20. 20. Composer memiliki Sentral Repository
  21. 21. Composer juga support Decentralized/Private Repository (Satis)
  22. 22. Depending.in : Me-monitoring composer depedency
  23. 23. Peran lain Composer ● Memungkinkan kita me-reproduksi “environment” aplikasi yang sama di semua mesin yang kita pakai ● Memungkinkan kita melakukan automatisasi dalam lifecycle development
  24. 24. composer.lock = Tidak ada lagi coding drama! ● Semua developer dalam team bekerja dengan versi package yang sama. ● Semua mesin (target deploy) menggunakan versi package yang sama. ● Tidak ada developer yang menggunakan versi yang belum kita verifikasi
  25. 25. Composer Hook = Automate more! ● pre-install-cmd ● post-install-cmd ● pre-update-cmd ● post-update-cmd ● post-create-project-cmd ● … dan banyak lagi
  26. 26. Statistik seputar Composer ● 7 release (sejak 2011) ● 244 contributor ● 16.586 packages yang tersedia di packagist ● 55.071 versi yang tersedia di packagist ● 68.718 940 total instalasi package di packagist
  27. 27. Reuse! Automate! http: //getcomposer.org! Question Time!

×