SlideShare a Scribd company logo
Mari Memahami PSR 
oleh 
Mizan Rizqia
Latar Belakang 
● PHP bahasa yg berkembang 
● PHP tidak standar 
● PHP tidak ada spesifikasi yg nyata
Latar Belakang 
PHP 5.4 
● OOP Lengkap 
● banyak fungsi baru
Bagaimana dgn Framework?
Masalah 
● Banyak PHP framework 
● Haruskah belajar semua PHP framework? 
● Apa framework yang bagus? 
● Apakah harus terpaku 1 PHP framework?
PHP-FIG 
PHP Framework Interop Group
Misi 
PHP-FIG 
Menemukan cara untuk membuat framework-framework 
PHP mampu bekerja bersama-sama
Anggota PHP-FIG 
● Agavi 
● AWS SDK for PHP (Amazon 
Web Services) 
● Apache log4php 
● Assetic and Buzz 
● Aura Project and Solar 
Framework 
● CakePHP 
● Composer and Packagist 
● Contao Open Source CMS 
● Doctrine 
● Drupal 
● eZ Publish 
● TYPO3 Flow 
● Jackalope 
● Joomla 
● Laravel 
● Lithium 
● PEAR 
● phpBB 
● phpDocumentor 
● PPI Framework 
● Propel 
● PyroCMS 
● SabreDAV 
● Sculpin 
● SugarCRM 
● Symfony2 
● Yii framework 
● Zend Framework 2 
● Zikula 
● lainnya….
Hasil PHP-FIG 
PHP Standards Recommendation 
(PSR)
PSR-0 
Autoloading Standard
PSR-0 Autoloading Standard 
Bagaimana semua framework dapat bekerja sama? 
● memiliki struktur direktori umum 
● memilik standar autoloading umum. 
JADI 
Semua framework harus dibangun dengan menggunakan 
konvensi autoloading yang sama.
PSR-0 Peraturan 
1. Struktur Fully-qualified Namespace dan Class harus mengikuti struktur 
<Vendor Name> (<Namespace>) * <Class Name> 
2. Setiap Namespace harus memiliki top-level namespace (“Nama Vendor”). 
3. Setiap Namespace dapat memiliki banyak sub-namespace sesuai 
kebutuhan. 
4. Setiap separator namespace diubah menjadi DIRECTORY_SEPARATOR 
ketika loading dari sistem file. 
5. Setiap karakter _ (Underscore) dalam CLASS NAME diubah menjadi 
DIRECTORY_SEPARATOR. Karakter _ (Underscore) tidak memiliki arti 
khusus dalam namespace. 
6. Fully-qualified Namespace dan Class berakhiran .php ketika loading dari 
sistem file. 
7. Urutan abjad dalam penamaan vendor, namespace, dan class merupakan 
kombinasi dari huruf kecil dan huruf besar.
PSR-0 Contoh 
● SymfonyCoreRequest => 
/path/to/project/lib/vendor/Symfony/Core/Request.php 
● ZendAcl => /path/to/project/lib/vendor/Zend/Acl.php 
● ZendMailMessage => 
/path/to/project/lib/vendor/Zend/Mail/Message.php
PSR-0 Contoh Implementasi 
● http://laravel.io/bin/yGE6D
PSR-1 
Basic Coding Standard
PSR-1 Basic Coding Standard 
Ini adalah tawaran PSR untuk standarisasi pengkodean 
PHP, dan idenya adalah jika semua pengembang 
menggunakan standar yang sama, maka akan mudah 
untuk memindahkan modul tanpa masalah.
PSR-1 Peraturan 
1. File HARUS menggunakan <?php dan <?= tags 
2. File HARUS menggunakan UTF-8 tanpa BOM untuk PHP Code. 
3. File SEBAIKNYA dapat mendeklarasikan simbol (classes, functions, 
constants, dll) atau yang menyebabkan efek samping (generate output, 
change .ini settings, dll) tapi HARUS TIDAK melakukan keduanya. 
4. Namespace dan Class HARUS mengikuti PSR-0. 
5. Nama Class HARUS dideklarasikan dalam StudlyCaps 
6. Constant kelas HARUS dinyatakan dalam huruf besar semua dengan 
pemisah underscore 
7. Nama Method HARUS dinyatakan dalam CamelCase
PSR-1 Files 
PHP Tags 
PHP code HARUS menggunakan 
<?php ?> atau short-echo <?= ?> 
Tidak boleh menggunakan variasi lainnya. 
Character Encoding 
Kode PHP HARUS menggunakan UTF-8 tanpa BOM
PSR-1 Files 
Side Effects 
Contoh penggunaan deklarasi dan side effects bersamaan 
yang harus dihindari 
http://laravel.io/bin/YydOn 
Contoh penggunaan deklarasi tanpa side effects 
http://laravel.io/bin/mGMlj
PSR-1 Namespace & Class Name 
● Namespace & Class Name HARUS mengikuti PSR-0 
● Class Name HARUS StudlyCaps 
Contoh Namespace dan Class Name 
http://laravel.io/bin/bEBGX
PSR-1 Class Constant, Properties, Methods 
Constant 
Class Constant: upper case with underscore seperator 
http://laravel.io/bin/Xy7Dj 
Properties 
Penamaan SEHARUSNYA konsisten sesuai scope. Contoh scope: vendor-level, 
package-level, class-level, or method-level. 
Methods 
Method names HARUS camelCase()
PSR-2 
Coding Style Guide
PSR-2 Coding Style Guide 
PSR ini penambahan dari PSR-1, dan 
seperangkat aturan mengenai bagaimana 
memformat kode PHP.
PSR-2 Peraturan 
1. Kode HARUS berdasarkan PSR-1. 
2. Kode harus menggunakan 4 spasi untuk indentasi, bukan tab. 
3. TIDAK HARUS ada batas pada panjang baris; batas soft HARUS 120 
karakter, setiap baris SEHARUSNYA 80 karakter atau kurang. 
4. HARUS ada satu baris kosong setelah deklarasi namespace, dan HARUS 
ada satu baris kosong setelah blok use deklarasi. 
5. Pembuka Brace ( Kurung kurawal ) untuk Class HARUS pada baris 
berikutnya, dan menutup Brace HARUS ada pada baris berikutnya setelah 
body class. 
6. Membuka Brace untuk method HARUS pada baris berikutnya, dan 
menutup kawat gigi HARUS pada baris berikutnya setelah body method.
PSR-2 Peraturan (lanjutan) 
7. Visibility HARUS dideklarasikan pada semua properti dan metode; abstract 
dan final harus dideklarasikan sebelum Visibility, static HARUS 
menyatakan setelah Visibility. 
8. Control struktur keyword HARUS memiliki satu spasi setelahnya; namun 
pada pemanggilan method dan function TIDAK HARUS. 
9. Membuka Brace untuk struktur Control HARUS pada baris yang sama, 
dan menutup kawat gigi HARUS pergi pada baris berikutnya setelah body 
control. 
10. Kurung buka untuk struktur kontrol TIDAK HARUS memiliki spasi setelah 
mereka, dan menutup kurung untuk struktur kontrol TIDAK HARUS 
memiliki spasi sebelumnya.
PSR-2 Contoh Implementasi 
http://laravel.io/bin/Mk5dJ
PSR-2 General 
Basic Coding Standard 
● Code HARUS mengikuti semua aturan PSR-1 
Files 
● Semua PHP files HARUS menggunakan Unix LF (linefeed) line ending 
● Semua PHP files HARUS berakhir dengan single blank line 
Lines 
● HARUS TIDAK terlalu panjang barisnya. 
● soft limit HARUS 120 karakter 
● SEBAIKNYA 80 karakter
PSR-2 General 
Indenting 
● Code HARUS menggunakan 4 space untuk indenting 
● Code HARUS TIDAK menggunaan tabs untuk indenting 
N.b.: Using only spaces, and not mixing spaces with tabs, helps to avoid 
problems with diffs, patches, history, and annotations. The use of spaces 
also makes it easy to insert fine-grained sub-indentation for inter-line 
alignment. 
Keywords and True/False/Null 
● PHP Keyword HARUS lower case 
● PHP constants true, false, null HARUS lower case
PSR-2 Namespace & Declarations 
● Setelah deklarasi namespace HARUS ada 1 baris kosong. 
● Semua deklarasi use HARUS berada di bawah deklarasi namespace 
● Deklarasi use HARUS untuk 1 keyword. 
● Setelah deklarasi blok use HARUS ada 1 baris kosong. 
Contoh 
http://laravel.io/bin/1y4ne
PSR-2 Classes, Properties, Methods 
Extends & Implements 
● keyword extends dan implements HARUS 
dideklarasikan dalam 1 baris 
Contoh 
http://laravel.io/bin/BLoka 
● Beberapa implements BOLEH dipisah menjadi 
beberapa baris, dimana setiap baris di-indent sekali. 
Contoh 
http://laravel.io/bin/2Wknr
PSR-2 Classes, Properties, Methods 
Properties 
● penglihatan/visibility HARUS dideklarasikan pada semua property 
● keyword var, HARUS TIDAK digunakan untuk mendeklarasikan property 
● HARUS TIDAK lebih dari 1 property per statement. 
● SEBAIKNYA TIDAK diberi awalan single underscore ( _ ) untuk 
mengindikasikan protected atau private visibility 
Contoh 
http://laravel.io/bin/VPzrn
PSR-2 Classes, Properties, Methods 
Methods 
● penglihatan/visibility HARUS dideklarasikan pada semua method 
● Nama Method SEBAIKNYA TIDAK diberi awalan single underscore ( _ ) 
untuk mengindikasikan protected atau private visibility 
● Nama Method HARUS TIDAK dideklarasikan dengan spasi setelah nama 
method. 
● Kurung buka dan kurung tutup HARUS berada dalam baris yang sama 
dengan nama method. 
● HARUS TIDAK boleh ada spasi setelah opening parenthesis dan sebelum 
closing parenthesis. 
● Contoh: http://laravel.io/bin/LkmGe
PSR-2 Classes, Properties, Methods 
Method Arguments 
● HARUS TIDAK ada space sebelum koma, dan HARUS ada space seteleh 
setiap koma. 
● Method arguments dengan nilai default HARUS berada dibelakang daftar 
argumen. 
Contoh: http://laravel.io/bin/wJnYx 
● Daftar argumen BOLEH dipisah menjadi beberapa baris, dimana setiap 
baris diberi 1 indent. 
Contoh: http://laravel.io/bin/qQElo
PSR-2 Classes, Properties, Methods 
abstract, final, and static 
● Deklarasi abstract dan final HARUS berada sebelum deklarasi 
visibility. 
● Deklarasi static HARUS berada setelah deklarasi visibility. 
● Contoh: http://laravel.io/bin/0e4yw
PSR-2 Classes, Properties, Methods 
Method & Function 
● HARUS TIDAK ada space antara nama method/function dengan kurung 
buka dan HARUS TIDAK ada space setelah kurung buka 
● HARUS TIDAK ada space sebelum kurung tutup dan HARUS TIDAK ada 
space setelah kurung tutup. 
Contoh: http://laravel.io/bin/7we1z 
● Daftar argumen BOLEH dipotong menjadi beberapa baris, dimana setiap 
baris diberi 1 indent. 
Contoh: http://laravel.io/bin/jQyP7
PSR-2 Control Structures 
● HARUS ada 1 spasi setelah control structures keyword 
● HARUS TIDAK ada spasi setelah opening parenthesis 
● HARUS TIDAK ada spasi sebelum closing parenthesis 
● HARUS ada spasi antara closing parenthesis dengan 
opening brace 
● Structured body HARUS ada 1 indent 
● Closing brace HARUS berada pada baris selanjutnya 
setelah body.
PSR-2 Control Structures 
● if, elseif, else 
contoh: http://laravel.io/bin/8Kq37 
● switch, case 
contoh: http://laravel.io/bin/aNB5P 
● while, do while 
contoh: http://laravel.io/bin/okY2w 
● for 
contoh: http://laravel.io/bin/vB4mV 
● foreach 
contoh: http://laravel.io/bin/yGEYR 
● try, catch 
contoh: http://laravel.io/bin/52YWn
PSR-2 Closures 
● Contoh deklarasi closure 
http://laravel.io/bin/kWxk0 
● Contoh deklarasi daftar argumen pada closure 
http://laravel.io/bin/l5vxV 
● Contoh deklarasi closure pada function or method call 
http://laravel.io/bin/W4Q95
> phpcs --standard=PSR2 *.php 
https://github.com/squizlabs/PHP_CodeSniffer
PSR-3 
Logger Interface
PSR-3 Logger Interface 
Peraturan PSR-3 untuk logging, dan secara khusus 
memaparkan sembilan metode untuk tata cara menulis log 
pada library framework. Hal ini membuat pemangkasan 
universal untuk semua kerangka, yang berarti akan 
mempermudah ketika ingin menerapkan logging dalam 
framework yang sebelumnya tidak mempunyai fungsi 
tersebut.
PSR-3 Cara 
1. LoggerInterface memperlihatkan delapan metode untuk menulis log ke 
dalam RFC 5424 (debug, info, notice, warning, error, critical, alert, 
emergency). 
2. Metode kesembilan (log), menerima tingkat log sebagai argumen pertama. 
Pemanggilan metode ini dengan salah satu dari tingkat konstanta log 
HARUS memiliki hasil yang sama seperti pemanggilan metode tingkat-spesifik. 
Pemanggilan metode ini dengan tidak disertai konstanta level oleh 
HARUS mengeluarkan PsrLogInvalidArgumentException jika 
pelaksanaannya tidak berhasil. Pengguna SEBAIKNYA TIDAK 
menggunakan tingkat log kustom tanpa mengetahui pasti cara 
pengimplementasiannya.
https://github.com/php-fig/log
{ 
“require”: { 
“psr/log”: “dev-master” 
} 
}
Monolog
PSR-4 
Improved Autoloading
PSR-4 Improved Autoloading 
Sebagai extention untuk PSR-0, PSR-4 
menambahkan metode peningkatan 
autoloading, dan juga menjelaskan persyaratan 
path file dari autoloader interoperable.
PSR-0 Way
PSR-4 Way
Referensi 
● http://idtut.com/2014/apa-itu-php-fig-dan-apa-yang-mereka-lakukan/ 
● http://www.php-fig.org/ 
● https://github.com/php-fig/fig-standards 
● http://www.sitepoint.com/autoloading-and-the-psr-0-standard/ 
● http://www.slideshare.net/arambaghdasaryan/coding-standards-psr1-psr2 
● http://www.slideshare.net/MinskPHPUserGroup/psr-36450518 
● http://www.slideshare.net/loalf/fig-and-psr
Matur Sembah Nuwun 
Thank you 
Mizan Rizqia 
baobaz@tlab.co.id 
081806406692 
@mizanrizqia 
/mizanr

More Related Content

What's hot

모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개
Hyogi Jung
 
Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication
Mediacurrent
 
Biometric Authentication.pdf
Biometric Authentication.pdfBiometric Authentication.pdf
Biometric Authentication.pdf
Narudom Roongsiriwong, CISSP
 
Restful api design
Restful api designRestful api design
Restful api design
Mizan Riqzia
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
phelypploch
 
ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...
ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...
ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...
Sylvia Dianita
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
Daniel Brandão
 
Solve cross cutting concerns with aspect oriented programming (aop)
Solve cross cutting concerns with aspect oriented programming (aop)Solve cross cutting concerns with aspect oriented programming (aop)
Solve cross cutting concerns with aspect oriented programming (aop)
Siva Prasad Rao Janapati
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Debby Ummul
 
03 enkapsulasi
03 enkapsulasi03 enkapsulasi
03 enkapsulasi
KuliahKita
 
Images, Deep Dive!
Images, Deep Dive!Images, Deep Dive!
Images, Deep Dive!
Jeferson Fernando Noronha
 
Contoh soal uts perancangan basis data
Contoh soal uts perancangan basis dataContoh soal uts perancangan basis data
Contoh soal uts perancangan basis data
Bina Sarana Informatika
 
Dive into SObjectizer 5.5. Introductory part
Dive into SObjectizer 5.5. Introductory partDive into SObjectizer 5.5. Introductory part
Dive into SObjectizer 5.5. Introductory part
Yauheni Akhotnikau
 
Lista Duplamente Encadeada
Lista Duplamente EncadeadaLista Duplamente Encadeada
Lista Duplamente Encadeada
Matheus Santos Almeida
 
Pengolahan Database Dengan MySQL
Pengolahan Database Dengan MySQLPengolahan Database Dengan MySQL
Pengolahan Database Dengan MySQL
I Putu Hariyadi
 
Cara konfigurasi access point tp - link
Cara konfigurasi access point tp - linkCara konfigurasi access point tp - link
Cara konfigurasi access point tp - link
Abid Abditawwab
 
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compilerModul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Beny Abd
 
oVirt installation guide_v4.3
oVirt installation guide_v4.3oVirt installation guide_v4.3
oVirt installation guide_v4.3
CheolHee Han
 

What's hot (20)

모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개
 
Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication
 
Biometric Authentication.pdf
Biometric Authentication.pdfBiometric Authentication.pdf
Biometric Authentication.pdf
 
Restful api design
Restful api designRestful api design
Restful api design
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...
ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...
ANALISIS DAN PERANCANGAN JARINGAN DUA GEDUNG EMPAT LANTAI MENGGUNAKAN TEKNIK ...
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
 
Solve cross cutting concerns with aspect oriented programming (aop)
Solve cross cutting concerns with aspect oriented programming (aop)Solve cross cutting concerns with aspect oriented programming (aop)
Solve cross cutting concerns with aspect oriented programming (aop)
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
03 enkapsulasi
03 enkapsulasi03 enkapsulasi
03 enkapsulasi
 
Images, Deep Dive!
Images, Deep Dive!Images, Deep Dive!
Images, Deep Dive!
 
Contoh soal uts perancangan basis data
Contoh soal uts perancangan basis dataContoh soal uts perancangan basis data
Contoh soal uts perancangan basis data
 
Presentasi perakitan komputer
Presentasi perakitan komputerPresentasi perakitan komputer
Presentasi perakitan komputer
 
Dive into SObjectizer 5.5. Introductory part
Dive into SObjectizer 5.5. Introductory partDive into SObjectizer 5.5. Introductory part
Dive into SObjectizer 5.5. Introductory part
 
Lista Duplamente Encadeada
Lista Duplamente EncadeadaLista Duplamente Encadeada
Lista Duplamente Encadeada
 
Pengolahan Database Dengan MySQL
Pengolahan Database Dengan MySQLPengolahan Database Dengan MySQL
Pengolahan Database Dengan MySQL
 
ppt mikrotik
ppt mikrotikppt mikrotik
ppt mikrotik
 
Cara konfigurasi access point tp - link
Cara konfigurasi access point tp - linkCara konfigurasi access point tp - link
Cara konfigurasi access point tp - link
 
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compilerModul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
 
oVirt installation guide_v4.3
oVirt installation guide_v4.3oVirt installation guide_v4.3
oVirt installation guide_v4.3
 

Viewers also liked

Inheritance and polymorphism
Inheritance and polymorphism   Inheritance and polymorphism
Introduction to OOP with PHP
Introduction to OOP with PHPIntroduction to OOP with PHP
Introduction to OOP with PHP
Michael Peacock
 
Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3
Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3
Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3
harisonmtd
 
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentUnderstanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Charles Knight
 
Tutorial dasar laravel
Tutorial dasar laravelTutorial dasar laravel
Tutorial dasar laravel
M Nurilman Baehaqi
 
Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)
Mizan Riqzia
 
PHP CODING STANDARDS
PHP CODING STANDARDSPHP CODING STANDARDS
PHP CODING STANDARDS
Asheesh Sharma
 
Scalable Reliable Secure REST
Scalable Reliable Secure RESTScalable Reliable Secure REST
Scalable Reliable Secure REST
guestb2ed5f
 
OOP Basic - PHP
OOP Basic - PHPOOP Basic - PHP
OOP Basic - PHP
Sulaeman .
 
Coding standards PSR-1 & PSR-2
Coding standards PSR-1 & PSR-2Coding standards PSR-1 & PSR-2
Coding standards PSR-1 & PSR-2
Aram Baghdasaryan
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-Presented
SlideShare
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
SlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
Kapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
Empowered Presentations
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
Jesse Desjardins - @jessedee
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
Oneupweb
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
Content Marketing Institute
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
SlideShare
 

Viewers also liked (20)

Inheritance and polymorphism
Inheritance and polymorphism   Inheritance and polymorphism
Inheritance and polymorphism
 
Introduction to OOP with PHP
Introduction to OOP with PHPIntroduction to OOP with PHP
Introduction to OOP with PHP
 
Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3
Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3
Laravel 5 Tutorial : Membuat Blog Sederhana dengan Laravel 5.3
 
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentUnderstanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
 
Tutorial dasar laravel
Tutorial dasar laravelTutorial dasar laravel
Tutorial dasar laravel
 
Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)
 
PHP CODING STANDARDS
PHP CODING STANDARDSPHP CODING STANDARDS
PHP CODING STANDARDS
 
Scalable Reliable Secure REST
Scalable Reliable Secure RESTScalable Reliable Secure REST
Scalable Reliable Secure REST
 
OOP Basic - PHP
OOP Basic - PHPOOP Basic - PHP
OOP Basic - PHP
 
Fungsi-Fungsi PHP
Fungsi-Fungsi PHPFungsi-Fungsi PHP
Fungsi-Fungsi PHP
 
Coding standards PSR-1 & PSR-2
Coding standards PSR-1 & PSR-2Coding standards PSR-1 & PSR-2
Coding standards PSR-1 & PSR-2
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-Presented
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 

Similar to Mari Memahami PSR (PHP Standards Recommendation)

PHP Tips & Trik Lanjutan: Clean Code dan Coding Standar
PHP Tips & Trik Lanjutan: Clean Code dan Coding StandarPHP Tips & Trik Lanjutan: Clean Code dan Coding Standar
PHP Tips & Trik Lanjutan: Clean Code dan Coding Standar
Medidu
 
3984793.ppt
3984793.ppt3984793.ppt
3984793.ppt
yulihappymarpaung1
 
Modul 4 php
Modul 4 phpModul 4 php
Modul 4 php
Yusi Aisyah
 
Pengantar Pemrograman WEB PHP
Pengantar Pemrograman WEB PHPPengantar Pemrograman WEB PHP
Pengantar Pemrograman WEB PHP
Deka M Wildan
 
Belajar php (pemula dasar)
Belajar php (pemula dasar)Belajar php (pemula dasar)
Belajar php (pemula dasar)
Andi Irawan
 
Tutorial dasar laravel
Tutorial dasar laravelTutorial dasar laravel
Tutorial dasar laravel
Untung D Saptoto
 
Tutorial dasar-laravel
Tutorial dasar-laravelTutorial dasar-laravel
Tutorial dasar-laravel
Dhicca Rama
 
Tutorial dasar laravel 4
Tutorial dasar laravel 4Tutorial dasar laravel 4
Tutorial dasar laravel 4
Teten Nugraha
 
Tutorial Penggunaan Laravel
Tutorial Penggunaan LaravelTutorial Penggunaan Laravel
Tutorial Penggunaan Laravel
Eka Rahmawati
 
Bpmogrman berorientasi fungsi
Bpmogrman berorientasi fungsiBpmogrman berorientasi fungsi
Bpmogrman berorientasi fungsi
Ar'ko Ar'ko
 
Laravel Dasar.pptx
Laravel Dasar.pptxLaravel Dasar.pptx
Laravel Dasar.pptx
ssuser71d74a
 
Laravel Dasar.pptx
Laravel Dasar.pptxLaravel Dasar.pptx
Laravel Dasar.pptx
Heru762601
 
Algoritma 02
Algoritma 02Algoritma 02
Algoritma 02
Tresya Fachlevie
 
Meeting 9 pemrograman shell - a
Meeting 9    pemrograman shell - a Meeting 9    pemrograman shell - a
Meeting 9 pemrograman shell - a
Syaiful Ahdan
 
Flowchart
FlowchartFlowchart
Flowchart
Denny Yahya
 
Build Your First Web App.pdf
Build Your First Web App.pdfBuild Your First Web App.pdf
Build Your First Web App.pdf
gdscuniversitassafin
 
PROGRESS DEV - Basic Laravel 5.3 #1
PROGRESS DEV - Basic Laravel 5.3 #1PROGRESS DEV - Basic Laravel 5.3 #1
PROGRESS DEV - Basic Laravel 5.3 #1
UKM PROGRESS
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrograman
fadlinurdiansyah
 
Optimize php application in high traffic environment
Optimize php application in high traffic environmentOptimize php application in high traffic environment
Optimize php application in high traffic environment
k4ndar
 

Similar to Mari Memahami PSR (PHP Standards Recommendation) (20)

PHP Tips & Trik Lanjutan: Clean Code dan Coding Standar
PHP Tips & Trik Lanjutan: Clean Code dan Coding StandarPHP Tips & Trik Lanjutan: Clean Code dan Coding Standar
PHP Tips & Trik Lanjutan: Clean Code dan Coding Standar
 
3984793.ppt
3984793.ppt3984793.ppt
3984793.ppt
 
Modul 4 php
Modul 4 phpModul 4 php
Modul 4 php
 
Pengantar Pemrograman WEB PHP
Pengantar Pemrograman WEB PHPPengantar Pemrograman WEB PHP
Pengantar Pemrograman WEB PHP
 
Belajar php (pemula dasar)
Belajar php (pemula dasar)Belajar php (pemula dasar)
Belajar php (pemula dasar)
 
Tutorial dasar laravel
Tutorial dasar laravelTutorial dasar laravel
Tutorial dasar laravel
 
Tutorial dasar-laravel
Tutorial dasar-laravelTutorial dasar-laravel
Tutorial dasar-laravel
 
Tutorial dasar laravel 4
Tutorial dasar laravel 4Tutorial dasar laravel 4
Tutorial dasar laravel 4
 
Tutorial Penggunaan Laravel
Tutorial Penggunaan LaravelTutorial Penggunaan Laravel
Tutorial Penggunaan Laravel
 
Bpmogrman berorientasi fungsi
Bpmogrman berorientasi fungsiBpmogrman berorientasi fungsi
Bpmogrman berorientasi fungsi
 
Laravel Dasar.pptx
Laravel Dasar.pptxLaravel Dasar.pptx
Laravel Dasar.pptx
 
Laravel Dasar.pptx
Laravel Dasar.pptxLaravel Dasar.pptx
Laravel Dasar.pptx
 
Pascal buku
Pascal bukuPascal buku
Pascal buku
 
Algoritma 02
Algoritma 02Algoritma 02
Algoritma 02
 
Meeting 9 pemrograman shell - a
Meeting 9    pemrograman shell - a Meeting 9    pemrograman shell - a
Meeting 9 pemrograman shell - a
 
Flowchart
FlowchartFlowchart
Flowchart
 
Build Your First Web App.pdf
Build Your First Web App.pdfBuild Your First Web App.pdf
Build Your First Web App.pdf
 
PROGRESS DEV - Basic Laravel 5.3 #1
PROGRESS DEV - Basic Laravel 5.3 #1PROGRESS DEV - Basic Laravel 5.3 #1
PROGRESS DEV - Basic Laravel 5.3 #1
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrograman
 
Optimize php application in high traffic environment
Optimize php application in high traffic environmentOptimize php application in high traffic environment
Optimize php application in high traffic environment
 

Mari Memahami PSR (PHP Standards Recommendation)

  • 1. Mari Memahami PSR oleh Mizan Rizqia
  • 2. Latar Belakang ● PHP bahasa yg berkembang ● PHP tidak standar ● PHP tidak ada spesifikasi yg nyata
  • 3. Latar Belakang PHP 5.4 ● OOP Lengkap ● banyak fungsi baru
  • 5. Masalah ● Banyak PHP framework ● Haruskah belajar semua PHP framework? ● Apa framework yang bagus? ● Apakah harus terpaku 1 PHP framework?
  • 6. PHP-FIG PHP Framework Interop Group
  • 7. Misi PHP-FIG Menemukan cara untuk membuat framework-framework PHP mampu bekerja bersama-sama
  • 8. Anggota PHP-FIG ● Agavi ● AWS SDK for PHP (Amazon Web Services) ● Apache log4php ● Assetic and Buzz ● Aura Project and Solar Framework ● CakePHP ● Composer and Packagist ● Contao Open Source CMS ● Doctrine ● Drupal ● eZ Publish ● TYPO3 Flow ● Jackalope ● Joomla ● Laravel ● Lithium ● PEAR ● phpBB ● phpDocumentor ● PPI Framework ● Propel ● PyroCMS ● SabreDAV ● Sculpin ● SugarCRM ● Symfony2 ● Yii framework ● Zend Framework 2 ● Zikula ● lainnya….
  • 9. Hasil PHP-FIG PHP Standards Recommendation (PSR)
  • 11. PSR-0 Autoloading Standard Bagaimana semua framework dapat bekerja sama? ● memiliki struktur direktori umum ● memilik standar autoloading umum. JADI Semua framework harus dibangun dengan menggunakan konvensi autoloading yang sama.
  • 12. PSR-0 Peraturan 1. Struktur Fully-qualified Namespace dan Class harus mengikuti struktur <Vendor Name> (<Namespace>) * <Class Name> 2. Setiap Namespace harus memiliki top-level namespace (“Nama Vendor”). 3. Setiap Namespace dapat memiliki banyak sub-namespace sesuai kebutuhan. 4. Setiap separator namespace diubah menjadi DIRECTORY_SEPARATOR ketika loading dari sistem file. 5. Setiap karakter _ (Underscore) dalam CLASS NAME diubah menjadi DIRECTORY_SEPARATOR. Karakter _ (Underscore) tidak memiliki arti khusus dalam namespace. 6. Fully-qualified Namespace dan Class berakhiran .php ketika loading dari sistem file. 7. Urutan abjad dalam penamaan vendor, namespace, dan class merupakan kombinasi dari huruf kecil dan huruf besar.
  • 13. PSR-0 Contoh ● SymfonyCoreRequest => /path/to/project/lib/vendor/Symfony/Core/Request.php ● ZendAcl => /path/to/project/lib/vendor/Zend/Acl.php ● ZendMailMessage => /path/to/project/lib/vendor/Zend/Mail/Message.php
  • 14. PSR-0 Contoh Implementasi ● http://laravel.io/bin/yGE6D
  • 15. PSR-1 Basic Coding Standard
  • 16. PSR-1 Basic Coding Standard Ini adalah tawaran PSR untuk standarisasi pengkodean PHP, dan idenya adalah jika semua pengembang menggunakan standar yang sama, maka akan mudah untuk memindahkan modul tanpa masalah.
  • 17. PSR-1 Peraturan 1. File HARUS menggunakan <?php dan <?= tags 2. File HARUS menggunakan UTF-8 tanpa BOM untuk PHP Code. 3. File SEBAIKNYA dapat mendeklarasikan simbol (classes, functions, constants, dll) atau yang menyebabkan efek samping (generate output, change .ini settings, dll) tapi HARUS TIDAK melakukan keduanya. 4. Namespace dan Class HARUS mengikuti PSR-0. 5. Nama Class HARUS dideklarasikan dalam StudlyCaps 6. Constant kelas HARUS dinyatakan dalam huruf besar semua dengan pemisah underscore 7. Nama Method HARUS dinyatakan dalam CamelCase
  • 18. PSR-1 Files PHP Tags PHP code HARUS menggunakan <?php ?> atau short-echo <?= ?> Tidak boleh menggunakan variasi lainnya. Character Encoding Kode PHP HARUS menggunakan UTF-8 tanpa BOM
  • 19. PSR-1 Files Side Effects Contoh penggunaan deklarasi dan side effects bersamaan yang harus dihindari http://laravel.io/bin/YydOn Contoh penggunaan deklarasi tanpa side effects http://laravel.io/bin/mGMlj
  • 20. PSR-1 Namespace & Class Name ● Namespace & Class Name HARUS mengikuti PSR-0 ● Class Name HARUS StudlyCaps Contoh Namespace dan Class Name http://laravel.io/bin/bEBGX
  • 21. PSR-1 Class Constant, Properties, Methods Constant Class Constant: upper case with underscore seperator http://laravel.io/bin/Xy7Dj Properties Penamaan SEHARUSNYA konsisten sesuai scope. Contoh scope: vendor-level, package-level, class-level, or method-level. Methods Method names HARUS camelCase()
  • 23. PSR-2 Coding Style Guide PSR ini penambahan dari PSR-1, dan seperangkat aturan mengenai bagaimana memformat kode PHP.
  • 24. PSR-2 Peraturan 1. Kode HARUS berdasarkan PSR-1. 2. Kode harus menggunakan 4 spasi untuk indentasi, bukan tab. 3. TIDAK HARUS ada batas pada panjang baris; batas soft HARUS 120 karakter, setiap baris SEHARUSNYA 80 karakter atau kurang. 4. HARUS ada satu baris kosong setelah deklarasi namespace, dan HARUS ada satu baris kosong setelah blok use deklarasi. 5. Pembuka Brace ( Kurung kurawal ) untuk Class HARUS pada baris berikutnya, dan menutup Brace HARUS ada pada baris berikutnya setelah body class. 6. Membuka Brace untuk method HARUS pada baris berikutnya, dan menutup kawat gigi HARUS pada baris berikutnya setelah body method.
  • 25. PSR-2 Peraturan (lanjutan) 7. Visibility HARUS dideklarasikan pada semua properti dan metode; abstract dan final harus dideklarasikan sebelum Visibility, static HARUS menyatakan setelah Visibility. 8. Control struktur keyword HARUS memiliki satu spasi setelahnya; namun pada pemanggilan method dan function TIDAK HARUS. 9. Membuka Brace untuk struktur Control HARUS pada baris yang sama, dan menutup kawat gigi HARUS pergi pada baris berikutnya setelah body control. 10. Kurung buka untuk struktur kontrol TIDAK HARUS memiliki spasi setelah mereka, dan menutup kurung untuk struktur kontrol TIDAK HARUS memiliki spasi sebelumnya.
  • 26. PSR-2 Contoh Implementasi http://laravel.io/bin/Mk5dJ
  • 27. PSR-2 General Basic Coding Standard ● Code HARUS mengikuti semua aturan PSR-1 Files ● Semua PHP files HARUS menggunakan Unix LF (linefeed) line ending ● Semua PHP files HARUS berakhir dengan single blank line Lines ● HARUS TIDAK terlalu panjang barisnya. ● soft limit HARUS 120 karakter ● SEBAIKNYA 80 karakter
  • 28. PSR-2 General Indenting ● Code HARUS menggunakan 4 space untuk indenting ● Code HARUS TIDAK menggunaan tabs untuk indenting N.b.: Using only spaces, and not mixing spaces with tabs, helps to avoid problems with diffs, patches, history, and annotations. The use of spaces also makes it easy to insert fine-grained sub-indentation for inter-line alignment. Keywords and True/False/Null ● PHP Keyword HARUS lower case ● PHP constants true, false, null HARUS lower case
  • 29. PSR-2 Namespace & Declarations ● Setelah deklarasi namespace HARUS ada 1 baris kosong. ● Semua deklarasi use HARUS berada di bawah deklarasi namespace ● Deklarasi use HARUS untuk 1 keyword. ● Setelah deklarasi blok use HARUS ada 1 baris kosong. Contoh http://laravel.io/bin/1y4ne
  • 30. PSR-2 Classes, Properties, Methods Extends & Implements ● keyword extends dan implements HARUS dideklarasikan dalam 1 baris Contoh http://laravel.io/bin/BLoka ● Beberapa implements BOLEH dipisah menjadi beberapa baris, dimana setiap baris di-indent sekali. Contoh http://laravel.io/bin/2Wknr
  • 31. PSR-2 Classes, Properties, Methods Properties ● penglihatan/visibility HARUS dideklarasikan pada semua property ● keyword var, HARUS TIDAK digunakan untuk mendeklarasikan property ● HARUS TIDAK lebih dari 1 property per statement. ● SEBAIKNYA TIDAK diberi awalan single underscore ( _ ) untuk mengindikasikan protected atau private visibility Contoh http://laravel.io/bin/VPzrn
  • 32. PSR-2 Classes, Properties, Methods Methods ● penglihatan/visibility HARUS dideklarasikan pada semua method ● Nama Method SEBAIKNYA TIDAK diberi awalan single underscore ( _ ) untuk mengindikasikan protected atau private visibility ● Nama Method HARUS TIDAK dideklarasikan dengan spasi setelah nama method. ● Kurung buka dan kurung tutup HARUS berada dalam baris yang sama dengan nama method. ● HARUS TIDAK boleh ada spasi setelah opening parenthesis dan sebelum closing parenthesis. ● Contoh: http://laravel.io/bin/LkmGe
  • 33. PSR-2 Classes, Properties, Methods Method Arguments ● HARUS TIDAK ada space sebelum koma, dan HARUS ada space seteleh setiap koma. ● Method arguments dengan nilai default HARUS berada dibelakang daftar argumen. Contoh: http://laravel.io/bin/wJnYx ● Daftar argumen BOLEH dipisah menjadi beberapa baris, dimana setiap baris diberi 1 indent. Contoh: http://laravel.io/bin/qQElo
  • 34. PSR-2 Classes, Properties, Methods abstract, final, and static ● Deklarasi abstract dan final HARUS berada sebelum deklarasi visibility. ● Deklarasi static HARUS berada setelah deklarasi visibility. ● Contoh: http://laravel.io/bin/0e4yw
  • 35. PSR-2 Classes, Properties, Methods Method & Function ● HARUS TIDAK ada space antara nama method/function dengan kurung buka dan HARUS TIDAK ada space setelah kurung buka ● HARUS TIDAK ada space sebelum kurung tutup dan HARUS TIDAK ada space setelah kurung tutup. Contoh: http://laravel.io/bin/7we1z ● Daftar argumen BOLEH dipotong menjadi beberapa baris, dimana setiap baris diberi 1 indent. Contoh: http://laravel.io/bin/jQyP7
  • 36. PSR-2 Control Structures ● HARUS ada 1 spasi setelah control structures keyword ● HARUS TIDAK ada spasi setelah opening parenthesis ● HARUS TIDAK ada spasi sebelum closing parenthesis ● HARUS ada spasi antara closing parenthesis dengan opening brace ● Structured body HARUS ada 1 indent ● Closing brace HARUS berada pada baris selanjutnya setelah body.
  • 37. PSR-2 Control Structures ● if, elseif, else contoh: http://laravel.io/bin/8Kq37 ● switch, case contoh: http://laravel.io/bin/aNB5P ● while, do while contoh: http://laravel.io/bin/okY2w ● for contoh: http://laravel.io/bin/vB4mV ● foreach contoh: http://laravel.io/bin/yGEYR ● try, catch contoh: http://laravel.io/bin/52YWn
  • 38. PSR-2 Closures ● Contoh deklarasi closure http://laravel.io/bin/kWxk0 ● Contoh deklarasi daftar argumen pada closure http://laravel.io/bin/l5vxV ● Contoh deklarasi closure pada function or method call http://laravel.io/bin/W4Q95
  • 39. > phpcs --standard=PSR2 *.php https://github.com/squizlabs/PHP_CodeSniffer
  • 41. PSR-3 Logger Interface Peraturan PSR-3 untuk logging, dan secara khusus memaparkan sembilan metode untuk tata cara menulis log pada library framework. Hal ini membuat pemangkasan universal untuk semua kerangka, yang berarti akan mempermudah ketika ingin menerapkan logging dalam framework yang sebelumnya tidak mempunyai fungsi tersebut.
  • 42. PSR-3 Cara 1. LoggerInterface memperlihatkan delapan metode untuk menulis log ke dalam RFC 5424 (debug, info, notice, warning, error, critical, alert, emergency). 2. Metode kesembilan (log), menerima tingkat log sebagai argumen pertama. Pemanggilan metode ini dengan salah satu dari tingkat konstanta log HARUS memiliki hasil yang sama seperti pemanggilan metode tingkat-spesifik. Pemanggilan metode ini dengan tidak disertai konstanta level oleh HARUS mengeluarkan PsrLogInvalidArgumentException jika pelaksanaannya tidak berhasil. Pengguna SEBAIKNYA TIDAK menggunakan tingkat log kustom tanpa mengetahui pasti cara pengimplementasiannya.
  • 43.
  • 44.
  • 46. { “require”: { “psr/log”: “dev-master” } }
  • 49. PSR-4 Improved Autoloading Sebagai extention untuk PSR-0, PSR-4 menambahkan metode peningkatan autoloading, dan juga menjelaskan persyaratan path file dari autoloader interoperable.
  • 52. Referensi ● http://idtut.com/2014/apa-itu-php-fig-dan-apa-yang-mereka-lakukan/ ● http://www.php-fig.org/ ● https://github.com/php-fig/fig-standards ● http://www.sitepoint.com/autoloading-and-the-psr-0-standard/ ● http://www.slideshare.net/arambaghdasaryan/coding-standards-psr1-psr2 ● http://www.slideshare.net/MinskPHPUserGroup/psr-36450518 ● http://www.slideshare.net/loalf/fig-and-psr
  • 53. Matur Sembah Nuwun Thank you Mizan Rizqia baobaz@tlab.co.id 081806406692 @mizanrizqia /mizanr