[PHP] Giriş

PHP (Hypertext Preprocessor) Nedir?
Rasmus Lerdorf tarafından 1995 yılında geliştirilmeye başlanmış, kolay öğrenilebilen, açık kaynak kodlu bir betik dilidir.

Ne için kullanılır?
Sunucu taraflı kodlama (Server-side scripting) ve konsol uygulamaları için kullanılır. (PHP-GTK ile masaüstü uygulama yapmak mümkündür ama yapmasanız daha iyi olacağından dikkatimizi dağıtmayalım.)

Topluluk bakımından oldukça geniş bir kitleye sahiptir. PHP ile geliştirilen projelere Wikipedia, Facebook ve WordPress örnek verebiliriz.

PHP istemci (client) değil sunucu tarafında yürütülmektedir. Yani kaynak kodlarınız istemci tarafında görünmez, istemciye yalnızca kodunuzun çalışması ile üretilen çıktı sunulur. Bu çıktı istediğiniz bir türde olabilir. İstemciye doğrudan kaynak ya da derlenmesi için bir kod sunmadığımız bu gibi diller işin arka tarafında yer aldığından backend kategorisine girmektedir.

Her işletim sisteminde çalışır mı?
PHP neredeyse tüm büyük işletim sistemlerinde çalışabilir. Bu nedenle işletim sistemleri ile uyumludur, dilediğiniz işletim sisteminde çalıştırabilirsiniz diyebiliriz.

Derlenir mi?
PHP bir betik dili olduğundan derlenmez. (Bunun artı ve eksi yönleri vardır fakat efsaneye göre PHP8 ile birlikte JIT desteği gelecek ve bununla birlikte artı yönler ağır basar hale gelecektir.) Yazdığımız kodlar PHP derleyicisi tarafından okunup anlamlandıran ve makinanın anlayacağı dile (Assembly) çeviren bir yorumlayıcıdır.

İçerisine HTML gömebilir miyiz?
İçerisine HTML gömülebilir, fakat güncel durumda PHP’nin içerisine HTML gömülmesi hoş karşılanmaz. Yani yapabiliriz ama zorunda kalmadıkça yapmamalıyız 🙂 Bunun yerine HTML üreten Twig, Smart, Volt, Blade vb. şablon motorlarları (template engines) kullanmalıyız. Bu vb. en iyi uygulamalar (best practices) üzerine uzun uzun konuşuyor olacağız o nedenle şimdilik bu konuyu geçebiliriz.

Hangi programlama türlerini destekler?
Prosedürel ve nesne tabanlı programlama (OOP) desteklemektedir.

Serverless mimarileri destekler mi?
AWS Lambda servisi gibi serverless mimarilerde PHP desteklenmektedir. Yani bulutta kullanım vs. noktasında önümüzde bir engel yoktur.

Modüller ile genişletilebilir mi?
Modül desteği vardır ve zengindir. İhtiyaç duyacağınız olası tüm konularda modül bulabilirsiniz. Eğer PHP için aradığınız özel bir modül varsa ve bulamadıysanız C ile hazırlayıp FFI (Foreign Function Interface) ile kullanabilirsiniz.

Paket yönetim imkanı var mı?
Paket (bağımlılık) yöneticisi olarak Composer ve PEAR kullanılır. Paket ve bağımlılık yönetimi ile ilgili daha fazla bilgiyi halilsafakkilic.com/package-and-dependency-manager sayfasında bulabilirsiniz.


Artık PHP ile ilgili genel bilgilere sahip olduğumuza göre kod yazmaya başlayabiliriz. Zaten daha ayrıntılı bilgiyi anlatımlar içerisinde ediniyor olacağız.

Unutmayın; herhangi bir yazılım dilini öğrenmeye başlamadan, öncelikle programlama temelleri sonrasında değişkenler, koşullar, döngüler vs. kavramlar hakkında bilgi sahibi olmanız gerekir. Bu bilgileri edinmediğiniz sürece anlatılanlar, okuduklarınız ve inceleyeceğiniz örneklerde yapbozun bazı parçalarına sahip olmadığınızdan konuları tam anlamıyla kavrayamayabilir ya da (en kötüsü) hatalı kavrayabilirsiniz. Bu hatırlatmayı yaptıktan sonra hazırsak artık öğrenmeye başlayabiliriz 🙂

> Sonraki Eğitim: Söz Dizimi (Syntax) <