Neler yeni
Metin2 Support

Metin2 Dünyasına Hoş Geldiniz! Yeni bir maceraya adım atın ve topluluğumuza katılın. Sorularınızı sormak, deneyimlerinizi paylaşmak ve diğer oyuncularla iletişim kurmak için hemen kaydolun. Kayıt olun, etkileşimde bulunun ve Metin2 dünyasındaki serüveninizi daha da özel hale getirin. Birlikte oynamak için sabırsızlanıyoruz!

PHP Başlangıç Rehberi

roq

New member
Katılım
5 Haz 2025
Mesajlar
15
Tepkime puanı
2
Puanları
3

PHP Başlangıç Rehberi​

PHP, web geliştirme dünyasında uzun yıllardır kullanılan en yaygın sunucu taraflı programlama dillerinden biridir.

Özellikle:

  • WordPress
  • WooCommerce
  • Forum sistemleri
  • Yönetim panelleri
  • Üyelik sistemleri
  • API servisleri
gibi birçok web uygulamasının temelinde PHP bulunur.

HTML ve CSS öğrendikten sonra dinamik web sitesi geliştirmek isteyenler için PHP oldukça mantıklı bir sonraki adımdır.

PHP Nedir?​

PHP, sunucu tarafında çalışan bir programlama dilidir.

Kullanıcı bir web sayfasını açtığında PHP kodları tarayıcıda değil:

Sunucu üzerinde

çalışır.

Sunucu sonucu işler ve kullanıcıya genellikle HTML çıktısı gönderir.

PHP Ne İşe Yarar?​

PHP ile:

  • Kullanıcı girişi
  • Üyelik sistemi
  • Form işlemleri
  • Veritabanı bağlantısı
  • Ürün yönetimi
  • Sipariş sistemi
  • Yönetim paneli
  • API
gibi dinamik işlemler yapılabilir.

PHP ile HTML Arasındaki Fark​

HTML yalnızca sayfanın yapısını oluşturur.

PHP ise sayfanın dinamik çalışmasını sağlar.

Örneğin HTML ile:

Hoş Geldiniz

yazabilirsiniz.

PHP ile ise giriş yapan kullanıcıya göre:

Hoş Geldiniz Ahmet

gibi dinamik içerik oluşturulabilir.

PHP ile CSS Aynı Şey mi?​

Hayır.

PHP​

Sunucu tarafında işlem yapar.

CSS​

Sayfanın görünümünü belirler.

HTML​

Sayfanın yapısını oluşturur.

Bu üç teknoloji farklı görevlerde kullanılır.

PHP ile JavaScript Arasındaki Fark​

PHP genellikle sunucu tarafında çalışır.

JavaScript ise çoğunlukla tarayıcı tarafında çalışır.

Örneğin:

PHP​

  • Veritabanından veri çeker
  • Kullanıcı doğrular
  • Sipariş oluşturur

JavaScript​

  • Menü açar
  • Form kontrolü yapar
  • Sayfayı dinamik hale getirir
Modern web projelerinde ikisi birlikte kullanılabilir.

PHP Öğrenmeden Önce Neler Bilinmeli?​

Başlangıç için şu bilgiler faydalıdır:

  • HTML
  • Temel CSS
  • Form mantığı
  • Dosya ve klasör yapısı
JavaScript bilmek zorunlu değildir.

Captura de pantalla de 2019 09 07 04 06 35

PHP Kurmak Gerekir mi?​

Evet.

PHP kodlarının çalışması için PHP destekleyen bir ortam gerekir.

Bu ortam:

  • Localhost
  • Hosting
  • VDS/VPS
  • Linux sunucu
olabilir.

Localhost Nedir?​

Kendi bilgisayarınızı geçici olarak web sunucusu gibi kullanmanızı sağlar.

PHP öğrenirken canlı hosting kullanmadan bilgisayar üzerinde deneme yapılabilir.

Localhost İçin Hangi Programlar Kullanılabilir?​

Yaygın geliştirme ortamları:

  • XAMPP
  • Laragon
  • MAMP
  • Docker tabanlı ortamlar
olabilir.

Yeni başlayanlar için kolay kurulum sunan araçlar tercih edilebilir.

XAMPP Nedir?​

Bilgisayarda:

  • Apache
  • PHP
  • MariaDB
  • phpMyAdmin
gibi bileşenleri birlikte kurmayı kolaylaştırır.

Özellikle PHP öğrenmeye başlayanlar tarafından sık kullanılır.

Laragon Nedir?​

Windows üzerinde web geliştirme ortamı oluşturmayı kolaylaştıran araçlardan biridir.

PHP projelerini hızlı şekilde çalıştırmak için kullanılabilir.

Linux Sunucuda PHP​

Linux sunucularda PHP:

  • Apache
  • Nginx
  • LiteSpeed
gibi web sunucularıyla birlikte kullanılabilir.

Profesyonel hosting ortamlarında PHP-FPM veya benzeri çalışma yapıları tercih edilebilir.

PHP Dosya Uzantısı​

PHP dosyalarının uzantısı genellikle:

.php

şeklindedir.

Örneğin:

  • index.php
  • login.php
  • register.php
  • contact.php
gibi dosyalar oluşturulabilir.

index.php Nedir?​

Birçok PHP projesinde ana giriş dosyalarından biri olabilir.

Web sunucusu bir klasöre girildiğinde index.php dosyasını varsayılan sayfa olarak çalıştırabilir.

PHP Kodları Tarayıcıda Görünür mü?​

Normal şartlarda hayır.

PHP kodu sunucuda çalıştırılır.

Tarayıcıya yalnızca oluşturulan çıktı gönderilir.

Bu nedenle PHP dosyasının kaynak kodu doğrudan kullanıcıya gösterilmez.

Sunucu PHP'yi İşlemezse Ne Olur?​

Web sunucusu yanlış yapılandırılmışsa PHP dosyası çalışmayabilir.

Bazı durumlarda dosya:

  • İndirilebilir
  • Düz metin olarak görüntülenebilir
  • Hata verebilir
Bu ciddi güvenlik problemi oluşturabilir.

PHP Öğrenirken İlk Konu Ne Olmalı?​

İlk olarak:

  • Değişken
  • Veri türleri
  • Koşullar
  • Döngüler
  • Fonksiyonlar
öğrenilmelidir.

Bunlar programlamanın temel yapı taşlarıdır.

Değişken Nedir?​

Program içerisinde veri tutmak için kullanılan yapıdır.

Örneğin:

  • Kullanıcı adı
  • Fiyat
  • Yaş
  • E-posta adresi
bir değişkende tutulabilir.

Değişkenler Neden Önemlidir?​

Dinamik uygulamalarda bilgiler sürekli değişir.

Örneğin bir ürünün fiyatı veya giriş yapan kullanıcının adı sabit değildir.

Bu tür veriler değişkenler üzerinden yönetilir.

Veri Türleri​

PHP farklı veri türlerini destekler.

Temel olarak:

  • String
  • Integer
  • Float
  • Boolean
  • Array
  • Object
  • Null
gibi türler bulunur.

String Nedir?​

Metin verisidir.

Örneğin:

  • Kullanıcı adı
  • Ürün adı
  • E-posta
string olarak düşünülebilir.

Integer Nedir?​

Tam sayıdır.

Örneğin:

  • 1
  • 10
  • 500
gibi değerler integer olabilir.

Float Nedir?​

Ondalıklı sayıları temsil eder.

Örneğin fiyat veya ölçüm değerlerinde kullanılabilir.

Boolean Nedir?​

İki temel değerden birini temsil eder:

  • Doğru
  • Yanlış
Örneğin:

Kullanıcı giriş yaptı mı?

durumu Boolean ile tutulabilir.

Array Nedir?​

Birden fazla veriyi tek yapı altında tutmaya yardımcı olur.

Örneğin:

  • Ürünler
  • Kullanıcılar
  • Kategoriler
bir dizi içerisinde tutulabilir.

Associative Array Nedir?​

Verilerin anahtar ve değer mantığıyla tutulduğu dizi türüdür.

Örneğin kullanıcı için:

  • İsim
  • E-posta
  • Yaş
gibi alanlar aynı yapı içerisinde bulunabilir.

Koşul Nedir?​

Programın belirli duruma göre farklı işlem yapmasını sağlar.

Örneğin:

Kullanıcı giriş yaptıysa paneli göster.

Giriş yapmadıysa login sayfasını göster.


Bu mantık koşullarla oluşturulur.

If Mantığı​

Programlama öğrenirken en temel yapılardan biridir.

Bir şart kontrol edilir.

Şart doğruysa belirli işlem yapılır.

Else Mantığı​

Şart doğru değilse alternatif işlemin çalışmasını sağlar.

Örneğin:

  • Şifre doğruysa giriş yap
  • Yanlışsa hata göster

Elseif Mantığı​

Birden fazla şartın sırayla kontrol edilmesini sağlar.

Örneğin kullanıcı:

  • Admin
  • Editör
  • Normal üye
olabilir.

Her rol için farklı işlem yapılabilir.

Karşılaştırma Operatörleri​

İki değeri karşılaştırmak için kullanılır.

Örneğin:

  • Eşit mi?
  • Büyük mü?
  • Küçük mü?
  • Farklı mı?
gibi kontroller yapılabilir.

Mantıksal Operatörler​

Birden fazla şartı birlikte değerlendirmek için kullanılır.

Örneğin:

Kullanıcı giriş yaptı ve yönetici yetkisi var

gibi iki koşul birlikte kontrol edilebilir.

Döngü Nedir?​

Aynı işlemi birden fazla kez çalıştırmayı sağlar.

Örneğin veritabanından 100 ürün geldiğinde her ürün için ayrı ayrı manuel işlem yapmak yerine döngü kullanılabilir.

For Döngüsü​

Belirli sayıda tekrar yapılacak işlemlerde kullanılabilir.

While Döngüsü​

Belirli koşul doğru olduğu sürece çalışabilir.

Yanlış yapılandırılırsa sonsuz döngü oluşabilir.

Foreach Döngüsü​

Array içerisindeki elemanlar üzerinde işlem yapmak için oldukça kullanışlıdır.

PHP projelerinde sık kullanılır.

Sonsuz Döngü Nedir?​

Döngünün bitmesini sağlayacak koşul hiçbir zaman gerçekleşmezse işlem sürekli devam edebilir.

Bu durum:

  • CPU kullanımını artırabilir
  • Uygulamayı kilitleyebilir
Bu nedenle döngü koşulları dikkatli hazırlanmalıdır.

Fonksiyon Nedir?​

Belirli bir görevi gerçekleştiren tekrar kullanılabilir yapı olarak düşünülebilir.

Örneğin:

  • Fiyat hesapla
  • Kullanıcı kontrol et
  • E-posta doğrula
gibi işlemler fonksiyon haline getirilebilir.

Fonksiyon Kullanmanın Avantajı​

Aynı işlemi farklı yerlerde tekrar yazmak gerekmez.

Kod:

  • Daha düzenli
  • Daha okunabilir
  • Daha kolay yönetilebilir
hale gelir.

Parametre Nedir?​

Fonksiyona dışarıdan verilen bilgidir.

Örneğin hesaplama yapan fonksiyona fiyat ve vergi oranı gönderilebilir.

Return Nedir?​

Fonksiyonun işlem sonucunu geri döndürmesini sağlar.

Bu değer daha sonra başka işlemde kullanılabilir.

Scope Nedir?​

Bir değişkenin kodun hangi bölümünden erişilebilir olduğunu belirler.

Özellikle:

  • Local
  • Global
değişken kavramlarını öğrenmek faydalıdır.

PHP'de Form İşlemleri​

PHP'nin en yaygın kullanım alanlarından biri HTML formlarını işlemektir.

Örneğin kullanıcı:

  • Ad
  • E-posta
  • Mesaj
girer.

Form gönderildiğinde PHP bu bilgileri işleyebilir.

GET ve POST Nedir?​

Web formlarında çok önemli iki yöntemdir.

GET​

Veriler URL üzerinden taşınabilir.

POST​

Veriler HTTP isteğinin gövdesinde gönderilir.

Kullanım amaçları farklıdır.

GET Ne Zaman Kullanılır?​

Genellikle:

  • Arama
  • Filtre
  • Sayfalama
gibi işlemlerde kullanılabilir.

Örneğin bir ürün kategorisi veya sayfa numarası URL'de gösterilebilir.

POST Ne Zaman Kullanılır?​

Genellikle:

  • Login
  • Kayıt
  • Form gönderme
  • Veri oluşturma
işlemlerinde kullanılır.

Ancak POST kullanmak veriyi otomatik olarak güvenli hale getirmez.

Form Verilerine Güvenilir mi?​

Hayır.

Kullanıcıdan gelen her veri potansiyel olarak zararlı kabul edilmelidir.

Bu PHP güvenliğinin en önemli kurallarından biridir.

Validation Nedir?​

Kullanıcıdan gelen verinin beklenen formatta olup olmadığını kontrol etmektir.

Örneğin:

  • E-posta doğru formatta mı?
  • Şifre yeterince uzun mu?
  • Yaş sayı mı?
kontrol edilebilir.

Sanitization Nedir?​

Kullanıcıdan gelen veriyi kullanım amacına uygun şekilde temizleme veya normalize etme işlemidir.

Validation ile aynı şey değildir.

İkisi farklı amaçlara hizmet eder.

Kullanıcı Verisini Direkt Veritabanına Yazmak​

Doğru değildir.

Öncelikle:

  • Doğrulama
  • Yetkilendirme
  • Güvenli veritabanı işlemleri
uygulanmalıdır.

PHP ve Veritabanı​

PHP çoğunlukla veritabanı ile birlikte kullanılır.

Yaygın seçenekler:

  • MySQL
  • MariaDB
  • PostgreSQL
  • SQLite
olabilir.

MySQL Nedir?​

Web uygulamalarında yaygın kullanılan ilişkisel veritabanı sistemlerinden biridir.

PHP ile oldukça sık birlikte kullanılır.

MariaDB Nedir?​

MySQL ile büyük ölçüde uyumlu olan açık kaynaklı veritabanı sistemlerinden biridir.

Birçok Linux ve hosting ortamında yaygın olarak kullanılır.

phpMyAdmin Nedir?​

MySQL ve MariaDB veritabanlarını web arayüzünden yönetmeye yardımcı olan araçtır.

Özellikle yeni başlayanlar için faydalıdır.

Veritabanında Neler Saklanabilir?​

Örneğin:

  • Kullanıcı hesapları
  • Ürünler
  • Siparişler
  • Yazılar
  • Yorumlar
  • Ayarlar
veritabanında saklanabilir.

Tablo Nedir?​

Veritabanındaki belirli veri grubudur.

Örneğin:

  • users
  • products
  • orders
gibi tablolar bulunabilir.

Satır Nedir?​

Tablodaki tek bir kaydı temsil eder.

Örneğin tek bir kullanıcı bir satır olabilir.

Sütun Nedir?​

Kayıt içerisindeki belirli alanı temsil eder.

Örneğin kullanıcı tablosunda:

  • İsim
  • E-posta
  • Şifre
sütunları bulunabilir.

Primary Key Nedir?​

Tablodaki kayıtları benzersiz şekilde tanımlamaya yardımcı olan alandır.

Genellikle ID benzeri bir alan kullanılır.

SQL Öğrenmek Gerekir mi?​

PHP ile veritabanı tabanlı uygulama geliştirmek istiyorsanız temel SQL öğrenmek oldukça faydalıdır.

Özellikle:

  • Veri ekleme
  • Veri okuma
  • Güncelleme
  • Silme
  • Filtreleme
işlemlerini öğrenmek gerekir.

CRUD Nedir?​

Veritabanı uygulamalarında sık kullanılan bir kavramdır.

Açılımı:

  • Create
  • Read
  • Update
  • Delete
şeklindedir.

Yani:

  • Veri oluşturma
  • Okuma
  • Güncelleme
  • Silme
işlemlerini ifade eder.

İlk PHP Veritabanı Projesi​

Basit bir:

Not uygulaması

hazırlanabilir.

Kullanıcı:

  • Not ekler
  • Notları görüntüler
  • Notu düzenler
  • Notu siler
Bu proje CRUD mantığını öğrenmek için oldukça uygundur.

PDO Nedir?​

PHP'nin farklı veritabanlarıyla çalışmak için sunduğu veritabanı erişim yöntemlerinden biridir.

Modern PHP projelerinde oldukça yaygın kullanılır.

MySQLi Nedir?​

MySQL veritabanı ile çalışmak için kullanılabilecek başka bir PHP arayüzüdür.

Hem PDO hem MySQLi kullanılabilir.

Hangisi Öğrenilmeli?​

Yeni başlayan biri için PDO öğrenmek mantıklı olabilir.

Özellikle prepared statement ve farklı veritabanlarıyla çalışma mantığını öğrenmek açısından faydalıdır.

Prepared Statement Nedir?​

Veritabanı sorgularında kullanıcı verisini sorgu yapısından ayırmaya yardımcı olur.

SQL Injection riskini azaltmak için en önemli yöntemlerden biridir.

SQL Injection Nedir?​

Kullanıcıdan gelen zararlı verilerin veritabanı sorgusunu değiştirmeye çalıştığı saldırı türüdür.

Yanlış hazırlanmış login ve arama sistemlerinde görülebilir.

Kullanıcı Verisini Sorguya Direkt Eklemek​

Ciddi güvenlik riskidir.

Prepared statement kullanılmalıdır.

XSS Nedir?​

Cross-Site Scripting saldırısıdır.

Kullanıcıdan gelen zararlı içeriğin web sayfasında çalıştırılmasına neden olabilir.

Özellikle kullanıcı içerikleri ekrana yazdırılırken dikkat edilmelidir.

Çıktı Güvenliği​

Kullanıcı verisi ekranda gösterilirken bulunduğu bağlama uygun şekilde escape edilmelidir.

Bu, XSS riskini azaltır.

CSRF Nedir?​

Kullanıcının farkında olmadan giriş yaptığı bir sistemde işlem yaptırılmaya çalışıldığı saldırı türüdür.

Örneğin kullanıcı başka bir siteyi ziyaret ettiğinde onun oturumu kullanılarak işlem yapılması hedeflenebilir.

CSRF Koruması​

Özellikle:

  • Şifre değiştirme
  • Kullanıcı silme
  • Sipariş oluşturma
gibi işlemlerde doğrulama token'ları kullanılabilir.

Session Nedir?​

Kullanıcının site içerisinde oturum bilgisini tutmaya yardımcı olur.

Örneğin kullanıcı login olduğunda:

Bu kullanıcı giriş yaptı

bilgisi session içerisinde saklanabilir.

Cookie Nedir?​

Tarayıcı tarafında küçük bilgiler saklamaya yardımcı olur.

Örneğin:

  • Oturum tanımlayıcı
  • Dil tercihi
  • Bazı kullanıcı ayarları
cookie üzerinden yönetilebilir.

Session ve Cookie Aynı mı?​

Hayır.

Cookie tarayıcıda saklanır.

Session verisi genellikle sunucu tarafında tutulur ve tarayıcıda session'ı tanımlayan bir bilgi bulunabilir.

Kullanıcı Giriş Sistemi​

PHP öğrenirken yapılabilecek önemli projelerden biridir.

Temel olarak:

  • Kullanıcı kayıt
  • Login
  • Logout
  • Session
  • Şifre doğrulama
konuları öğrenilir.

Şifreler Veritabanında Düz Metin Saklanır mı?​

Kesinlikle hayır.

Kullanıcı şifreleri güvenli parola hash fonksiyonları kullanılarak saklanmalıdır.

Hash Nedir?​

Veriyi tek yönlü olarak farklı değere dönüştüren işlemdir.

Parola doğrulamasında gerçek parola saklanmadan kontrol yapılmasına yardımcı olur.

Encryption ile Hash Aynı mı?​

Hayır.

Encryption​

Doğru anahtarla geri çözülebilir.

Hash​

Parola saklama gibi senaryolarda geri döndürülmesi amaçlanmayan tek yönlü işlemdir.

MD5 ile Parola Saklanır mı?​

Modern parola saklama için kullanılmamalıdır.

PHP'nin parola hash işlemleri için sunduğu modern yöntemler tercih edilmelidir.

Session Güvenliği​

Login sistemi geliştirirken:

  • Session ID
  • HTTPS
  • Oturum süresi
  • Yetki kontrolü
önemlidir.

Authentication Nedir?​

Kullanıcının kim olduğunu doğrulamaktır.

Örneğin:

Bu kullanıcı gerçekten Ahmet mi?

sorusunu cevaplar.

Authorization Nedir?​

Doğrulanmış kullanıcının ne yapmaya yetkili olduğunu belirler.

Örneğin:

Ahmet admin paneline girebilir mi?

sorusunu cevaplar.

Authentication ve Authorization Farkı​

Basit şekilde:

Authentication = Sen kimsin?

Authorization = Neye izinlisin?


Admin Paneli Güvenliği​

Sadece kullanıcının login olması yeterli değildir.

Her sayfada gerekli yetki kontrol edilmelidir.

Bir kullanıcı URL'yi biliyor diye yönetim ekranına erişememelidir.

PHP Include Mantığı​

Bir PHP dosyasındaki ortak içerik başka dosyalarda kullanılabilir.

Örneğin:

  • Header
  • Footer
  • Veritabanı bağlantısı
  • Fonksiyonlar
tek bir yerde tutulabilir.

Kod Tekrarını Azaltmak​

Aynı kodu birçok dosyada kopyalamak yerine ortak yapılar kullanılmalıdır.

Bu bakım işlemlerini kolaylaştırır.

Require Mantığı​

Gerekli bir dosyanın projeye dahil edilmesini sağlar.

Include ve require arasında hata durumundaki davranış açısından farklar bulunur.

Bu konu temel PHP sonrasında öğrenilebilir.

PHP Error Reporting​

Geliştirme sırasında hataları görmek önemlidir.

Ancak canlı sistemde kullanıcıya:

  • Dosya yolları
  • Veritabanı detayları
  • Teknik hata mesajları
göstermek güvenlik açısından doğru değildir.

Development ve Production Farkı​

Development​

Hataların ayrıntılı görülmesi faydalıdır.

Production​

Kullanıcıya sade hata gösterilir, teknik ayrıntılar loglara yazılır.

PHP Logları​

Uygulamada oluşan:

  • Warning
  • Error
  • Fatal error
kayıtları loglardan incelenebilir.

Sorun çözmede oldukça önemlidir.

Fatal Error Nedir?​

PHP'nin işlemi devam ettiremeyeceği ciddi hata türüdür.

Bu durumda sayfa tamamen çalışmayabilir.

Warning Nedir?​

Programın çalışmasına devam edebildiği ancak bir problem olduğunu belirten uyarıdır.

Her warning göz ardı edilmemelidir.

Notice Nedir?​

Daha düşük seviyeli programlama problemlerini gösterebilir.

Kod kalitesi açısından değerlendirilmelidir.

PHP Sürümü Neden Önemli?​

Yeni PHP sürümleri genellikle:

  • Daha iyi performans
  • Yeni özellikler
  • Güvenlik düzeltmeleri
sunabilir.

Ancak eski projeler yeni sürümle uyumsuz olabilir.

PHP Güncellerken Dikkat​

Özellikle WordPress veya özel yazılımda:

  • Tema
  • Eklenti
  • Kod
uyumluluğu kontrol edilmelidir.

Canlı sisteme geçmeden önce staging ortamında test yapmak faydalıdır.

PHP Extension Nedir?​

PHP'ye ek özellik sağlayan modüllerdir.

Örneğin uygulamalar:

  • Veritabanı
  • Görsel işleme
  • XML
  • ZIP
gibi işlemler için belirli extension'lara ihtiyaç duyabilir.

Extension Eksikse Ne Olur?​

Uygulama:

  • Hata verebilir
  • Bazı özellikleri çalıştırmayabilir
Bu nedenle projenin gereksinimleri kontrol edilmelidir.

php.ini Nedir?​

PHP'nin birçok çalışma ayarının bulunduğu temel yapılandırma dosyalarından biridir.

Burada:

  • Memory limit
  • Upload limiti
  • Hata gösterimi
  • Maksimum işlem süresi
gibi ayarlar yönetilebilir.

Memory Limit Nedir?​

Bir PHP işleminin kullanabileceği maksimum bellek miktarıdır.

Çok düşükse uygulama memory hatası verebilir.

Çok yüksek ayarlamak ise her problemi çözmez.

Upload Limit​

PHP üzerinden yüklenebilecek dosyanın boyut sınırını etkileyebilir.

Özellikle:

  • WordPress
  • Dosya yükleme sistemi
  • Import
işlemlerinde önemlidir.

Execution Time​

PHP script'inin çalışabileceği maksimum süreyi sınırlayabilir.

Çok ağır işlemler timeout yaşayabilir.

Ancak süreyi sınırsız yapmak yerine işlem optimize edilmelidir.

PHP-FPM Nedir?​

PHP işlemlerinin worker havuzları üzerinden yönetilmesini sağlayan yaygın çalışma yöntemidir.

Özellikle:

  • Nginx
  • Apache
  • Hosting sistemleri
ile kullanılabilir.

OPcache Nedir?​

PHP kodlarının derlenmiş halini bellekte tutarak tekrar tekrar derlenmesini azaltır.

Canlı PHP sitelerinde performans açısından önemli olabilir.

PHP Performansında Veritabanı​

Birçok PHP uygulamasında yavaşlığın asıl nedeni PHP değil veritabanı sorguları olabilir.

Bu nedenle:

  • Yavaş sorgular
  • Gereksiz sorgular
  • Eksik index
kontrol edilmelidir.

PHP ile API Nedir?​

PHP başka uygulamalara veri sağlayan API servisleri oluşturmak için kullanılabilir.

Örneğin mobil uygulama PHP API üzerinden:

  • Kullanıcı bilgisi
  • Ürün
  • Sipariş
verisi alabilir.

JSON Nedir?​

Web API'lerinde veri alışverişi için yaygın kullanılan formatlardan biridir.

PHP ile JSON verisi:

  • Oluşturulabilir
  • Okunabilir

REST API Nedir?​

Web üzerinden belirli kaynaklara standart HTTP yöntemleriyle erişmeyi sağlayan yaygın API yaklaşımıdır.

PHP ile REST API geliştirilebilir.

OOP Nedir?​

Object-Oriented Programming yani nesne yönelimli programlamadır.

Kodları:

  • Class
  • Object
  • Method
  • Property
mantığıyla düzenlemeye yardımcı olur.

PHP Başlangıcında OOP Öğrenilmeli mi?​

İlk gün değil.

Önce:

  • Değişken
  • Koşul
  • Döngü
  • Fonksiyon
  • Array
konuları öğrenilmelidir.

Daha sonra OOP'ye geçmek daha kolay olur.

Class Nedir?​

Benzer özellik ve davranışları bir yapı altında tanımlamayı sağlar.

Örneğin:

User

isimli bir sınıf:

  • Kullanıcı adı
  • E-posta
  • Login işlemi
gibi özelliklere sahip olabilir.

Object Nedir?​

Bir class üzerinden oluşturulan gerçek örnektir.

OOP mantığının temel kavramlarından biridir.

Method Nedir?​

Class içerisinde bulunan fonksiyona benzer davranış yapısıdır.

Property Nedir?​

Class içerisindeki veri veya özelliktir.

Encapsulation Nedir?​

Bir nesnenin iç yapısını kontrollü şekilde dışarı açma yaklaşımıdır.

Büyük projelerde kodun daha güvenli ve düzenli yönetilmesine yardımcı olur.

Inheritance Nedir?​

Bir class'ın başka class'ın özelliklerini devralabilmesini sağlar.

Kod tekrarını azaltabilir.

Interface Nedir?​

Class'ların hangi davranışları sağlaması gerektiğini tanımlamaya yardımcı olur.

Daha ileri PHP konularındandır.

Namespace Nedir?​

Büyük projelerde class isimlerinin çakışmasını önlemeye yardımcı olur.

Özellikle framework ve paket sistemlerinde yaygın kullanılır.

Composer Nedir?​

PHP'nin paket ve bağımlılık yönetim aracıdır.

Modern PHP geliştirmede çok önemlidir.

Composer Ne İşe Yarar?​

Projeye hazır kütüphanelerin düzenli şekilde eklenmesini ve sürümlerinin yönetilmesini sağlar.

Composer Başlangıçta Öğrenilmeli mi?​

Temel PHP mantığı öğrenildikten sonra mutlaka öğrenilmelidir.

Modern PHP projelerinin önemli bir parçasıdır.

Framework Nedir?​

Geliştirme sürecini düzenleyen hazır yapı ve araçlar sunar.

PHP tarafında örnek olarak:

  • Laravel
  • Symfony
gibi framework'ler bulunur.

Laravel Nedir?​

Modern PHP geliştirmede oldukça popüler framework'lerden biridir.

Şunlar için hazır yapılar sunabilir:

  • Routing
  • Database
  • Authentication
  • Validation
  • Queue
  • API

PHP Öğrenmeden Laravel Öğrenilir mi?​

Doğrudan başlamak mümkün olsa da tavsiye edilmez.

Önce temel PHP öğrenilirse Laravel içerisindeki yapıların ne yaptığı daha kolay anlaşılır.

WordPress PHP ile mi Yazıldı?​

Büyük ölçüde evet.

WordPress ekosisteminde PHP çok önemli bir yere sahiptir.

Tema ve eklenti geliştirmek isteyenlerin PHP bilmesi büyük avantaj sağlar.

WordPress İçin Ne Kadar PHP Bilmek Gerekir?​

Başlangıç için:

  • Değişkenler
  • Diziler
  • Koşullar
  • Döngüler
  • Fonksiyonlar
iyi bilinmelidir.

Daha sonra WordPress'in kendi:

  • Hook
  • Function
  • Template
yapıları öğrenilebilir.

Php nedir 780x470 1

WooCommerce Geliştirmede PHP​

WooCommerce da WordPress üzerinde çalıştığı için PHP bilgisi oldukça faydalıdır.

Örneğin:

  • Özel fiyatlandırma
  • Checkout düzenlemeleri
  • Sipariş işlemleri
gibi özelleştirmelerde kullanılabilir.

PHP Öğrenirken İlk Proje Ne Olmalı?​

Çok büyük bir proje seçilmemelidir.

İlk olarak basit:

Kişisel bilgi formu

hazırlanabilir.

Kullanıcıdan bilgi alınır ve ekranda gösterilir.

İkinci Proje: Hesap Makinesi​

Temel:

  • Değişken
  • Koşul
  • Form
mantığını geliştirmek için kullanılabilir.

Üçüncü Proje: Basit Login Sistemi​

Burada:

  • Form
  • Session
  • Veritabanı
  • Şifre hash
konuları öğrenilebilir.

Dördüncü Proje: Not Uygulaması​

Kullanıcı:

  • Not ekler
  • Listeler
  • Düzenler
  • Siler
Bu proje CRUD mantığını öğretir.

Beşinci Proje: Basit Blog​

İçerisinde:

  • Admin girişi
  • Yazı ekleme
  • Yazı düzenleme
  • Yazı silme
  • Kategori
bulunabilir.

Altıncı Proje: Mini E-Ticaret​

Temel seviyede:

  • Ürünler
  • Kategoriler
  • Sepet
  • Kullanıcılar
oluşturulabilir.

Gerçek ödeme entegrasyonuna başlangıçta gerek yoktur.

PHP Öğrenme Sırası​

Yeni başlayanlar için mantıklı sıra:

  1. PHP'nin çalışma mantığı
  2. Değişkenler
  3. Veri türleri
  4. Operatörler
  5. Koşullar
  6. Döngüler
  7. Array
  8. Fonksiyonlar
  9. Form işlemleri
  10. GET ve POST
  11. Session ve Cookie
  12. Veritabanı
  13. SQL
  14. PDO
  15. CRUD
  16. Güvenlik
  17. OOP
  18. Composer
  19. API
  20. Framework

İlk Aşamada Öğrenilmemesi Gerekenler​

Daha ilk gün:

  • Laravel
  • Design pattern
  • Microservice
  • Kubernetes
  • Çok karmaşık OOP
gibi konulara geçmek gereksizdir.

Önce temel PHP mantığı oturmalıdır.

PHP Öğrenirken Sadece Video İzlemek​

Yeterli değildir.

En iyi yöntem:

İzle → Kendin uygula → Hata al → Çöz

şeklindedir.

Hata Yapmaktan Korkmayın​

Programlama öğrenirken:

  • Syntax hatası
  • Veritabanı hatası
  • Undefined variable
  • Dosya bulunamadı
gibi hatalar çok normaldir.

Hata çözmek öğrenme sürecinin büyük bir parçasıdır.

Hazır Kod Kopyalamak​

Sürekli hazır kod kopyalamak kısa vadede hızlı görünür ancak öğrenmeyi yavaşlatabilir.

Kodu gördükten sonra ne yaptığını anlamaya çalışın.

Daha sonra bakmadan tekrar oluşturun.

PHP Dokümantasyonu Kullanmak​

Bir fonksiyonun nasıl çalıştığını unuttuğunuzda dokümantasyona bakmak normaldir.

Profesyonel geliştiriciler de sürekli dokümantasyon kullanır.

Her fonksiyonu ezberlemek gerekmez.

PHP'de Temiz Kod​

Kod:

  • Anlaşılır isimlere
  • Küçük fonksiyonlara
  • Mantıklı dosya düzenine
sahip olmalıdır.

Çalışıyor olması tek başına iyi kod olduğu anlamına gelmez.

Dosya Yapısı​

Proje büyüdükçe her şeyi tek PHP dosyasında tutmak doğru değildir.

Örneğin:

  • Config
  • Functions
  • Templates
  • Public
  • Assets
gibi bölümlere ayrılabilir.

Veritabanı Bilgisini Her Dosyada Yazmak​

Doğru yaklaşım değildir.

Ortak bağlantı ve yapılandırma dosyası kullanmak daha düzenlidir.

Hassas Bilgiler​

Şunlar public repository içerisinde paylaşılmamalıdır:

  • Veritabanı parolası
  • API key
  • Token
  • SMTP parolası

Git Kullanmak​

PHP projelerinde Git kullanmak oldukça faydalıdır.

Yapılan değişikliklerin geçmişi takip edilebilir.

Hatalı değişikliklerde eski sürümlere dönmek kolaylaşır.

GitHub'a Ne Yüklenmemeli?​

Özellikle:

  • Şifreler
  • Private key
  • .env içerisindeki gizli bilgiler
  • Gerçek müşteri verileri
yüklenmemelidir.

.env Nedir?​

Uygulamanın hassas veya ortama bağlı ayarlarının tutulabildiği dosya yapılarından biridir.

Modern framework'lerde sık kullanılır.

Production'a Kod Atmadan Önce​

Şunlar kontrol edilmelidir:

  • Hatalar
  • Güvenlik
  • Veritabanı
  • Backup
  • Debug ayarları

Debug Mode Canlıda Açık Kalmalı mı?​

Genellikle hayır.

Hata mesajları:

  • Dosya yolu
  • Sunucu bilgisi
  • Veritabanı detayı
gibi hassas bilgiler gösterebilir.

HTTPS Kullanılmalı mı?​

Evet.

Özellikle:

  • Login
  • Kayıt
  • Ödeme
  • Yönetim paneli
gibi alanlarda HTTPS zorunlu kabul edilmelidir.

PHP ve Hosting​

PHP projeleri birçok hosting hizmetinde çalışabilir.

Ancak hostingin:

  • PHP sürümü
  • Extension desteği
  • Veritabanı
  • Memory limit
  • Execution time
projeyle uyumlu olmalıdır.

Paylaşımlı Hosting Yeterli mi?​

Küçük PHP projelerinde evet.

Proje büyüdükçe:

  • VDS
  • VPS
  • Cloud
  • Dedicated
gibi çözümler değerlendirilebilir.

PHP-FPM ve Worker Sayısı​

Yoğun sitelerde aynı anda çalışabilecek PHP process sayısı önemlidir.

Çok düşük worker sayısı istekleri kuyruğa sokabilir.

Çok yüksek worker sayısı ise RAM tüketimini artırabilir.

PHP Sitesi Neden Yavaşlar?​

Muhtemel nedenler:

  • Yavaş SQL sorguları
  • Çok fazla veritabanı sorgusu
  • Ağır PHP işlemleri
  • Yetersiz hosting
  • Cache eksikliği
  • Harici API gecikmesi
olabilir.

Cache Kullanımı​

PHP uygulamalarında:

  • Page cache
  • Object cache
  • OPcache
gibi farklı cache yöntemleri kullanılabilir.

Bunların görevleri birbirinden farklıdır.

Redis PHP ile Kullanılır mı?​

Evet.

Özellikle:

  • Cache
  • Session
  • Queue
gibi alanlarda kullanılabilir.

Queue Nedir?​

Uzun süren işlemlerin kullanıcının isteğini bekletmeden arka planda sırayla işlenmesini sağlayan yapıdır.

Örneğin:

  • E-posta gönderme
  • Rapor oluşturma
  • Görsel işleme
queue üzerinden yapılabilir.

Cron Job ile PHP​

PHP dosyaları belirli zamanlarda otomatik çalıştırılabilir.

Örneğin:

  • Günlük rapor
  • Eski kayıt temizleme
  • Otomatik görev
yapılabilir.

PHP ve Güvenlik​

PHP'nin kendisi otomatik olarak güvensiz değildir.

Asıl risk çoğu zaman:

  • Kötü kod
  • Eski paketler
  • Yanlış yetki
  • Güvensiz kullanıcı girişi
nedeniyle oluşur.

PHP Güvenlik Kontrol Listesi​

  • Kullanıcı verisi doğrulanıyor mu?
  • Prepared statement kullanılıyor mu?
  • Parolalar hash olarak saklanıyor mu?
  • XSS önlemleri uygulanıyor mu?
  • CSRF koruması var mı?
  • Session güvenliği düşünülmüş mü?
  • Yetki kontrolleri yapılıyor mu?
  • Debug production'da kapalı mı?
  • PHP güncel mi?
  • Hassas dosyalar public alanda mı?

PHP Başlangıç Kontrol Listesi​

  • PHP'nin sunucuda çalıştığını biliyor muyum?
  • Değişkenleri anlıyor muyum?
  • Veri türlerini biliyor muyum?
  • Koşul yazabiliyor muyum?
  • Döngü mantığını biliyor muyum?
  • Array kullanabiliyor muyum?
  • Fonksiyon oluşturabiliyor muyum?
  • GET ve POST farkını biliyor muyum?
  • Form verisini işleyebiliyor muyum?
  • Session ve Cookie farkını biliyor muyum?
  • Temel SQL biliyor muyum?
  • PDO mantığını anlıyor muyum?
  • CRUD uygulaması yapabiliyor muyum?
  • Temel güvenlik risklerini biliyor muyum?

30 Günlük Basit PHP Öğrenme Planı​

İlk Hafta​

  • PHP çalışma mantığı
  • Değişkenler
  • Veri türleri
  • Operatörler
  • Koşullar

İkinci Hafta​

  • Döngüler
  • Array
  • Fonksiyonlar
  • Form işlemleri
  • GET ve POST

Üçüncü Hafta​

  • MySQL/MariaDB
  • SQL
  • PDO
  • CRUD

Dördüncü Hafta​

  • Session
  • Login sistemi
  • Şifre güvenliği
  • Temel OOP
  • Küçük proje
Bu süre kişiye göre daha kısa veya daha uzun olabilir.

PHP Öğrenirken Her Gün Ne Kadar Çalışılmalı?​

Düzenli şekilde:

30 dakika – 1 saat

çalışmak başlangıç için yeterli olabilir.

Daha hızlı ilerlemek isteyenler daha uzun süre ayırabilir.

Ancak pratik yapmak izleme süresinden daha önemlidir.

Bir Konuyu Ne Zaman Öğrendim Sayılır?​

Kodu görüp:

Anladım

demek yeterli değildir.

Bakmadan kendi başınıza benzer sistemi oluşturabiliyorsanız gerçekten öğrenmeye başlamışsınız demektir.

PHP Öğrendikten Sonra Ne Öğrenilmeli?​

Temel PHP sonrasında şu sıra mantıklı olabilir:

  1. SQL'i geliştirin.
  2. OOP öğrenin.
  3. Composer öğrenin.
  4. Git kullanın.
  5. REST API öğrenin.
  6. MVC mantığını öğrenin.
  7. Laravel veya başka bir framework'e geçin.
  8. Linux ve web server yönetimini öğrenin.

MVC Nedir?​

Uygulamayı temel olarak farklı sorumluluklara ayıran yazılım mimarisi yaklaşımıdır.

Genellikle:

  • Model
  • View
  • Controller
katmanlarından söz edilir.

Framework öğrenmeden önce temel mantığını bilmek faydalıdır.

PHP Hâlâ Öğrenilir mi?​

Evet.

Özellikle:

  • WordPress
  • WooCommerce
  • Laravel
  • Web uygulamaları
  • Hosting ekosistemi
ile çalışmak isteyenler için PHP hâlâ oldukça önemli bir teknolojidir.

Önemli olan eski ve güvensiz PHP alışkanlıklarını değil modern geliştirme yöntemlerini öğrenmektir.

Yeni Başlayanların En Sık Yaptığı Hatalar​

HTML Bilmeden PHP'ye Geçmek​

Web mantığını anlamayı zorlaştırabilir.

İlk Proje Olarak Büyük Sistem Yapmak​

Örneğin sıfırdan büyük e-ticaret sitesi yapmak başlangıçta gereksiz zordur.

SQL'i Öğrenmemek​

Dinamik web geliştirmede ciddi eksiklik oluşturur.

Parolayı Düz Metin Saklamak​

Ciddi güvenlik hatasıdır.

Kullanıcı Verisine Güvenmek​

SQL Injection ve XSS gibi açıklar oluşturabilir.

Her Şeyi Tek Dosyada Yazmak​

Proje büyüdükçe yönetimi zorlaştırır.

Hataları Gizlemek​

Geliştirme sırasında hata mesajları öğrenme açısından faydalıdır.

Hazır Kodları Anlamadan Kopyalamak​

Uzun vadede gelişimi yavaşlatır.

Başlangıç İçin En İyi Yaklaşım​

İlk hedefiniz büyük bir site yapmak olmamalıdır.

Şu sırayla küçük uygulamalar oluşturabilirsiniz:

  1. Form
  2. Hesap makinesi
  3. Login sistemi
  4. CRUD uygulaması
  5. Basit blog
  6. Mini yönetim paneli
Bu projeleri tamamladıktan sonra gerçek web uygulamalarını anlamak çok daha kolay hale gelir.

Sonuç​

PHP, dinamik web uygulamaları geliştirmek isteyenler için öğrenilebilecek güçlü ve yaygın bir programlama dilidir.

Özellikle:

  • WordPress
  • WooCommerce
  • Yönetim panelleri
  • Üyelik sistemleri
  • API
  • Özel web uygulamaları
alanlarında oldukça kullanışlıdır.

PHP öğrenirken ilk olarak:

  • Değişkenler
  • Veri türleri
  • Koşullar
  • Döngüler
  • Array
  • Fonksiyonlar
  • Form işlemleri
öğrenilmelidir.

Daha sonra:

  • MySQL/MariaDB
  • SQL
  • PDO
  • CRUD
  • Session
  • Güvenlik
  • OOP
  • Composer
konularına geçilebilir.

Temel PHP bilgisi oluşmadan doğrudan Laravel gibi framework'lere geçmek mümkün olsa da uzun vadede işleri anlamayı zorlaştırabilir.

Ayrıca PHP geliştirirken güvenlik başlangıçtan itibaren öğrenilmelidir. Kullanıcı verisine doğrudan güvenmemek, prepared statement kullanmak, parolaları güvenli şekilde saklamak ve doğru yetkilendirme yapmak temel alışkanlıklar arasında olmalıdır.

Kısacası PHP öğrenmenin en sağlıklı yolu temel programlama mantığını öğrenmek, küçük projeler geliştirmek, veritabanı kullanımını kavramak ve güvenlik konularını en başından itibaren çalışma sürecinin bir parçası haline getirmektir.
 

Konuyu görüntüleyenler

  • Üst