Eğer yenilere yardımcı olmak için php bir özelliği kaldırmak olsaydı ne olurdu?

5 Cevap

, Vazgeçirmek önlemek veya başka şekilde yeni programcılar kötü alışkanlıkları veya uygulamalarını geliştirmek durdurmaya yardımcı, ya da, onların gelişim becerilerini ne neden olacağını ve engel olabilir tuzaklarına düşmekten durdurmak amacıyla PHP itibaren bir özelliği kaldırmak olsaydı?

Şimdi, oy o kadar düşündüğünüz gibi açık uçlu değil kapatmak için önce.

Ben en kötü özelliği ya da ne özellik gerçekten keyfi tamamen kaldırmak istiyorum ne tamamen sormuyorum. Evet, orada bir doğru cevap olabilir ama ben bile farkında olmadan, ben yanlış yapıyor olabilir şeylerin iyi bir fikir ile beni sağlayacak birçok benzer cevaplar olacaktır şüpheli olmayabilir.

5 Cevap

Hemen hemen tüm php.ini. Orada olmak seçeneklerin% 90 hiçbir neden giriş autoescaping dahil, özellikle olanlar var.

mysql_query (), kaçan söz asla orada çok kötü dersler vardır çünkü. Kişilere PDO ve parametreli SQL geçmelisiniz.

Bu garip bir seçim olabilir, ama ben yenilere büyük sayısını gezileri bir özelliği seçim olsaydı, ben INCLUDE_PATH söyleyebilirim.

Deneyimli yazılım geliştiriciler pathlike yapıları aşinadır. Kabuk PATH, Java sınıf, Perl @INC, vb Ama yenilere inanılmaz sayıda anlamıyorum: arama yolu hemen hemen her programlama dili ve işletim sistemi arayüzü olarak özellikleri vardır Bu çok yaygın bir özelliğini kullanabilirsiniz ya da nasıl giderilir.

Yenilere aşkına, ben every require veya include çağrı tam, mutlak pathnames yazmaya zorlamak istiyorum.

Ben güçlü statik yazarak yerini alacak zayıf dinamik yazarak, oy. O kadar çok insanlara yardım ve yenilere değil, sadece istiyorum ...

Nedeniyle yorumlarına düzenleyin:

Evet yazarak yerini alacak. Güçlü statik yazarak, Java / C # çok daha security getiriyor gibi diğer dillerin bulmak ve inanılmaz kodunuzu okunabilirliği artırmak gibi. Anlatayım:

//Usual code anyone can have 
function myFunction($arrayOfInts, $string)
{
    if( !is_array($arrayOfInts) )
        throw Exception();
    if (!is_string($string))
        throw Exception();
    foreach($arrayOfInts as $supposedInt)
        if ( !is_int($supposedInt) )
            throw Exception();

    /* Only now is business code. Oh wait no, you need to ensure
    that these parameters follow your business rules (e.g. : $supposedInts < 5, etc..) */

}

//More readable code :
function myFunction(Array<int> $arrayOfInts, String $string)
{
    //Easier no ?

}

Ve ben bile güvenlik hakkında konuşmak yok. O kadar çok hata / hataları bir matematik fonksiyonu için parametre olarak boş bir dize kullanarak çünkü happend ...

Hala kötü olacağını düşünüyorum?

Ben mevcut fonksiyon adlandırma düzenini kaldırmak istiyorum.