Bizimle iletişime geçin

BAHUSUS.COM

PHP 7.2.0’da 8 Büyük Yeni Özellik ve İyileştirmeler

php

internet

PHP 7.2.0’da 8 Büyük Yeni Özellik ve İyileştirmeler

PHP 7.2.0’da 8 Büyük Yeni Özellik ve İyileştirmeler

PHP 7.2.0 özellikleri ve yeni eklenen iyileştirmeler

PHP 1994 yılında Rasmus Lerdorf tarafından başlatılan şey artık dünyanın toplam web sitelerinin % 80’inden fazlası tarafından kullanılmaktadır.



PHP programlama dili, hemen hemen her platformda ve işletim sisteminde çoğu web hizmetinde yaygın olarak taşınmış ve dağıtılır, ücretsizdir. Dil geliştirme sunucusu tarafı kodlamaya odaklanmış olsa da, onunla çok daha fazlasını yapabilirsiniz.

30 Kasım 2017’de PHP geliştirme ekibi, PHP 7 serisinin ikinci bir özellik güncellemesi olan yeni bir sürüm 7.2.0 yayınladı. Diğer güncellemeler gibi, birkaç yeni özellik ve iyileştirme ile birlikte gelir.

PHP 7.2.0’da göreceğiniz en büyük 8 değişikliği listeledik

 

Hiçbir Mcrypt Uzantısı Yok

Bu sürümde Mcrypt uzantısı kaldırılmıştır. Geliştiricilere göre, Mcypt birçok tasarım siğiline sahip ve uygulayıcılara uygun bileşenleri seçmek ve bunları etkili bir şekilde sarmak için hata üretiyor ve bu da hataya açık şifreleme tasarımlarına ve dolayısıyla güvensiz uygulamalara neden oluyor.

 

Yeni Libsodium Uzantısı

PHP, ‘Sodyum’ ad alanını kullanan yeni libosodyum uzantısını benimser. Bu, yüksek hızda eliptik eğri şifreleme, kimliği doğrulanmış şifreleme, dijital imzalar ve daha pek çok şey sunan modern bir şifreleme kitaplığıdır.
Çeşitli sebeplerden dolayı şifreleme ve güvenlik endüstrisi uzmanları tarafından övüldü.

  • API’ler güçlü ve basittir.
  • Sınıfının en iyisi eliptik eğri şifrelemesi.
  • Hemen hemen tüm güvenlik açısından kritik işlemleri sabit bir sürede gerçekleştirir.

Geliştirilmiş TLS / SSL sabitleri

PHP 7.2.0’daki TLC sabitleri aklı başında değerlere değiştirildi. Bu, güçlü güvenliği destekler, ancak eskiyen ve sürümlere hoşgörüsüz sunucularla geriye dönük uyumluluk göstermez. Ayrıca, ileride daha yeni TLS sürümleri mevcut olduğunda STREAM_CRYPTO_METHOD_TLS_ * geçişi yapılacaktır.

Bu, bağlantı girişimi yalnızca TLS 1.0 etkinleştirilmiş şekilde TLS sunucusuna zarar verecektir. Ayrıca, uzak ana makine yalnızca SSL’yi (TLS’yi desteklemezse) tüm  ssl: // sarmalayıcı bağlantılarını keser.

 

Nesne türü

Parametreler için skaler tipler PHP 7’de tanıtıldı. Fonksiyonların geri dönüş türleri için de kullanılabilirler. Bununla birlikte, bir işlevin bir nesneyi döndürmesi gerektiğini veya bir nesneyi bir parametre olarak geçirilmesi gerektiğini beyan edemezsiniz.

PHP 7.2.0 nesneyi bir dönüş türü ve parametre türü olarak kullanır . Tüm nesneler tür denetimi taşır; bu nedenle, bir parametreye (yani, tür nesne olarak bildirilir) bir nesne olmayan bir değer iletirseniz, tür denetimi başarısız olur ve bir TypeError atar.

php

Aynı şekilde, bir işlev geri dönen nesne olarak bildirilirse TypeError atılır, ancak bunu yapmaz. Bu, dahili olarak kullanıldığı için nesne ayrılmış bir sınıf adı haline gelir ve bu nedenle kullanıcı ülke kodunda bir sınıf adı olarak kullanılamaz.

php

Nesneleri geri dönüş türü veya parametre olarak kullanan sınıf yöntemleri, devralma denetimleri, dönüş türleri için kovaryans ve parametre türleri için kontravariance kullanır.

 

Nesne Olarak HashContext

PHP 5 ve sonraki sürümlerinde, iç verileri sarmak için nesneler tercih edilir. Kaynaklardan yararlanmak için karma uzantı oluşturuldu. Bu hatayla başa çıkmak için Hash uzantısı, bir kaynak yerine karma bağlamlar için bir nesne uygulaması kullanmak üzere geçirildi.

PHP 7.2.0, op_kaynağı op_quosource ( ) işlevini açıkça kontrol etmedikçe mevcut kodun çalışmaya devam ettiğinden emin olmak için opak bir nesneye dönüştürür . Bu, dahili hash durumunun görünür olması nedeniyle potansiyel güvenlik sorunlarını da beraberinde getirecektir.

 

Sayılmayan Nesnelerin Ele Alınması

Countable arayüzünü uygulamayan nesne veya sayılar üzerinde count () çağrısı 1’i döndürür. Bu, kusurları gizleyebilir. Kodu bir örnek olarak düşünün,

php

Hiçbir şey içermeyen bir işleme geçerseniz, allempty () veya allvalues ​​() çağırmazveya programcıyı meseleye uyarmaz . Count () işlevini null, skalar veya Countable’ı uygulamayan bir nesne ile çağırırken bir uyarı ekleyebilirsiniz .

Count () çağrısı hala null veya 1 için 0 döndürür, geriye dönük uyumluluk korunur.

 

Argon2 Şifre Hattı

PHP artık Argon2’yi Bcrypt yerine password_ * işlevleri içinde uygular. Bu, şifrelerinizi daha da güçlü hale getiren modern bir algoritma. Argon2, en yüksek bellek dolum hızı için geliştirilmiş ve takas saldırılarına karşı savunma sağlar.

3 farklı faktörü hesaba katıyor

  1. Bellek (bellek algoritmasının ne kadarını kullanıyor)
  2. Zaman (ne kadar algoritmanın çalıştırılacağı ve yinelemelerin sayısı)
  3. Paralellik (paralel diş sayısı)

Argon2 – Argon2d ve Argon2i’nin 2 versiyonu var. Argon2d, veriye bağımlı bellek erişimi kullanır ve oldukça hızlıdır. GPU kırma saldırılarına karşı daha güvenlidir ve yan kanal zamanlama saldırılarından herhangi bir tehdit içermeyen uygulamaları destekler. Öte yandan, Argon2d, şifre temelli anahtar türetme ve şifre karması için ayarlanmıştır.

 

İlginizi çekebilir: WordPress 4.9’daki yenilikler

 

Nesne veya Dizge Dökümlerinde Sayısal Dönüştürme

Zend Altyapısı’ndaki birçok kenar durumlarda, nesne HashTables’ın tamsayı anahtarlara sahip olabileceği ve dizi HashTable’ların sayısal dize anahtarlarına sahip olabileceği yerlerdir. Bu senaryolarda, anahtarlara PHP kodu yoluyla erişilemez. Bunun nedeni, nesnelerin dizge anahtarlarına eşleştirdiği kod işleme dizisi hiçbir zaman tamsayı anahtarlarını HashTable’da aramayacak olmasıdır. Benzer şekilde, dizi dizi anahtarlarını tamsayı tuşlarıyla eşleştirirken sayısal dize anahtarlarını asla HashTable’da aramazdı.

Bu sorun, nesne veya dizi HashTables anahtarlarını dönüştürerek düzeltilebilir, bu nedenle nesnelerdeki sayısal dizge özellik adları tamsayı dizilere dönüştürülür ve tersi erişilebilir özellik bırakmaz.

Geliştiriciler bu sorunu daha önce birçok kez çözmeye çalışmış olsa da, önemli bir performans sorunu var. Basitçe anahtar dönüşümü gerçekleştirmeden bir HashTable’ı kopyalamak, yeni bir HashTable yapmaktan ve varolan HashTable’da tüm tuşları el ile tüm anahtarları kopyalamaktan daha hızlı yapmaktan daha hızlıdır. Yeni HashTable, gerekirse değiştirme.

Performans sorununu çözmek için yeni yaklaşım, tüm HashTable’ı manuel olarak kopyalamayı önleyecektir. Önce bayrakları denetleyerek mi yoksa dönüşüm gerektiren anahtarları denetleyen HashTable üzerinde yinelenerek mi gerekliliğini teyit edecektir.



Dönüşüme gerek yoksa,  zend_array_dup () işlevine dönersiniz ( daha hızlıdır) veya referans kopyalamanız yeterlidir. Yaklaşım, gerektiğinde manuel çoğaltma gerçekleştirdiğinden, yalnızca sayısal olmayan dize özellik adlarına sahip nesneleri diziye dönüştürmek ve dizileri yalnızca dize anahtarlarıyla nesnelere dönüştürmek çok düşük performans etkisi ile karşılaşmaktadır.

Bu dönüşüm  için, yeni zend_proptable_to_symtable () (dizi HashTable nesne) ve  () zend_symtable_to_proptable (dizi HashTable nesne) Zend API entegre edilmiştir.

Okumaya devam et
Şunlar da ilginizi çekebilir...

İçerikleri oluşturur, BAHUSUS ekibini yönetir ve bu blogda gördüğünüz her içeriğin güzel görünmesini sağlar.

Yorum yapmak için tıklayın

Cevap bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Diğer internet

bitcoinBitcoin
$ 26,674.151.47%
ethereumEthereum
$ 1,854.171.06%
terra-lunaTerra Luna Classic
$ 0.0001019.75%
En üste