Dari Wikipedia , ensiklopedia bebasLangsung ke : navigasi, cariArtikel ini adalah tentang bahasa scripting . Untuk kegunaan lain , lihat PHP ( disambiguasi ) .Ini adalah artikel bagus . Klik disini untuk informasi lebih lanjut .PHP PHP - logo.svgParadigma ( s ) penting , fungsional , object-oriented , prosedural , reflektifMuncul pada tahun 1995 , 18 tahun yang lalu [ 1 ]Dirancang oleh Rasmus LerdorfPengembang Grup PHPStabil rilis 5.5.3 ( 22 Agustus 2013 , 28 hari lalu )Mengetik disiplin Dinamis , lemahImplementasi utama Zend Mesin , Phalanger , Quercus , Project Zero , HipHopDipengaruhi oleh Perl , C , C + + , Java , Tcl [ 1 ]Implementasi bahasa COS Cross-platformLisensi PHP Licensewww.php.net situs
Pemrograman PHP di Wikibooks
PHP
adalah server - side scripting bahasa yang dirancang untuk pengembangan
web, tetapi juga digunakan sebagai bahasa pemrograman untuk tujuan umum
. PHP
sekarang terinstal pada lebih dari 244 juta website dan 2,1 juta server
web . Awalnya dibuat oleh Rasmus Lerdorf pada tahun 1995 ,
implementasi referensi dari PHP yang sekarang diproduksi oleh Grup PHP . Sementara PHP awalnya berdiri untuk Personal Home page, sekarang singkatan dari PHP : Hypertext Preprocessor , sebuah akronim rekursif .
Kode
PHP ditafsirkan oleh server web dengan modul PHP prosesor , yang
menghasilkan halaman web yang dihasilkan : perintah PHP dapat ditanamkan
langsung ke dalam dokumen sumber HTML daripada memanggil file eksternal
untuk memproses data . Hal
ini juga telah berkembang untuk menyertakan kemampuan antarmuka baris
perintah , dan dapat digunakan dalam aplikasi grafis mandiri .PHP
adalah perangkat lunak bebas yang dirilis di bawah Lisensi PHP , yang
tidak sesuai dengan GNU General Public License ( GPL ) karena pembatasan
pada penggunaan istilah PHP . PHP dapat digunakan pada kebanyakan
web server dan juga sebagai shell mandiri pada hampir setiap sistem operasi dan platform , gratis.isi
sejarah
Rasmus
Lerdorf , yang menulis asli Common Gateway Interface ( CGI ) komponen ,
bersama dengan Andi Gutmans , dan Zeev Suraski yang menulis ulang
parser yang terbentuk PHP 3
Pengembangan
PHP dimulai pada 1994, ketika pengembang Rasmus Lerdorf menulis
serangkaian Common Gateway Interface ( CGI ) Perl script , yang ia
digunakan untuk menjaga homepage pribadinya . Perangkat
melakukan tugas-tugas seperti menampilkan resume dan merekam lalu
lintas web . Ia menulis ulang skrip ini di C untuk
alasan kinerja , memperpanjang mereka untuk menambahkan kemampuan untuk
bekerja dengan bentuk web dan untuk berkomunikasi dengan database , dan menyebut implementasi ini " Personal Home Page / Forms Interpreter " atau PHP / FI . PHP / FI dapat digunakan untuk membangun sederhana , aplikasi web dinamis . Lerdorf
awalnya mengumumkan peluncuran PHP / FI sebagai " Personal Home Page
Tools ( PHP Tools) versi 1.0 " publik untuk mempercepat lokasi bug dan
memperbaiki kode , pada grup diskusi Usenet
comp.infosystems.www.authoring.cgi pada tanggal 8 Juni , 1995 rilis ini sudah memiliki fungsi dasar bahwa PHP memiliki pada 2013. . Ini termasuk variabel Perl -seperti , penanganan form , dan kemampuan untuk menanamkan HTML . Sintaks
mirip dari Perl tapi sederhana , lebih terbatas dan kurang konsisten . Sebuah tim pengembangan mulai terbentuk , dan , setelah
berbulan-bulan bekerja dan pengujian beta , resmi dirilis PHP / FI 2
pada November 1997 .
Zeev
Suraski dan Andi Gutmans menulis ulang parser pada tahun 1997 dan
membentuk dasar PHP 3 , mengubah nama bahasa terhadap rekursif singkatan
PHP : . Hypertext Preprocessor Setelah itu , uji publik dari PHP 3
dimulai , dan peluncuran resmi datang pada bulan Juni 1998. Suraski
dan Gutmans kemudian mulai menulis ulang baru inti PHP , memproduksi
Zend Engine pada tahun 1999 Mereka juga mendirikan Zend
Technologies di Ramat Gan , Israel . .
Pada
tanggal 22 Mei 2000, PHP 4 , didukung oleh Zend mesin 1.0 , dirilis Pada Agustus 2008 cabang ini mencapai versi 4.4.9 . . PHP 4 tidak lagi dalam pengembangan tidak akan ada update keamanan akan dirilis .
Pada
13 Juli 2004, PHP 5 dirilis , didukung oleh mesin baru Zend II .
PHP 5 termasuk fitur baru seperti peningkatan dukungan untuk pemrograman
berorientasi objek , Data Objects PHP ( PDO ) ekstensi ( yang
mendefinisikan ringan ,
dan antarmuka konsisten untuk database mengakses ) , dan berbagai
peningkatan kinerja . pada tahun 2008 PHP 5 menjadi satu-satunya
versi stabil dalam pengembangan. Akhir mengikat statis telah hilang dari PHP dan telah ditambahkan di versi 5.3 .
Sebuah versi baru utama sudah dalam pengembangan bersama PHP 5 untuk beberapa tahun . Versi
ini awalnya direncanakan akan dirilis sebagai PHP 6 sebagai akibat dari
perubahan yang signifikan , termasuk rencana untuk dukungan Unicode
penuh. Namun
, dukungan Unicode mengambil pengembang lebih lama untuk diterapkan
daripada yang diperkirakan , dan keputusan itu dibuat Maret 2010
untuk memindahkan proyek tersebut ke cabang , dengan fitur masih dalam
pengembangan dipindahkan ke bagasi .
Perubahan
kode baru termasuk penghapusan register_globals , sihir kutipan ,
dan safe mode .Alasan kepindahan adalah bahwa
register_globals telah membuka lubang keamanan dengan sengaja membiarkan
injeksi runtime data , dan penggunaan kutipan sihir memiliki sifat tak terduga . Sebaliknya
, untuk melarikan diri karakter , sihir kutipan dapat digantikan dengan
addslashes ( ) fungsi, atau lebih tepat mekanisme melarikan diri khusus
untuk vendor database itu sendiri seperti mysql_real_escape_string ( )
untuk MySQL . Fungsi
yang akan dihapus dalam versi masa depan dan telah ditinggalkan di PHP
5.3 akan menghasilkan peringatan jika digunakan .Banyak
proyek open-source profil tinggi lagi mendukung PHP 4 di kode baru
tanggal 5 Februari 2008, karena GoPHP5 inisiatif disediakan oleh
konsorsium pengembang PHP mempromosikan transisi dari PHP 4 ke PHP 5 .
Interpreter
PHP yang tersedia di kedua sistem operasi 32 - bit dan 64 -bit , tetapi
pada Microsoft Windows satu-satunya distribusi resmi adalah
implementasi 32 -bit , yang membutuhkan modus Windows kompatibilitas 32
-bit ketika menggunakan Internet Information Services ( IIS ) pada 64 a
- bit platform Windows . Versi 64 - bit eksperimental PHP 5.3.0 yang singkat tersedia untuk Microsoft Windows , tetapi telah dihapus .BRIEFING rilisKunci Warna Pengembangan ArtiRed Old rilis ada pembangunanKuning Stabil rilis perbaikan KeamananHijau Stabil rilis Bug dan perbaikan keamananBlue Cita rilis Fitur baruVersi Tanggal rilis didukung sampai Catatan1.0 1995/06/08 Resmi disebut " Personal Home Page Tools ( Peralatan PHP ) " . Ini adalah penggunaan pertama dari nama " PHP " .2.0 1997/11/013.0 1998/06/06 2000/10/20 Pengembangan bergerak dari satu orang ke beberapa pengembang . Zeev Suraski dan Andi Gutmans menulis ulang dasar untuk versi ini 4.0
2000/05/22 2001/01/23 Ditambahkan lebih maju mengurai dua tahap /
mengeksekusi sistem tag - parsing disebut mesin Zend . 4.1 2001/12/10 2002/03/12 Diperkenalkan ' superglobals ' ( $ _GET , $ _POST , $ _SESSION , dll )4.2 2002/04/22 2002/09/06 register_globals Penyandang Cacat secara default . Data
yang diterima melalui jaringan tersebut tidak dimasukkan langsung ke
dalam namespace global lagi , menutup lubang keamanan mungkin dalam
aplikasi . 4.3 2002/12/27 2005-03-31 Memperkenalkan antarmuka baris perintah ( CLI ) , untuk melengkapi CGI . [ 28 ] [ 29 ]4.4 2005-07-11 2008-08-07 Ditambahkan halaman manual untuk phpize dan skrip php - config . 5.0 2004/07/13 2005/09/05 Zend Mesin II dengan model objek baru .5.1
2005-11-24 2006/08/24 perbaikan kinerja dengan pengenalan variabel
kompilator dalam rekayasa ulang PHP Mesin Ditambahkan PHP
Data Objects ( PDO ) sebagai antarmuka konsisten untuk mengakses
database . .5.2 2006-11-02 2011-01-06 Diaktifkan perpanjangan filter by default. Dukungan native JSON . 5.3
2009-06-30 2014-07 Namespace dukungan , binding akhir statis ,
label Langsung ( terbatas goto ) , Bahasa penutupan , Asli PHP arsip (
Phar ) , pengumpulan sampah referensi melingkar , meningkatkan dukungan
Windows, sqlite3 , mysqlnd sebagai pengganti
libmysql underlying perpustakaan untuk ekstensi yang bekerja dengan
MySQL , fileinfo sebagai pengganti mime_magic untuk lebih baik dukungan
MIME , perpanjangan Internasionalisasi , dan depresiasi ereg ekstensi .5.4
2012-03-01 Tidak ada tanggal yang ditetapkan ( diharapkan 2015-03
[ tidak dalam kutipan yang diberikan ] ) Dukungan Trait , dukungan
sintaks array pendek. Item
yang dihapus : register_globals , safe_mode ,
allow_call_time_pass_reference , session_register ( ) ,
session_unregister ( ) dan session_is_registered ( ) . Built - in web server . Beberapa perbaikan fitur yang ada , kinerja dan persyaratan memori berkurang .5.5
Tidak ada tanggal yang ditetapkan 2013/06/20 ( diharapkan 2016-06
[ tidak dalam kutipan yang diberikan ] ) Generator , Zend Optimizer + 5.6 ada tanggal yang ditetapkan ada tanggal yang ditetapkan Operator overloading internal , perubahan GMP 6
ada tanggal yang ditetapkan ada tanggal yang ditetapkan Perkembangan
PHP 6 telah tertunda karena pengembang telah memutuskan pendekatan saat
ini untuk penanganan contoh Unicode adalah tidak baik , dan sedang
mempertimbangkan cara-cara alternatif dalam versi berikutnya dari PHP . update
yang ditujukan untuk PHP 6 yang ditambahkan ke PHP 5.3.0 (dukungan
namespace , binding akhir statis , fungsi lambda , penutupan , goto )
dan 5.4.0 ( sifat , rebinding penutupan ) sebagai gantinya.
Dimulai
pada tanggal 28 Juni 2011, Grup PHP mulai mengikuti timeline ketika
versi baru dari PHP akan dirilis . Dalam waktu ini , setidaknya
satu rilis harus dilakukan setiap bulan . Sekali per tahun , rilis minor harus terjadi yang dapat mencakup fitur baru . Setiap
rilis minor setidaknya harus memiliki 2 tahun keamanan dan perbaikan
bug , diikuti oleh setidaknya 1 tahun hanya perbaikan keamanan , untuk
total proses rilis 3 tahun untuk setiap rilis minor . Tidak ada fitur baru ( kecuali kecil dan mandiri ) akan dimasukkan ke dalam rilis minor selama proses rilis 3 tahun .sintaksisArtikel utama: sintaks PHP dan semantik
Berikut program Halo dunia yang ditulis dalam kode PHP tertanam dalam dokumen HTML :
< ! DOCTYPE html ><meta charset="utf-8"><title> PHP Uji < / title>< ? php
gema ' Hello World ' ;? >
Namun
karena PHP tidak perlu tertanam dalam HTML , atau digunakan dengan
server web , versi sederhana dari program Hello World dapat ditulis
seperti ini :
< = 'Hello world ' ? ;
PHP interpreter hanya mengeksekusi kode PHP dalam pembatas . Apapun
di luar pembatas tidak diproses oleh PHP (meskipun teks non - PHP masih
tunduk pada struktur kontrol yang diuraikan dalam kode PHP ) . Pembatas yang paling umum adalah < ? Php untuk membuka dan > untuk menutup bagian PHP . <script language="php"> dan < / script> pembatas juga tersedia , seperti memperpendek bentuk < ? atau
< ? = ( yang digunakan untuk echo kembali string atau variabel ) dan
> serta ASP - gaya bentuk pendek < % atau < % = dan % > . Sementara
pembatas pendek digunakan , mereka membuat script file kurang portable
sebagai dukungan bagi mereka dapat dinonaktifkan dalam konfigurasi PHP ,
dan sehingga mereka putus asa . Tujuan dari semua pembatas ini
adalah untuk memisahkan kode PHP dari kode non - PHP , termasuk HTML . Bentuk
pertama delimiters , < ? Php dan ? > , Di XHTML dan dokumen XML
lainnya , menciptakan benar dibentuk " instruksi pemrosesan ' XML . Ini berarti bahwa campuran yang dihasilkan dari kode PHP dan markup
lainnya dalam file server -side adalah sendiri well-formed XML .
Variabel diawali dengan simbol dolar , dan jenis yang tidak perlu ditentukan terlebih dahulu . Tidak seperti fungsi dan kelas nama , nama variabel adalah case sensitif . Kedua
dikutip ganda ( " ") dan string heredoc memberikan kemampuan untuk
interpolasi nilai variabel ke dalam string . PHP memperlakukan
baris sebagai spasi dalam cara bahasa bebas-bentuk ( kecuali bila bagian
tali kutip) , serta pernyataan yang
diakhiri dengan titik koma PHP memiliki tiga jenis komentar
sintaks : . . / ** / tanda blok dan inline komentar, / / serta #
digunakan untuk komentar satu baris pernyataan gema adalah salah
satu dari beberapa fasilitas PHP menyediakan output teks, misalnya , ke web browser .
Dalam hal kata kunci dan sintaks language , PHP mirip dengan bahasa tingkat paling tinggi yang mengikuti sintaks C gaya . jika
kondisi untuk dan sementara loop , fungsi dan keuntungannya mirip
dengan sintaks bahasa seperti C , C + + , C # , Java dan Perl .tipe data
PHP
menyimpan seluruh nomor dalam rentang tergantung platform , baik 64 -
bit atau 32 - bit ditandatangani setara integer untuk jenis panjang C -
bahasa. Unsigned
integer dikonversi ke nilai ditandatangani dalam situasi tertentu ,
perilaku ini berbeda dari bahasa pemrograman lain variabel
Integer dapat diberikan dengan menggunakan desimal ( positif dan negatif
) , oktal , heksadesimal , serta notasi biner . . Floating point juga disimpan dalam berbagai platform-khusus . Mereka
dapat ditentukan dengan menggunakan notasi floating point , atau dua
bentuk notasi ilmiah . PHP memiliki tipe Boolean asli yang mirip
dengan tipe Boolean asli di Java dan C + + . Menggunakan
aturan tipe Boolean konversi , nilai non-nol diinterpretasikan sebagai
benar dan nol sebagai palsu, seperti di Perl , dan C + + Tipe
data nol merupakan variabel yang tidak memiliki nilai . . Nilai
hanya dalam tipe data nol adalah NULL . Variabel yang " sumber
daya " Jenis merupakan referensi ke sumber daya dari sumber eksternal . Ini
biasanya dibuat oleh fungsi dari ekstensi tertentu , dan hanya dapat
diproses oleh fungsi dari ekstensi yang sama , . Contoh include file ,
gambar , dan sumber daya database Array dapat mengandung
unsur-unsur dari jenis apa pun bahwa PHP dapat menangani , termasuk
sumber daya , benda , dan bahkan array lainnya . Order
diawetkan dalam daftar nilai dan hash dengan kedua kunci dan nilai ,
dan kedua bisa bercampur . PHP juga mendukung string , yang dapat
digunakan dengan tanda kutip tunggal , tanda kutip ganda , nowdoc atau
sintaks heredoc .
Perpustakaan
PHP Standard ( SPL ) mencoba untuk memecahkan masalah dan menerapkan
standar data yang efisien antarmuka akses dan kelas . fungsi
PHP memiliki ratusan fungsi dasar dan ribuan lainnya melalui ekstensi . Fungsi-fungsi
ini didokumentasikan di situs PHP , namun built -in perpustakaan
memiliki berbagai konvensi penamaan dan inkonsistensi PHP saat
ini tidak memiliki fungsi untuk pemrograman benang , meskipun tidak
mendukung pemrograman multi- proses pada sistem POSIX . .
Tambahan fungsi dapat didefinisikan oleh pengembang :
Fungsi myFunction ( ) { / / mendeklarasikan fungsi, ini adalah bernama myFunction
kembali ' John Doe '; / / mengembalikan nilai ' John Doe '}
echo ' Nama saya ' . myFunction ( ) . ' ! '; / / Output teks concatenated dengan nilai kembalinya myFunction ./ / MyFunction disebut sebagai hasil dari sintaks ini ./ / Hasil output akan ' Nama saya John Doe ! "
Dalam
PHP 5.2 dan sebelumnya , fungsi tidak fungsi kelas satu dan hanya dapat
direferensikan oleh nama mereka , secara langsung atau dinamis oleh
variabel yang berisi nama fungsi . fungsi yang ditentukan oleh
pengguna dapat dibuat setiap saat tanpa fungsi prototyped . dapat didefinisikan dalam blok kode , yang
memungkinkan keputusan run-time , apakah atau tidak fungsi harus
didefinisikan . Fungsi
panggilan harus menggunakan tanda kurung , dengan pengecualian dari nol
argumen fungsi konstruktor kelas yang disebut dengan operator baru PHP ,
di mana kurung adalah opsional . PHP
mendukung fungsi kuasi - anonim melalui fungsi create_function ( ) ,
meskipun mereka tidak benar karena fungsi anonim fungsi anonim tak
bernama , tapi fungsi hanya dapat direferensikan oleh nama , atau tidak
langsung melalui variabel $ function_name (); , di PHP
PHP mendapat dukungan untuk penutupan di PHP 5.3 . Fungsi anonim benar didukung menggunakan sintaks berikut :
Fungsi getAdder ( $ x ) {
kembali fungsi ( $ y ) penggunaan ( $ x ) {
return $ x + $ y ;
} ;}
$ penambah = getAdder ( 8 ) ;echo $ penambah ( 2 ) ; / / prints " 10 "
Sini,
getAdder ( ) fungsi menciptakan penutupan menggunakan parameter $ x (
penggunaan kata kunci mengimpor variabel dari konteks leksikal ) , yang
membawa argumen tambahan $ y dan mengembalikannya ke pemanggil . Fungsi
tersebut adalah objek kelas pertama , artinya dapat disimpan dalam
variabel , lulus sebagai parameter untuk fungsi lainnya, dll Untuk lebih
jelasnya lihat fungsi Lambda dan penutupan RFC .
Goto pernyataan kontrol aliran digunakan sebagai berikut :
fungsi kunci ( ) {
$ file = fopen ( ' file.txt ' , ' r + ' ) ;
coba :
if ( flock ( $ file , LOCK_EX | ! LOCK_NB ) ) {
goto coba ;
}
fwrite ( $ file , " Sukses ! ' ) ;
fclose ( $ file ) ;}
Ketika kawanan () dipanggil , PHP membuka file dan mencoba untuk menguncinya . Label
Target coba : mendefinisikan titik yang pelaksanaannya harus kembali
jika flock ( ) tidak berhasil dan goto retry ; disebut . Pernyataan goto dibatasi dan mensyaratkan bahwa label sasaran berada di file , dan konteks sama.
Pernyataan goto telah didukung sejak PHP 5.3 .Objects
Dasar
fungsi pemrograman berorientasi obyek ditambahkan pada PHP 3 dan
ditingkatkan dalam PHP 4 . penanganan Obyek benar-benar ditulis
ulang PHP 5 , memperluas set fitur dan peningkatan kinerja . Dalam versi sebelumnya PHP , objek yang ditangani seperti jenis
nilai kelemahan dari metode ini adalah bahwa seluruh objek
disalin bila variabel ditugaskan atau dilewatkan sebagai parameter untuk
sebuah metode . . Dalam Pendekatan baru , objek yang direferensikan oleh pegangan , dan bukan oleh nilai . PHP
5 memperkenalkan variabel anggota pribadi dan dilindungi dan metode ,
bersama dengan kelas abstrak , kelas akhir , metode abstrak , dan metode
akhir. Hal
ini juga memperkenalkan cara standar untuk menyatakan konstruktor dan
destructors , mirip dengan bahasa berorientasi objek lainnya seperti C +
+, dan sebuah model exception handling standar. Selanjutnya , PHP 5 menambahkan interface dan memungkinkan beberapa interface untuk dilaksanakan. Ada antarmuka khusus yang memungkinkan objek untuk berinteraksi dengan sistem runtime . Obyek
yang mengimplementasikan ArrayAccess dapat digunakan dengan sintaks
array dan obyek yang mengimplementasikan Iterator atau IteratorAggregate
dapat digunakan dengan membangun bahasa foreach . Tidak
ada fitur tabel virtual dalam mesin , sehingga variabel statis terikat
dengan nama, bukan referensi pada waktu kompilasi .Jika
pengembang membuat copy dari suatu obyek dengan menggunakan klon kata
reserved , mesin Zend akan memeriksa apakah clone ( ) metode __ telah
ditentukan atau tidak . Jika tidak, ia akan memanggil __ clone default ( ) yang akan menyalin properti objek . Jika
clone ( ) metode __ didefinisikan , maka akan bertanggung jawab untuk
menetapkan sifat yang diperlukan dalam objek dibuat . Untuk
kenyamanan , mesin akan menyediakan fungsi yang impor properti dari
objek sumber , sehingga pemrogram dapat memulai dengan oleh - nilai
replika dari objek sumber dan hanya menimpa properti yang perlu diubah . Berikut ini adalah contoh dasar pemrograman berorientasi objek dalam PHP :
class Person {
public $ firstName ;
public $ lastName ;
fungsi publik __ construct ( $ firstName , $ lastName = '' ) { / / Opsional parameter
$ this - > firstName = $ firstName ;
$ this - > lastName = $ lastName ;
}
public function menyapa ( ) {
kembali "Halo , nama saya " . $ this-> firstName . " " . $ this-> lastName . " . " ;
}
fungsi publik staticGreet statis ( $ firstName , $ lastName ) {
kembali "Halo , nama saya " . $ firstName . " ." $ lastName . " . " ;
}}
$ dia = new Person ( ' John ' , ' Smith ' ) ;$ dia = new Person ( ' Sally ' , ' Davis ' ) ;$ lainnya = new Person ( ' iAmine ' ) ;
echo $ he- > menyapa ( ) ; / / prints " . Halo, nama saya John Smith "echo ' <br /> ' ;echo $ dia - > menyapa ( ) ; / / prints " . Hello , nama saya Sally Davis "echo ' <br /> ' ;echo $ lain - > menyapa ( ) ; / / prints " Halo, nama saya iAmine . "echo ' <br /> ' ;gema Orang :: staticGreet ( ' Jane ' , ' Doe '); / / prints " . Halo , nama saya Jane Doe "
Visibilitas sifat PHP dan metode didefinisikan dengan menggunakan kata kunci publik , swasta, dan dilindungi . Standarnya adalah publik , jika hanya digunakan var , var adalah sinonim untuk umum . Produk dinyatakan publik dapat diakses di mana-mana . dilindungi membatasi akses ke kelas mewarisi ( dan kelas yang mendefinisikan item ) . swasta
batas visibilitas hanya untuk kelas yang mendefinisikan item .
Obyek dari jenis yang sama memiliki akses ke anggota pribadi dan
dilindungi satu sama lain meskipun mereka tidak contoh yang sama . Fitur
visibilitas anggota PHP terkadang telah digambarkan sebagai " sangat
berguna . " Namun , mereka juga kadang-kadang digambarkan sebagai
" yang terbaik tidak relevan dan terburuk positif berbahaya . " implementasi
Bahasa PHP awalnya diimplementasikan sebagai penerjemah , dan ini masih merupakan implementasi yang paling populer . Beberapa compiler telah dikembangkan yang memisahkan bahasa PHP dari penerjemah . Keuntungan
kompilasi termasuk kecepatan yang lebih baik eksekusi , analisis statis
, dan meningkatkan interoperabilitas dengan kode yang ditulis dalam
bahasa lain . Kompiler
PHP catatan termasuk Phalanger , yang mengkompilasi PHP ke Umum
Intermediate Language ( CIL ) bytecode , dan HipHop , dikembangkan di
Facebook dan sekarang tersedia sebagai open source , yang mengubah
Script PHP ke C + + , kemudian mengkompilasi , mengurangi server yang
memuat hingga 50 % .
Source
code PHP dikompilasi on-the -fly ke format internal yang dapat
dieksekusi oleh mesin PHP Dalam rangka untuk mempercepat
waktu pelaksanaan dan tidak perlu mengkompilasi kode sumber PHP setiap
kali halaman web . adalah diakses , script PHP juga dapat digunakan dalam format executable menggunakan compiler PHP .
Pengoptimalan
Kode ditujukan untuk meningkatkan kinerja kode dikompilasi dengan
mengurangi ukurannya , penggabungan instruksi berlebihan dan membuat
perubahan lain yang dapat mengurangi waktu eksekusi . Dengan PHP , ada peluang untuk optimasi kode sering. Sebuah contoh dari optimasi kode adalah ekstensi PHP eAccelerator .
Pendekatan lain untuk mengurangi biaya overhead kompilasi untuk server PHP menggunakan opcode cache . Opcode
cache bekerja dengan caching bentuk terkompilasi dari script PHP (
opcode ) dalam memori bersama untuk menghindari overhead parsing dan
kompilasi kode setiap kali script berjalan . Sebuah opcode cache , Zend Opcache , dibangun untuk PHP sejak versi 5.5 .Perizinan
PHP adalah perangkat lunak bebas yang dirilis di bawah Lisensi PHP , yang menyatakan bahwa :
Produk
yang berasal dari perangkat lunak ini tidak dapat disebut " PHP " ,
atau mungkin " PHP " muncul dalam nama mereka , tanpa izin tertulis dari
group@php.net . Anda
mungkin menunjukkan bahwa perangkat lunak Anda bekerja sama dengan PHP
dengan mengatakan " Foo untuk PHP " bukannya menyebutnya " PHP Foo "
atau " phpfoo " .
Pembatasan ini pada penggunaan nama PHP membuatnya tidak kompatibel dengan GNU General Public License ( GPL ) .Pembangunan dan masyarakat
PHP termasuk perpustakaan bebas dan sumber terbuka dengan inti membangun. PHP
adalah sebuah sistem fundamental internet menyadari dengan modul built
in untuk mengakses File Transfer Protocol ( FTP ) server , banyak
database server , embedded SQL perpustakaan seperti tertanam PostgreSQL ,
MySQL , Microsoft SQL Server dan SQLite , server LDAP , dan lainnya. Banyak fungsi akrab bagi programmer C seperti dalam keluarga stdio tersedia dalam standar PHP build . PHP memungkinkan pengembang untuk menulis extension C di untuk menambahkan fungsionalitas ke bahasa php. Ini kemudian dapat dikompilasi ke dalam PHP atau dimuat secara dinamis pada saat runtime . Ekstensi
telah ditulis untuk menambahkan dukungan untuk Windows API , manajemen
proses di Unix - seperti sistem operasi , string multibyte ( Unicode ) ,
Curl , dan beberapa format kompresi populer . Fitur lain termasuk integrasi dengan IRC , generasi gambar dinamis , dan konten Adobe Flash , dan bahkan sintesis pidato . Fungsi
inti bahasa itu seperti yang berhubungan dengan string dan array juga
diimplementasikan sebagai ekstensi Perpustakaan Komunitas
Perpanjangan PHP ( PECL ) proyek adalah repositori untuk ekstensi untuk
bahasa PHP PDO - . . ( PHP Data Objects ) adalah sebuah antarmuka untuk mengakses database .
Zend Technologies menyediakan ujian sertifikasi bagi programmer untuk menjadi bersertifikat PHP pengembang .distribusi
PHP
- FPM ( FastCGI Process Manager ) , implementasi PHP FastCGI , dibundel
dengan distribusi PHP resmi sejak versi 5.3.3 . menggunakanBundel software LAMP (di sini tambahan dengan Squid ) . Sebuah kinerja tinggi dan solusi ketersediaan tinggi untuk lingkungan yang tidak bersahabat
PHP
adalah bahasa scripting tujuan umum yang sangat cocok untuk
pengembangan web sisi server dimana PHP umumnya berjalan pada web server
. Setiap
kode PHP dalam file yang diminta dieksekusi oleh PHP runtime , biasanya
untuk membuat web konten halaman dinamis atau gambar dinamis yang
digunakan di website atau di tempat lain . Hal ini juga dapat
digunakan untuk script baris perintah dan sisi klien antarmuka pengguna
grafis ( GUI ) aplikasi . PHP
dapat digunakan pada kebanyakan web server , banyak sistem operasi dan
platform , dan dapat digunakan dengan banyak sistem manajemen database
relasional ( RDBMS ) . Kebanyakan penyedia web hosting mendukung PHP untuk digunakan oleh klien mereka . Ini
tersedia gratis , dan Grup PHP menyediakan source code lengkap bagi
pengguna untuk membangun , menyesuaikan dan memperpanjang untuk mereka
gunakan sendiri . PHP
bertindak terutama sebagai filter , mengambil input dari sebuah
file atau stream yang berisi teks , dan / atau instruksi PHP dan
keluaran lain aliran data , paling sering output akan HTML , meskipun
itu bisa JSON , XML atau data gambar , antara lain berguna dalam pengembangan web . Sejak
PHP 4 , PHP parser mengkompilasi masukan untuk menghasilkan bytecode
untuk diproses oleh Zend Engine, memberikan kinerja yang meningkat lebih
juru bahasa pendahulunya . Awalnya
dirancang untuk membuat halaman web dinamis , PHP sekarang terutama
berfokus pada server-side scripting , dan itu mirip dengan bahasa
server-side scripting lainnya yang menyediakan konten dinamis dari
server web ke klien , seperti Microsoft ASP.NET , Sun Microsystems ' JSP , dan mod_perl . PHP
juga telah menarik banyak pengembangan kerangka kerja perangkat lunak
yang menyediakan blok bangunan dan struktur desain untuk mempromosikan
pengembangan aplikasi cepat ( RAD ) . Beberapa
di antaranya adalah CakePHP , Symfony , CodeIgniter , Laravel , Yii
Kerangka , dan Zend Framework , menawarkan fitur yang mirip dengan
kerangka kerja aplikasi web lainnya .
Arsitektur LAMP telah menjadi populer di industri web sebagai suatu cara untuk menyebarkan aplikasi web . PHP
umumnya digunakan sebagai P dalam berkas ini bersama Linux , Apache dan
MySQL , walaupun P juga bisa merujuk ke Python , Perl , atau campuran
dari ketiganya. Paket
serupa juga tersedia untuk Windows dan OS X , kemudian disebut WAMP dan
MAMP , dengan huruf pertama berdiri untuk sistem operasi masing-masing.
Meskipun
kedua PHP dan Apache disediakan sebagai bagian dari Mac OS X dasar
menginstal , pengguna paket ini mencari mekanisme instalasi sederhana
yang dapat lebih mudah terus up to date .
Pada
April 2007, lebih dari 20 juta domain Internet memiliki layanan web
host pada server dengan PHP diinstal dan mod_php tercatat sebagai yang
paling populer Apache modul HTTP Server . PHP digunakan sebagai
bahasa pemrograman server -side pada 75 % dari semua website
yang server-side bahasa pemrograman dikenal , dan PHP adalah
yang paling digunakan perangkat lunak open source dalam perusahaan
web sistem manajemen konten yang ditulis dalam PHP termasuk MediaWiki , Joomla , EZ Publish , SilverStripe , WordPress , Drupal , Moodle , user - menghadap porsi Facebook ,dan Digg . keamanan
Sekitar
30 % dari semua kerentanan terdaftar di database National Vulnerability
terkait dengan PHP [ 88 ] Kerentanan sebagian besar disebabkan oleh
tidak mengikuti aturan pemrograman praktek terbaik . . Kelemahan
keamanan teknis dari bahasa itu sendiri atau dari perpustakaan intinya
tidak sering ( 23 pada tahun 2008 , sekitar 1 % dari total ) . Menyadari bahwa programmer membuat kesalahan , beberapa bahasa
termasuk noda memeriksa untuk secara otomatis mendeteksi kekurangan validasi masukan yang menginduksi banyak masalah . Fitur
tersebut sedang dikembangkan untuk PHP , tetapi dimasukkan dalam
rilis yang telah ditolak beberapa kali di masa lalu . Ada patch perlindungan canggih seperti XHTML dan Pengerasan - patch , terutama dirancang untuk web hosting lingkungan . kritik[Icon ] Bagian ini membutuhkan ekspansi . (Agustus 2013)
PHP
telah dikritik karena cluttering berat distribusi utama dengan banyak
fungsi , nama fungsi case-sensitive , antara rincian spesifik
lainnya .PHP juga telah dikritik berat untuk kerentanan keamanan yang fitur bahasa tertentu dapat membuat . Di antaranya , kutipan sihir dan register_globals adalah yang terbaik dikenal . Yang
terakhir ini membuat setiap parameter URL menjadi variabel , yang
sementara membuat pemrograman lebih mudah , bisa membuat kerentanan
keamanan yang serius karena memungkinkan penyerang untuk menetapkan
nilai variabel setiap dan mengganggu eksekusi script .
Hal
ini terasa PHP mengganggu produktivitas karena kurangnya bahasa desain
memperkenalkan perilaku tak terduga , fungsi konsisten penamaan dan
penggunaan parameter , ketergantungan pada konstruksi baru bekerja
sekitar tingkat yang lebih rendah kebiasaan berbahasa , pengenalan
konstruksi baru dengan perilaku serpihan , dan hilang atau tidak
konsisten penanganan error fitur .
0 komentar