- 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
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
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
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ı
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
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
Yeni başlayanlar için kolay kurulum sunan araçlar tercih edilebilir.
XAMPP Nedir?
Bilgisayarda:- Apache
- PHP
- MariaDB
- phpMyAdmin
Ö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
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
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
PHP Öğrenirken İlk Konu Ne Olmalı?
İlk olarak:- Değişken
- Veri türleri
- Koşullar
- Döngüler
- Fonksiyonlar
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
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
String Nedir?
Metin verisidir.Örneğin:
- Kullanıcı adı
- Ürün adı
- E-posta
Integer Nedir?
Tam sayıdır.Örneğin:
- 1
- 10
- 500
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ış
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
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ş
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
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ı?
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
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
Fonksiyon Kullanmanın Avantajı
Aynı işlemi farklı yerlerde tekrar yazmak gerekmez.Kod:
- Daha düzenli
- Daha okunabilir
- Daha kolay yönetilebilir
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
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
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
Ö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
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ı?
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
PHP ve Veritabanı
PHP çoğunlukla veritabanı ile birlikte kullanılır.Yaygın seçenekler:
- MySQL
- MariaDB
- PostgreSQL
- SQLite
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
Tablo Nedir?
Veritabanındaki belirli veri grubudur.Örneğin:
- users
- products
- orders
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
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
CRUD Nedir?
Veritabanı uygulamalarında sık kullanılan bir kavramdır.Açılımı:
- Create
- Read
- Update
- Delete
Yani:
- Veri oluşturma
- Okuma
- Güncelleme
- Silme
İlk PHP Veritabanı Projesi
Basit bir:Not uygulaması
hazırlanabilir.
Kullanıcı:
- Not ekler
- Notları görüntüler
- Notu düzenler
- Notu siler
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
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ı
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
Ş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ü
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
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ı
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
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
Ancak eski projeler yeni sürümle uyumsuz olabilir.
PHP Güncellerken Dikkat
Özellikle WordPress veya özel yazılımda:- Tema
- Eklenti
- Kod
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
Extension Eksikse Ne Olur?
Uygulama:- Hata verebilir
- Bazı özellikleri çalıştırmayabilir
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
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
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
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
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ş
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
PHP Başlangıcında OOP Öğrenilmeli mi?
İlk gün değil.Önce:
- Değişken
- Koşul
- Döngü
- Fonksiyon
- Array
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
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
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
Daha sonra WordPress'in kendi:
- Hook
- Function
- Template
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
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
Üçüncü Proje: Basit Login Sistemi
Burada:- Form
- Session
- Veritabanı
- Şifre hash
Dördüncü Proje: Not Uygulaması
Kullanıcı:- Not ekler
- Listeler
- Düzenler
- Siler
Beşinci Proje: Basit Blog
İçerisinde:- Admin girişi
- Yazı ekleme
- Yazı düzenleme
- Yazı silme
- Kategori
Altıncı Proje: Mini E-Ticaret
Temel seviyede:- Ürünler
- Kategoriler
- Sepet
- Kullanıcılar
Gerçek ödeme entegrasyonuna başlangıçta gerek yoktur.
PHP Öğrenme Sırası
Yeni başlayanlar için mantıklı sıra:- PHP'nin çalışma mantığı
- Değişkenler
- Veri türleri
- Operatörler
- Koşullar
- Döngüler
- Array
- Fonksiyonlar
- Form işlemleri
- GET ve POST
- Session ve Cookie
- Veritabanı
- SQL
- PDO
- CRUD
- Güvenlik
- OOP
- Composer
- API
- Framework
İlk Aşamada Öğrenilmemesi Gerekenler
Daha ilk gün:- Laravel
- Design pattern
- Microservice
- Kubernetes
- Çok karmaşık OOP
Ö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ı
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
Ç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
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
.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ı
HTTPS Kullanılmalı mı?
Evet.Özellikle:
- Login
- Kayıt
- Ödeme
- Yönetim paneli
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
Paylaşımlı Hosting Yeterli mi?
Küçük PHP projelerinde evet.Proje büyüdükçe:
- VDS
- VPS
- Cloud
- Dedicated
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
Cache Kullanımı
PHP uygulamalarında:- Page cache
- Object cache
- OPcache
Bunların görevleri birbirinden farklıdır.
Redis PHP ile Kullanılır mı?
Evet.Özellikle:
- Cache
- Session
- Queue
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
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
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
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
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:- SQL'i geliştirin.
- OOP öğrenin.
- Composer öğrenin.
- Git kullanın.
- REST API öğrenin.
- MVC mantığını öğrenin.
- Laravel veya başka bir framework'e geçin.
- 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
Framework öğrenmeden önce temel mantığını bilmek faydalıdır.
PHP Hâlâ Öğrenilir mi?
Evet.Özellikle:
- WordPress
- WooCommerce
- Laravel
- Web uygulamaları
- Hosting ekosistemi
Ö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:
- Form
- Hesap makinesi
- Login sistemi
- CRUD uygulaması
- Basit blog
- Mini yönetim paneli
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ı
PHP öğrenirken ilk olarak:
- Değişkenler
- Veri türleri
- Koşullar
- Döngüler
- Array
- Fonksiyonlar
- Form işlemleri
Daha sonra:
- MySQL/MariaDB
- SQL
- PDO
- CRUD
- Session
- Güvenlik
- OOP
- Composer
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.



