PHP 7.2.0'ın Yeni ve İyileştirilmiş Özellikleri

Yayınlanan: 2018-03-03
PHP 7.2.0'ın yeni sürümü çok sayıda harika ekleme içeriyor. Daha fazla özellik, yeni iyileştirmeler ve daha iyi işlevsellik sunar. Kullanıcının daha iyi kod yazmasını ve daha önce hiç olmadığı kadar ilginç dil özelliklerini kullanmasını sağlar. Bu yazıda, PHP'nin en son yinelemesinde tanıtılan en yeni yönlere bakacağız.


Güncelleme, birçok yeni iyileştirme sunuyor. Daha iyi kodlama sağlayan birçok özellik ile birlikte gelir. PHP 7.2.0'daki yeni özellikler şunları içerir:

  • Nesne yazma ipucu
  • Sayılamayan çeşitli nesnelerin sayımı
  • Dizi yayınlarında/nesnesinde sayısal tuşların dönüştürülmesi
  • Mcrypt uzantısı kaldırıldı
  • Argon2 parola karmasında
  • nesne olarak HashContext
  • Çeşitli aklı başında değerlere daha iyi TLS sabitleri
  • Yeni sodyum uzantısı

Bildiğimiz gibi, web geliştiricileri genellikle PHP dilini kullanmayı sever veya nefret eder. PHP kullanmayı gerçekten seven herkes bu yeni kodlama çözümünü kesinlikle sevecektir.

PHP ile çalışmayı seven bir web geliştiricisiyseniz, PHP 7.2.0 güncellemesinin en önemli yeni özelliklerini tartışırken okumaya devam edin.

PHP 7.2.0'daki Temel İyileştirmeler

İşte PHP'nin en son güncellemesindeki bazı temel geliştirmeler.

Özellik Özellikleri Hatasının Çözümü

PHP 7.2.0'ın yayınlanmasına kadar, sabitlenmemiş bir özellik özelliği hatası vardı. En son güncellemede, bir özellik bir özelliği tanımlıyorsa, bir sınıf aynı ada sahip bir özelliği daha uyumlu olmadığı sürece (aynı başlangıç ​​değeri ve görünürlük) tanımlayamaz. Aksi takdirde, ölümcül bir hata verir.

PHP 7 ve PHP 7.1'den farklı olarak, artık ölümcül bir hata almayı bekleyebiliriz. Bu davranış, PHP'nin son güncellemesinde düzeltildi ve şu anda PHP belgelerinde olması gerektiği gibi çalışıyor. Şimdi sıkı bir karşılaştırma yapabilirsiniz. Komut dosyasını PHP 7.2'de çalıştırırken, önemli bir hatayla ilgili bilgilendirileceksiniz.

İade Tipi Beyanı

PHP 7'nin son güncellemesi, dönüş türü bildirimleri için daha fazla destek ekler. Argüman türü bildirimleri gibi, bu bildirim türü de bir işlevden döndürülmesi muhtemel değerin türünü belirtir. Dönüş türü bildirimi için, bağımsız değişken türü bildirimleri için olduğu gibi aynı türler sunulur.

PHP 7.2.0'da, bir kullanıcının, nesne veri türü açısından dönüş türü bildirimini kullanmasına izin verilir.

Ayrıca, katı yazım, dönüş türü bildirimlerini de etkiler. Varsayılan zayıf mod göz önüne alındığında, döndürülen tüm değerler doğru türe zorlanır (farklı olmaları ve halihazırda o türden olmamaları durumunda). Ancak güçlü modda, döndürülen tüm değerler doğru/doğru türde olmalıdır. Aksi takdirde, bir TypeError alınır.

Ancak, bir üst yöntemi geçersiz kıldığınızda, bir alt yöntemin dönüş türü bildirimini üst yönteminkiyle eşleşmesi gerekir. Ancak, bir dönüş türü ana yöntem tarafından tanımlanmadıysa, o zaman bir alt yöntem onu ​​tanımlayabilir.

Jeneratör Dönüş İfadeleri

PHP'nin bu özelliği, PHP 5.5'te yayımlanan, oluşturucu işlevi adı verilen bir işlev üzerine kurulmuştur. Oluşturucuda bir dönüş ifadesinin kullanılmasına ve son ifadenin döndürülmesine izin verir. Ancak, referansla iade sınırlıdır. Değer, yalnızca üretecin değer vermesi bittiğinde kullanılan yeni bir Generator " getReturn()" yöntemi kullanılarak elde edilebilir.

Yine de, bir jeneratör kullanarak net bir şekilde nihai bir değer döndürme yeteneği, kesinlikle sahip olmak için kullanışlı bir yetenektir. Bunun nedeni, özellikle üreteci gerçekleştiren bir müşteri kodu tarafından ele alınabilen bir üreteç tarafından nihai bir değerin tamamen geri dönmesine izin vermesidir. Karşılaştırıldığında, bu, bir müşteri kodunu önce nihai değerin verilip verilmediğini kontrol etmeye ve ardından değeri özellikle ele almaya zorlamaktan çok daha basittir.

Oturum Seçenekleri

Session_start() artık php.ini'de ayarlanan çeşitli oturum yapılandırma yönergelerini geçersiz kılan birçok seçeneği tanıyor.

Bu seçenekler ayrıca varsayılan olarak açık kalan ve PHP'nin yalnızca oturum verilerinin ve read_and_close değişikliğinin herhangi bir oturum dosyasının üzerine yazmasını sağlayan session.lazy_write'ı kolaylaştırmak için genişletildi. Bu, oturum verilerinin okunması gerektiğini onaylamak için yalnızca session_start() için geçerli olan bir seçenektir ve ardından oturum değişmeden kalırken hemen kapatılmalıdır.

PHP 7.2.0'daki Güvenlik İyileştirmeleri

İşte PHP 7.2.0'da uygulanan en son güvenlik geliştirmeleri.

Parola Hash'inde Argon 2 Algoritması

2005 yılında Parola Hashing Yarışmasını kazanan Argon 2, güçlü bir hash algoritmasıdır. Argon2, evrensel internet standardı olarak tanınmanın tam ortasında. Şu anda, algoritmanın, başka bir karma algoritma olan Bcrypt'ten daha uygun maliyetli ve güvenli olduğu düşünülmektedir. Yeni eklenen Argon2, password_hash() işlevi aracılığıyla kullanılabilir.

Bcrypt yalnızca bir maliyet faktörünü hesaba katarken, yeni Argon2 aşağıdaki üç maliyet faktörünü hesaba katar:

  1. Zaman maliyeti - karma algoritmanın yineleme sayılarını tanımlar
  2. Bir bellek maliyeti- hashing sırasında kullanılması gereken KiB numaralarını tanımlar.
  3. Paralellik faktörü- hashing sırasında tüketilecek paralel iş parçacıklarının sayısını ayarlar.

Varsayılan maliyet faktörleri, üç yeni sabit tarafından aşağıdaki gibi tanımlanır:

  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2-VARSAYILAN-İŞLER
Lib-sodyum Mcyrpt'in yerini alıyor

PHP 7.2.0'daki bir diğer önemli gelişme, geleneksel Mcrypt şifreleme kitaplığının PHP çekirdeğinden kaldırılması ve Libsodium'un eklenmesidir.

Mcrypt, terkedilmiş bir yazılım ve dil büyümesinin bir kısıtlaması olarak kabul edildi. Bu nedenle PHP 7.2.0'da Libsodium ile değiştirilmiştir. Libsodium, verimli eliptik eğri şifreleme ile birlikte otantik şifreleme sağlayan gelişmiş bir şifreleme kitaplığıdır.

Libsodium, yan kanal açıklarını önlemek için güvenlik uzmanları tarafından uygulanan özenle seçilmiş algoritmalardan oluşur. Başka bir deyişle, Libsodium şifre çözme, şifreleme, parola karma, imza ve daha fazlası için diller arası ve platformlar arası bir kitaplıktır.


Kullanımdan Kaldırılan Özellikler ve İşlevler

Aşağıdakiler, PHP 8.0'ın yayımlanmasından önce kaldırılması beklenen PHP 7.2.0'ın kullanımdan kaldırılan işlevlerinden ve özelliklerinden bazılarıdır.

Gmp_random() , platforma bağlı bir özellik olarak alınır ve kullanımdan kaldırılması muhtemeldir. Bunun yerine, gmp_random_rage() ve gmp_random_bits() kullanılacaktır.

(ayarlanmamış) atama , genellikle null değerini döndüren ve bu nedenle işe yaramaz olarak kabul edilen başka bir ifadedir.

Her() , bir dizi gibi bir foreach() üzerinde yineleme yapmak için kullanılır, ancak daha yüksek hızı nedeniyle foreach() tercih edilir.

PHP 5.1'deki spl_autoload_register , _autoload işlevinin yerini almıştır. Ancak şimdi, derleme sırasında işlevle karşılaşıldığında kullanımdan kaldırmanın gerçekleşmesi muhtemeldir.

mbstring .fucc_overload ayrıca kullanımdan kaldırılmak üzere ayarlanmıştır.

Assert() işlevi, verilen iddiayı onaylar ve bir FALSE sonucu varsa yeterli eylemi gerçekleştirir. Bir RCE güvenlik açığına neden olduğundan, assert()'in dize bağımsız değişkenleri ile kullanımı kullanımdan kaldırılacaktır.

$php_errormsg değişkeni , önemli olmayan bir hata alındığında yerel kapsamda oluşturulur. Ancak şimdi, PHP 7.2.0 sürümleriyle, bunun yerine error_clear_last ve error_get_last kullanılacaktır.

Bu işlevsellik optimizasyon için sorunlara neden olduğu için $errcontext kullanımdan kaldırılabilir. Geçerli kapsamdaki tüm nesneleri ve referansları değiştirmek için $errcontext kullanıldığından, bu işlevsellik pek kullanılmaz.

Create_function() birçok güvenlik sorununa sahiptir. Ayrıca, bellek kullanımı ve kötü performans sorunları da vardır.

Bir WordPress Geliştiricisi Neden PHP 7.2.0 Kullanmalı?

PHP'ye yapılan son yükseltmeler, yeni özellikler ve gelişmiş güvenlik önlemleri getiriyor. Bu, modern şifreleme, temel özelliklere eklemeler ve çeşitli siteler için daha hızlı yükleme hızı gibi faktörleri içerebilir.

PHP Kullanmanın Faydaları

PHP, neredeyse tüm veritabanı ve sunucu global standartlarıyla (örn. PostgreSQL, MySQL, Sybase, Oracle, Microsoft SQL Server ve Informix) kullanılabilen oldukça uyumlu bir dildir. Açık kaynak topluluğu tarafından desteklenen hızlı performans sunar.

Dosyalar ve dinamik sayfalar oluşturmak gibi çeşitli amaçlar için kullanılır. PHP, bilgileri bir site veritabanında yönetmenize ve saklamanıza olanak tanır. Kullanıcıların güvenlik özelliklerini kullanarak verileri şifrelemesine olanak tanır ve web sitelerine yetkisiz erişimi kısıtlar.

PHP, Yahoo, Facebook ve Wikipedia gibi birçok ünlü web sitesi tarafından kullanılmaktadır.

Daha da önemlisi, PHP 7.2.0'ın en son güncellemesi önemli güvenlik iyileştirmeleri, heyecan verici yeni özellikler ve performans geliştirmeleri sunuyor.

PHP 7.2.0'ın Performansı

Phoenix kıyaslamalarına göre PHP 7.2.0, 7.1'den %13 ve 7.0'dan neredeyse %20 daha hızlıdır. PHP 2.6 ile karşılaştırıldığında (hala PHP kullanıcılarının %40'ı tarafından kullanılıyor), neredeyse %25 daha hızlı.

Bu istatistikleri ve bulguları destekleyen birçok test vardır. Resmi PHP karşılaştırması, PHP 7'nin 5.6'dan iki kat daha verimli ve iki kat daha hızlı olduğunu ortaya koyuyor. PHP 7, gecikme süresinin yarısına sahiptir. Ayrıca, Kinsta gibi diğer kıyaslamalar PHP 7'nin önceki sürümlerden üç kata kadar daha hızlı olabileceğini öne sürüyor.

Yukarıda tartışıldığı gibi, PHP 7.2.0'ın geliştirilmiş performansının ana nedeni, gelişmiş özelliklerin dahil edilmesi ve eski işlevlerin kullanımdan kaldırılmasıdır. PHP'nin bu sürümünü WordPress kullanıcıları için mükemmel yapan şey tam olarak budur. Ancak geliştiriciler, her şeyin uyumlu olduğundan emin olmak için kodu kontrol etmeli ve kullanımdan kaldırılan işlevleri güncellemelidir.

PHP 7.2.0'ın Güvenlik Desteği

PHP 7.2.0 artık güvenlik desteği sunmamaktadır. Ancak, kritik destek 2018'in sonuna kadar devam edecek. PHP topluluğu artık küçük sorunlar ve hatalar için destek sunmuyor. İyi haber şu ki, PHP 7.2.0'ın en son güncellemesi, gelişmiş güvenlik güncellemelerinin düzgün çalışmasını sağlayacak ve proje PHP topluluğu tarafından sürekli olarak desteklenecek.

Libsodium, eski PHP'den PHP 7.2.0'a taşınan hem en önemli hem de en gelişmiş özelliktir. Neyse ki, Libsodium'u güncellemek çok kolaydır.

PHP 7.2.0'a güncellemeyi planlıyorsanız, kodunuzun entegrasyon ve birim testlerinden oluştuğundan emin olun. Bu tür testler, canlı bir ortamda bir hata olarak görünmeden önce uygulamayla ilgili sorunları yakalamaya yardımcı olacaktır.

Kısaca
PHP 7.2.0, PHP 5.6 gibi önceki sürümlere kıyasla kesinlikle büyük bir yükseltmedir. Kodu PHP 5.6'dan PHP 7'ye yükselttiğinizde, hem kodun bağlı olduğu kitaplıklarda hem de kodun kendisinde bazı uyumsuzluklarla karşılaşabilirsiniz. Ancak, PHP 7.2'yi benimsemenin faydaları, çabalarınızı değerli kılacaktır.

PHP 7.2, PHP'nin eski sürümlerinden çok daha hızlı olduğundan, bu, kullanıcının PHP dilinin gelişmiş kodlarını uygulayarak web sitesi kullanıcılarına gelişmiş bir hizmet sunmasına olanak tanır.

Peki yeni PHP 7.2'ye geçmeye hazır mısınız? Henüz güncellemediyseniz, geçişinizi başlatmak için iyi bir zaman. Kodları kontrol etme ve komut dosyalarınızı yükseltme zamanı.

Aşağıdaki yorumlar bölümünde PHP 7.2.0'ın yeni geliştirilmiş özelliklerini ve işlevlerini nasıl bulduğunuzu bize bildirin!