PHP framework'leri
Her PHP framework'ünün en iyi yaptığı bir iş vardır.
Hepsinde – ve hiç framework'ü olmamış saf PHP'de de – uygulama geliştirir, kurtarır ve barındırırız; yirmi beş yıldır PHP yazan bir ekiple.
Projenize hangi framework uyar
İki soruyu yanıtlayın. Her yol, bizim başlayacağımız yerde biter – ve ne zaman başka bir şey seçeceğimizi de söyler.
Neyden yola çıkıyorsunuz?
Yeni bir proje
En önemli olan ne?
Birden fazla ekibin yıllarca üzerinde çalışacağı büyük bir sistem
Nereden başlardık
Symfony
Açık yapılandırma, bir bağımlılık enjeksiyonu konteyneri, uzun süreli destekli sürümler ve veriler için Doctrine. Beşinci geliştirici katıldığında da yapı sağlam kalır.
Şirket zaten Zend Framework kodu çalıştırıyorsa Laminas'ı da değerlendirin.
Küçük bir ekiple yakında yayına çıkması gereken bir ürün
Nereden başlardık
Laravel
Kimlik doğrulama, kuyruklar, e-posta, zamanlama ve ifade gücü yüksek bir ORM kutudan çıktığı gibi hazır; hepsi için tek bir kural düzeniyle.
EGPHP'de LaravelTek bir işi olan bir API veya küçük bir servis
Nereden başlardık
Slim
Yönlendirme, middleware ve standart PSR-7 istekleri; istemediğiniz hiçbir şey yok. Veritabanı katmanını ve konteyneri siz seçersiniz.
API tam bir ürüne dönüşecekse Laravel veya Symfony, ileride yeniden yazma zahmetinden kurtarır.
Mütevazı bir sunucuda küçük bir uygulama
Nereden başlardık
CodeIgniter
Küçük bir ayak izi, az yapılandırma ve açık bir dokümantasyon. Kaynakların kısıtlı olduğu yerlerde iyi çalışır.
Veritabanından hızla oluşturulan çok sayıda veri ekranı
Nereden başlardık
Yii · CakePHP
Yii, Gii ile modelleri ve CRUD ekranlarını üretir; CakePHP ise bunları kendi kurallarından bake eder. İkisi de bir şemayı hızla çalışan ekranlara dönüştürür.
Her istekte en az framework yükü
Nereden başlardık
Phalcon
Framework derlenmiş bir C eklentisidir; bu yüzden istek başına çok az PHP çalışır. Bu eklentinin sunucuda kurulu olması gerekir – biz kendi sunucularımıza kuruyoruz.
Birçok paylaşımlı hosting PHP eklentilerine izin vermez. Seçmeden önce kontrol edin.
Zaten var olan bir uygulama
Neyin üzerine kurulu?
Framework'süz saf PHP ya da çok eski bir PHP sürümü
Nereden başlardık
Önce kurtarma
Her şeyden önce onu güvenli ve güncel hâle getiririz, ardından bir framework'ün buna değip değmeyeceğine birlikte karar veririz.
Kurtarma nasıl ilerlerBir framework üzerine kurulu ve çalışıyor
Nereden başlardık
Framework'ü korumak
Onu yazıldığı framework içinde yükseltir, güvenli hâle getirir ve geliştiririz. Yeniden yazmak ilk değil, son çaredir.
Bırakmak istediğiniz bir framework üzerine kurulu
Nereden başlardık
Adım adım taşıma
Eski ve yeni uygulama yan yana çalışır; işler sürerken rotalar birer birer taşınır.
Taşıma nasıl ilerlerYan yana
Her framework'ün ne olduğu, en güçlü olduğu alan ve ne zaman iki kez düşüneceğimiz. Hiçbiri yanlış değil; her biri farklı bir iş için doğru.
| Framework | Nedir | Veri katmanı | En güçlü olduğu alan | Şu durumda iki kez düşünün |
|---|---|---|---|---|
| Symfony | Full-stack framework ve yeniden kullanılabilir bileşenler | Doctrine ORM | Uzun süreli destekli sürümlerle büyük ve uzun ömürlü sistemler | Küçük bir sitenin bu hafta yayına çıkması gerekiyor |
| Laravel | Full-stack framework | Eloquent | Kuyruklar, kimlik doğrulama ve e-posta yerleşik olarak, hızla ürün çıkarmak | Her parçanın açıkça bağlanmasını istiyorsunuz |
| CodeIgniter | Hafif full-stack framework | Sorgu oluşturucu ve basit modeller | Mütevazı sunucularda küçük bir ayak izi | Proje büyük bir paket ekosistemine ihtiyaç duyuyor |
| Yii | Full-stack framework | Active Record | Gii ile üretilen yoğun veri ekranları ve önbellekleme | Ekibiniz ona yabancı; topluluğu daha küçük |
| CakePHP | Full-stack framework | CakePHP ORM | Yapılandırma yerine kural ve şemadan üretilen kod | Uygulama her adımda onun kurallarıyla çatışıyor |
| Laminas | Bileşenler, MVC ve middleware framework'leri; Zend Framework'ün halefi | laminas-db veya Doctrine | Zaten Zend Framework üzerine kurulu iş sistemleri | Küçük yeni bir proje hızlı ilerlemek istiyor |
| Slim | Mikro framework | Yerleşik yok – seçim sizin | API'ler ve küçük servisler | Uygulamanın ilk günden oturumlara, formlara ve bir yönetim paneline ihtiyacı var |
| Phalcon | C eklentisi olarak sunulan full-stack framework | PHQL ile Phalcon ORM | İstek başına çok düşük yük | Hosting sağlayıcınız PHP eklentisi kuramıyor |
Laravel'in kendisi birkaç Symfony bileşeni üzerine kuruludur ve bu framework'lerin çoğu aynı PSR standartlarını paylaşır – kodu aralarında taşımak göründüğünden daha az iş gerektirir.
Eski PHP, yeniden formuna kavuşuyor
Yıllar önce yazılmış kod birçok işletmeye hâlâ para kazandırıyor. Onu kapatmadan güvenli ve güncel hâle getiriyoruz.
- $id = $_GET['id'];- $r = mysql_query("SELECT * FROM orders WHERE id = $id");- $order = mysql_fetch_assoc($r);+ $stmt = $pdo->prepare('SELECT * FROM orders WHERE id = ?');+ $stmt->execute([(int) $_GET['id']]);+ $order = $stmt->fetch(PDO::FETCH_ASSOC);
Okuyup çalıştırmak
Uygulamanın güncel bir sunucuda çalışan bir kopyası ve nelerin bozulduğunun yazılı bir listesi.
Çalışan kısımlar için testler
Sayfaların bugün ne yaptığını kaydeden testler; böylece birini bozan bir değişiklik anında yakalanır.
PHP adım adım yükseltilir
Her seferinde bir sürüm; mekanik değişiklikler için Rector, onun gözden kaçırdıklarını bulmak için PHPStan.
Önce güvenlik
Hazırlanmış sorgular, kaçışlanmış çıktı, yeniden hash'lenmiş parolalar; oturumlar ve dosya yüklemeleri sıkı biçimde kilitlenir.
Sonra, değerse bir framework
Yeni özellikler eski kodun yanındaki bir framework'e eklenir; eski sayfalar da dokunuldukça taşınır.
Framework'ler arasında geçiş, her seferinde bir rota
Yeniden yazmak için işinizi durdurmayız. Eski ve yeni uygulama tek bir web sunucusunun arkasında durur ve her rota, yerini alacak olan hazır olduğunda taşınır.
-
/api/ordersYeni uygulama Taşındı -
/accountYeni uygulama Taşındı -
/checkoutYeni uygulama Testte -
/reportsEski uygulama Bekliyor -
/adminEski uygulama Bekliyor
Geçiş, rota başına tek satırdır
# nginx
location /api/orders { proxy_pass http://new; }
location /account { proxy_pass http://new; }
location /checkout { proxy_pass http://new; }
location / { proxy_pass http://old; }
Sorun çıkaran bir rota, biz onu düzeltirken aynı tek satırlık değişiklikle eski uygulamaya geri döner.

Bize ne çalıştırdığınızı anlatın
Başlamak için framework, PHP sürümü ve sizi endişelendiren şey yeterli. Her proje kısa bir görüşmeden sonra fiyatlandırılır.