sa. ilk şunu syleme ihtiyacı duyuyom; zellikle araştırdığım bişey değil (; bana gelen bilgilendirme maillerinden grdüm. sizlerde bilgilenin (; PHP 8 güncellemesi ile yeni adlandırmalar yapılmış argümanların, birleştirme türlerinin, yapıcı zellik tanıtımlarının, zniteliklerin, eşleşme ifadelerinin JIT sistemindeki iyileştirmelerin, hata işleme ve tutarlılık zelliklerine ve optimizasyonuna sahip olabilirsiniz. PHP 8 versiyonu, 26 Kasım 2020 tarihinde resmi olarak kullanıcının hizmetine sunuldu. Büyük bir yenilikle kullanıma sunulan sz konusu versiyon, birçok güçlü zelliği de beraberinde getiriyor. Bu yeni zellikler sayesinde çok daha kolay bir şekilde kod yazabilirsiniz. Ayrıca daha kullanışlı ve güçlü uygulamalar oluşturabilirsiniz. PHP 8'in kullanıcılar tarafından en beğenilen zelliği Just in Time kavramının kısaltması olan JIT derleyicisidir. Peki, JIT kavramı ne demektir? İçerik Başlıkları Dizini - Kısayol Erişim Linkleri JIT Nedir? OPcache'in PHP Hızına Etkisi Named Arguments Attributes Kurucularda zellik Tanımları Birleşik Değişken Tiplerinin Eklenmesi Match İfadesinin Kullanımı Nullsafe Operatrünün Kullanımı Metin ve Sayı Karşılaştırmaları Güncel Versiyondan Elde Edilen Sonuç JIT Nedir? JIT, OPcache'in neredeyse bağımsız bir parçası olarak uygulanan bir işlev mekanizmasıdır. Bu zellik ile PHP derlemeleri etkinleştirilip devre dışı bırakılabilir. Derlemeler etkinleştirildiğinde dosyaların yerel kodu OPcache belleğinde saklanır. Peki, JIT ile OPcache arasındaki farklar nelerdir? PHP için JIT'in ifade ettiği anlamı doğru analiz etmek için ncelikle PHP'nin kaynak kodunda sistemin nasıl çalıştığına bir gz atmak gerekir. PHP, 4 aşamalı yürüyen bir süreçtir. Aşağıda bu aşamaların neler olduğunu grebilirsiniz. Lexing/Tokenizing: PHP'nin ilk aşaması olan lexing sürecinde PHP kodu okunur. Bu kapsamda bir dizi belirteçler oluşturulur. Ayrıştırma: PHP'nin bu aşamasında komut dosyalarının szdizimleri ile eşleşip eşleşmediği kontrol edilir. Bu aşamada soyut bir szdizimi ağacı olan AST için çeşitli belirteçler kullanılır. Derleme: Bu aşamada yorumlayıcıdan geçen AST düğümleri, Zend VM tarafından geçirilerek komut türü belirlenir. Sayısal tanımlayıcılar düşük seviyedeki Zend Opcodes'e dnüştürülür. Yorumlama: Opcodes yorumlanarak, Zend VM üzerinden çalıştırılır. OPcache'in PHP Hızına Etkisi PHP, yorumlanmış bir dil demektir. Bir PHP çalıştırıldığında yorumlayıcı, kodu tekrar tekrar çalıştırır. Bu durum, CPU kaynaklarının etkin kullanılmamasına neden olduğu gibi zamanın da etkin kullanılmaması demektir. OPcache, nceden derlenmiş komut dosyasının bayt kodunu bellekte depolar. Bu sayede PHP'nin performansını artırır. Bylece PHP'nin her istekten sonra komut dosyalarını yükleme ve ayrıştırma ihtiyacının ortadan kalkması sağlanır. OPcache etkin haldeyken PHP yorumlayıcısı yukarıda da belirtilmiş olan 4 aşamalı işlemden geçer. Fakat komut dosyaları ilk defa çalıştırılır. Zend VM'de ise derhal çalıştırılabilir. Named Arguments "Named Arguments" teriminin Türkçe karşılığı, "Adlandırılmış Değişkenler" olarak ifade edilir. Phyton programlama dilinde kullanılan adlandırılmış değişkenler, PHP 8 versiyonu ile çok rahat bir şekilde kullanılabilir. Yeni versiyonun sağladığı çok nemli avantajlardan biri named arguments kullanımının etkin olarak gerçekleştirilmesidir. Named Arguents zelliği ile parametrelerin fonksiyonlara belirli bir sıra ile gnderilme zorunluluğu ortadan kalkar. Bu sayede kodun okunurluğu artarak geliştiricinin işi de kolaylaşır. Attributes Türkçe karşılığı "zellikler" olan attributes ile eski tip doc bloklarını birbirinden ayrılma zorunluluğu ortadan kalkar. Bu sayede sistem meta verilerinin eklenmesine izin verir. PHP'nin eski versiyonlarında sadece string kanalındaki yorum bloklarına izin verilir. PHP 8 versiyonundaki attributes zelliği ile diğer kanalların yorumları da kullanılabilir. Kurucularda zellik Tanımları Başlıktaki zellik ile sistem üzerinde daha anlaşılır kodların kullanılmasına imkan tanınır. PHP 8 içerisinde oluşturulan sınıfların zelliklerini doğrudan başlangıç değerine atayabilirsiniz. nceki versiyonlarda zellik tanımlamaları class'ın ilk aşamasında yapılırdı. Bu aşamada başlangıç değeri ataması yapılacaksa yine kurucu içerisinde yapılması gerekirdi. PHP 8'de ise eski kodlarınızı hiç değiştirmeden bırakabilirsiniz. Yeni kodlarınız ile sistemi kullanmaya devam edebilirsiniz. Birleşik Değişken Tiplerinin Eklenmesi Birleşik değişken tiplerinin eklenmesi de işleri çok kolaylaştıran bir zelliktir. Birden fazla tipe sahip olan değişkenler doğal birleşik değişkenlerle yapılabilir. Match İfadesinin Kullanımı Her ne kadar yukarıdakiler kadar büyük bir gelişme olmasa da PHP 8, match ifadesinin kullanımını da sağlar. Yeni match ifadesi ile sistemde swich zelliğine çok benzeyen bir yapı karşınıza çıkar. Match ifadesi ile sunucu, bir değişken içerisinde saklanabilir. Match ifadesi, tek satırlık ifadeleri destekler. Sistemin kullanılması için break kullanımına ihtiyaç duyulmaz. Match, strict türünde bir karşılaştırma yapar. Nullsafe Operatrünün Kullanımı Nullsafe operatrünün kullanılması ile kod yığınları ortadan kaldırılabilir. Null operatrünü bir zincir olarak kullanabilirsiniz. Zincirin bir noktasında Null değeri dnerken başlangıcında da Null yer alır. Metin ve Sayı Karşılaştırmaları PHP'nin eski versiyonunda metin ve sayı değerlerinin karşılaştırılması esnasında metin değerleri sayı değerine çevrilirdi. Karşılaştırma ise iki sayı değeri arasında yapılırdı. Bu durumda metin değerinin gerçekte sayı ifade etmemesinden dolayı bir kısım hatalara neden olurdu. PHP 8 versiyonunda ise gerçekten sayı değeri ifade etmeyen metinlerin çevirisi yapılmaz. Bunun yerine sayı değerleri metin türüne dnüştürülerek iki metnin aynı olup olmadığı kontrol edilir. Güncel Versiyondan Elde Edilen Sonuç PHP8, kullanıcıların işini kolaylaştıracak birçok zelliği ihtiva ediyor. Sz konusu zelliklerin başında kodun okunabilir ve anlaşılır şekilde yazılması yer alıyor. Bunların yanında da yeni versiyon ile birçok zelliğin sisteme dahil edildiğini grebilirsiniz. PHP 8 kullanmak için bazı durumları da gz nünde bulundurmanız gerekiyor: Eğer paylaşımlı sunucu kullanıyorsanız, servis sağlayıcınız tarafından verilen hizmetin PHP 8 zelliği ile sunulmasını beklemek zorunda kalabilirsiniz. Eski versiyonlarda kullanılan eklentileriniz varsa, yeni sürüm için bu eklentilerin güncellemelerini beklemeniz gerekebilir. PHP programcılığının 8.0 versiyonu ile kod yazma işlemleriniz kolaylaşır ve kısa sürede sonuca ulaşabilirsiniz. Tüm bu zellikler gz nünde bulundurulduğunda PHP 8.0, kullanmaya değer bir programlama dilidir. Kayalardan kayarım yoktur benim ayarım (;

Teşekkürler dostum çok güzel bir bilgilendirme olmuş. zellik ile nullsafe operatrleri cok seviyorum :) php kullanmiyorum ama genel olarak işe yarar işler. Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.