. inc คืออะไรและทำไมจึงใช้งาน


139

ฉันมักจะเห็นตัวอย่างใน PHP ที่รวมไฟล์. inc ความหมายของ. inc คืออะไร ใช้ทำอะไร? อะไรคือข้อเสียและข้อดีของการใช้มัน?

คำตอบ:


268

มันไม่มีความหมายมันเป็นเพียงแค่นามสกุลไฟล์ มันเป็นระเบียบของบางคนที่จะตั้งชื่อไฟล์ที่มีนามสกุล. inc ถ้าไฟล์นั้นถูกออกแบบมาให้รวมอยู่ในไฟล์ PHP อื่น ๆ แต่มันก็เป็นแค่การประชุมเท่านั้น

มีข้อเสียที่เป็นไปได้ซึ่งปกติแล้วเซิร์ฟเวอร์จะไม่ได้รับการกำหนดค่าให้แยกวิเคราะห์ไฟล์. inc เป็น php ดังนั้นหากไฟล์อยู่ในเว็บรูทของคุณและเซิร์ฟเวอร์ของคุณได้รับการกำหนดค่าด้วยวิธีเริ่มต้นผู้ใช้สามารถดูซอร์สโค้ด PHP ของคุณ ไฟล์. inc โดยไปที่ URL โดยตรง

ข้อได้เปรียบที่เป็นไปได้เพียงอย่างเดียวคือมันง่ายต่อการระบุไฟล์ที่ใช้รวม แม้ว่าเพียงแค่ให้พวกเขามีนามสกุล. php และวางไว้ในโฟลเดอร์รวมมีผลเหมือนกันโดยไม่มีข้อเสียดังกล่าวข้างต้น


8
@domanokz ใช่มันจะปลอดภัยที่จะใช้แล้ว จะถือว่าเป็น php เฉพาะเมื่อใช้ในโครงสร้างrequireหรือincludeและเป็นข้อความธรรมดาตลอดเวลาที่เหลือ ถือว่าเป็นข้อความบนเซิร์ฟเวอร์ของคุณจะไม่เจ็บมันเจ็บเฉพาะเมื่อรหัสของคุณเป็นข้อความให้กับผู้ใช้ปลายทาง)
พอล

@ พอลโปรฉันสงสัยมาก่อนหน้านี้ซักพักแล้วขอบคุณที่ทำให้มันชัดเจน!
RealDeal_EE'18

1
คำอธิบายที่ดี เพิ่งเริ่มงานใหม่และเห็นสิ่งเหล่านี้เกลื่อนไปทั่วทั้งแอปพลิเคชัน ฉันไม่รู้ว่ามันเป็นการประชุมที่บริสุทธิ์ ขอบคุณ!
Chev

4
เกี่ยวกับเซิร์ฟเวอร์ที่ไม่ได้รับการกำหนดค่าให้แยกไฟล์เป็น php มันไม่จำเป็นต้องเป็นอย่างที่พวกเขาจะอ่านจากไฟล์ php อื่น ๆ ในต้อง / รวม ปลอดภัยไหม ในฐานะที่เป็น Paulpro บ่งบอกว่าคุณไม่ต้องการให้ผู้ใช้ปลายทางอ่านรหัสดังนั้นคุณจึงต้องการกำหนดค่าไฟล์ที่ผู้ใช้ปลายทางไม่สามารถเรียกคืนได้ด้วยบางสิ่งเช่น "RedirectMatch 403 /.*\.inc$" ใน Apache conf หรือ htaccess
ClearCrescendo

หมายเหตุ: นี่คือไม่เพียง แต่สำหรับและ.php .incPHP รวมถึงการทำงานกับไฟล์ประเภทอื่น ๆ การรวม, '.html', '.js', '.css', '.txt' หรือนามสกุลไฟล์แบบกำหนดเองใด ๆ ที่คุณคิดจะทำให้ PHP แยกวิเคราะห์โค้ด PHP จากมัน มีประโยชน์เมื่อคุณต้องการสร้างฐานข้อมูลจากไฟล์และต้องการบอกว่าเป็นไฟล์ฐานข้อมูลหรือไม่ .dataเช่น คุณสามารถใช้ความคิดเห็นของ @ ClearCrescendo ด้านบนเพื่อความปลอดภัย
Jomar Sevillejo

71

หากคุณกังวลเกี่ยวกับเนื้อหาของไฟล์ที่ให้บริการแทนที่จะแสดงผล file.inc.phpคุณสามารถใช้นามสกุลคู่ที่ชอบ: จากนั้นให้บริการโดยมีจุดประสงค์เดียวกันคือให้ความช่วยเหลือและบำรุงรักษา

ปกติฉันมีไฟล์ php 2 ไฟล์สำหรับแต่ละหน้าในเว็บไซต์ของฉัน:

  1. หนึ่งชื่อwelcome.phpในโฟลเดอร์รูทที่มีมาร์กอัพ HTML ทั้งหมด
  2. และอีกชื่อหนึ่งwelcome.inc.phpในincโฟลเดอร์ที่มีฟังก์ชั่น PHP ทั้งหมดเฉพาะกับwelcome.phpหน้า

แก้ไข: ประโยชน์ของการใช้การขยายสองครั้ง.inc.phpก็คือว่า IDE ใด ๆ ยังคงสามารถรับรู้ไฟล์เป็นรหัส PHP


4
+1 นั่นคือมูลค่าการกล่าวขวัญฉันทำอย่างนั้นในหนึ่งในโครงการของฉัน
dpp

17

โดยทั่วไปหมายถึงไฟล์ที่ต้องรวมและไม่ได้สร้างสคริปต์แบบสแตนด์อโลนในตัวเอง

นี่คือการประชุมไม่ใช่เทคนิคการเขียนโปรแกรม

แม้ว่าหากเว็บเซิร์ฟเวอร์ของคุณไม่ได้รับการกำหนดค่าอย่างเหมาะสมก็อาจทำให้ไฟล์มีนามสกุลเช่น. inc


12

เป็นเพียงวิธีการที่นักพัฒนาซอฟต์แวร์จะสามารถระบุไฟล์ที่ต้องการใช้งานได้อย่างง่ายดาย มันเป็นแบบแผนนิยม มันไม่มีความหมายพิเศษใด ๆกับ PHP และจะไม่เปลี่ยนพฤติกรรมของ PHP หรือสคริปต์เอง


4

นี่เป็นข้อตกลงที่โปรแกรมเมอร์มักใช้เพื่อระบุชื่อไฟล์ที่แตกต่างกันสำหรับไฟล์รวม ดังนั้นหากนักพัฒนาซอฟต์แวร์คนอื่นกำลังทำงานกับรหัสของพวกเขาเขาสามารถระบุได้อย่างง่ายดายว่าทำไมไฟล์นี้ถึงอยู่ที่นั่นและอะไรคือจุดประสงค์ของไฟล์นี้เพียงแค่เห็นชื่อของไฟล์


3

เพียงเพิ่ม ข้อเสียอีกอย่างก็คือไฟล์. in ไม่ได้รับการยอมรับจาก IDE ดังนั้นคุณจึงไม่สามารถใช้ประโยชน์จากคุณสมบัติการคาดเดารหัสอัตโนมัติ


2

ในความคิดของฉันเหล่านี้ถูกใช้เป็นวิธีการค้นหาอย่างรวดเร็วรวมถึงไฟล์เมื่อมีการพัฒนา จริงๆแล้วสิ่งเหล่านี้ล้าสมัยไปแล้วกับการประชุมและการออกแบบกรอบ


นี่คือความคิดเห็นที่ไร้ความหมาย ฉันมักจะใช้. inc เพื่อรวมไฟล์ไว้ด้วยเพราะมันง่ายและไม่มีเชิงลบและมีเพียงข้อดี คำว่า 'อนุสัญญา' ไม่มีการอ้างอิงใด ๆ ที่ฉันรับรู้ในบริบทนี้ และกรอบ PHP ไม่มีความคิดไม่เคยสัมผัสตัวเองฉันเขียนรหัสดังนั้นความคิดที่ว่า 'กรอบ' แทนที่การเข้ารหัส PHP นั้นผิด ไม่มีอะไรผิดปกติกับการใช้สิ่งต่าง ๆ หากคุณชอบ แต่เชื่อว่ามันถูกแทนที่ด้วยการเขียนโปรแกรมมาตรฐานในโปรแกรมแก้ไขโค้ด
Lizardx

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.