.İnc nedir ve neden kullanılır?


139

PHP'de genellikle.inc dosyalarını içeren örnekler görüyorum. .İnc'nin anlamı nedir? Ne için kullanılır? Kullanmanın dezavantajları ve avantajları nelerdir?

Yanıtlar:


268

Bunun bir anlamı yok, sadece bir dosya uzantısı. Bu dosya diğer PHP dosyaları tarafından içerilmek üzere tasarlanmışsa, bazı kişilerin .inc uzantılı dosyaları adlandırması konvansiyonudur, ancak yalnızca konvansiyondur.

Sunucuların normalde .inc dosyalarını php olarak ayrıştıracak şekilde yapılandırılmadığı olası bir dezavantajı vardır, bu nedenle dosya web kökünüzde oturur ve sunucunuz varsayılan şekilde yapılandırılırsa, bir kullanıcı php kaynak kodunuzu URL'yi doğrudan ziyaret ederek .inc dosyası.

Tek olası avantajı, hangi dosyaların içerildiğini tanımlamanın kolay olmasıdır. Her ne kadar sadece bir .php uzantısı vermek ve bunları bir ekleme klasörüne yerleştirmek, yukarıda belirtilen dezavantaj olmadan aynı etkiye sahiptir.


8
@domanokz Evet o zaman kullanmak güvenli olacak. Sadece a requireveya includeyapıda kullanıldığında php olarak değerlendirilir ve geri kalan zamanda düz metin olarak ele alınır. Sunucunuzda metin olarak işlem yapmak zarar vermez, yalnızca kodunuz son kullanıcıya metin olarak sunulduğunda zarar verir).
Paul

@Paulpro Bir süredir bunu merak ediyordum, bunu açıkladığınız için teşekkür ederim!
RealDeal_EE'18

1
Harika bir açıklama. Yeni bir işe başladım ve uygulama boyunca bu çöpleri gördüm. Bunun sadece bir kongre olduğunu bilmiyordum. Teşekkürler!
Chev

4
Sunucunun php olarak parse.inc dosyalarına yapılandırılamaması. Aslında sadece requir / include diğer php dosyalarından okunduğu gibi olmak gerekmez. Güvenli mi? Paulpro'un meraklı son kullanıcı okuma kodunu istemediğinizi belirttiği için, dosyaları Apache conf'de "RedirectMatch 403 /.*\.inc$" gibi bir şeyle son kullanıcı tarafından alınamayacak şekilde yapılandırmak istiyorsunuz. htaccess
ClearCrescendo

Not: Bu sadece .phpve için değildir .inc. PHP ayrıca diğer dosya türleriyle de çalışır. '.Html', '.js', '.css', '.txt' veya aklınıza gelebilecek herhangi bir özel dosya uzantısı da PHP ayrıştırmasının PHP kodunu okutmasını sağlayacaktır. Dosya tabanlı bir veritabanı oluşturmak istediğinizde ve bunun bir veritabanı dosyası olup olmadığını söylemek istediğinizde kullanışlıdır. gibi .data. Daha sonra güvenliğini sağlamak için yukarıdaki @ ClearCrescendo'nun açıklamasını kullanabilirsiniz.
Jomar Sevillejo

71

Dosyanın çıktısı yerine sunulmakta olan içeriği hakkında endişeleriniz varsa. Sen gibi çifte uzantısını kullanabilirsiniz: file.inc.php. Daha sonra aynı yardımseverlik ve sürdürülebilirlik amacına hizmet eder.

Normalde sitemdeki her sayfa için 2 php dosyası var:

  1. welcome.phpKök klasörde adlandırılan ve tüm HTML işaretlemesini içeren bir ad .
  2. Ve bir başka adlandırılmış welcome.inc.phpiçinde inctüm PHP fonksiyonları özgü içeren klasörün welcome.phpsayfa.

DÜZENLEME: Çift uzantı kullanmanın bir başka yararı .inc.phpda, herhangi bir IDE'nin dosyayı PHP kodu olarak tanıyabilmesidir.


4
+1 Bahsetmeye değer, bunu projelerimden birinde yaptım.
dpp

17

Genellikle onun dahil edilmesi gereken ve kendi başına tek başına komut dosyası yapmayan bir dosya anlamına gelir.

Bu bir programlama tekniğidir.

Web sunucunuz düzgün yapılandırılmamış olsa da, .inc gibi uzantılara sahip dosyaları açığa çıkarabilir.


12

Bu, geliştiricinin, içerdiği gibi kullanılması gereken dosyaları kolayca tanımlayabilmesinin bir yoludur. Bu popüler bir kongre. Herhangi yok özel bir anlam PHP ve PHP davranışını veya alfabenin kendisini değişmez.


4

Bu, programcının genellikle içerme dosyaları için farklı dosya adlarını tanımlamak için kullandığı bir kuraldır. Böylece, diğer geliştiriciler kodları üzerinde çalışıyorsa, bu dosyanın neden olduğunu ve sadece dosyanın adını görerek bu dosyanın amacını kolayca belirleyebilir.


3

Sadece eklemek için. Başka bir dezavantaj, .inc dosyaları IDE tarafından tanınmaz, böylece otomatik tamamlama veya kod tahmin özelliklerinden yararlanamazsınız.


2

Benim düşünceme göre, bunlar geliştirirken içerme dosyalarını hızlı bir şekilde bulmak için bir yol olarak kullanıldı. Gerçekten bunlar konvansiyonlar ve çerçeve tasarımları ile geçersiz kılındı.


Bu anlamsız bir yorum. Dosya eklemek için her zaman .inc kullanıyorum çünkü kolay ve negatif değil, sadece olumlu. 'Sözleşmeler' teriminin bu bağlamda farkında olduğum bir referansı yoktur. Ve PHP çerçeveleri, hiçbir fikrim yok, kendime asla dokunma, kod yazıyorum, bu yüzden 'frameworks' PHP kodlamasının yerini alan kavram sadece yanlış. İsterseniz şeyleri kullanmakla ilgili yanlış bir şey yoktur, ancak kod düzenleyicilerinde standart programlamanın değiştirildiğine inanmak yanlıştır.
Lizardx

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.