Pathjoin เป็นไลบรารี PHP สำหรับการทำให้เป็นมาตรฐานและเข้าร่วมเส้นทางระบบไฟล์ จุดประสงค์ของไลบรารีนี้คือการทำงานให้ง่ายขึ้นกับเส้นทางระบบไฟล์โดยไม่คำนึงถึงแพลตฟอร์มและตัวคั่นไดเรกทอรีระบบ
จุดประสงค์ของการทำให้เป็นมาตรฐานของพา ธ ไฟล์คือการแสดงเส้นทางไฟล์ที่สอดคล้องกันเดียว กล่าวอีกนัยหนึ่งการทำให้เป็นมาตรฐานในไลบรารีนี้จะแก้ไข . และ .. การอ้างอิงไดเรกทอรีและยังควบแน่นตัวคั่นไดเรกทอรีหลายตัวเป็นหนึ่งเดียว สิ่งนี้ทำให้ง่ายต่อการหลีกเลี่ยงปัญหาที่พบบ่อยเมื่อเปรียบเทียบเส้นทางกับกันและกัน
ในขณะที่ PHP มีฟังก์ชั่นในตัว realpath() มันไม่สามารถใช้งานได้ในทุกกรณีเนื่องจากใช้งานได้โดยใช้ระบบไฟล์ ไลบรารีนี้รวมและทำให้เส้นทางปกติโดยใช้การจัดการสตริง ไม่มีข้อกำหนดสำหรับไฟล์หรือไดเรกทอรีที่สามารถอ่านได้หรือแม้กระทั่งมีอยู่
เอกสาร API มีอยู่ที่: http://kit.riimu.net/api/pathjoin/
วิธีที่ง่ายที่สุดในการติดตั้งไลบรารีนี้คือการใช้นักแต่งเพลงเพื่อจัดการกับการพึ่งพาของคุณ ในการติดตั้งไลบรารีนี้ผ่านนักแต่งเพลงเพียงทำตามสองขั้นตอนเหล่านี้:
รับ composer.phar โดยเรียกใช้การติดตั้งบรรทัดคำสั่ง Composer ในรูทโครงการของคุณ
เมื่อคุณเรียกใช้สคริปต์การติดตั้งแล้วคุณควรมีไฟล์ composer.phar ในรูทโปรเจ็กต์ของคุณและคุณสามารถเรียกใช้คำสั่งต่อไปนี้:
php composer.phar require "riimu/kit-pathjoin:^1.2"
หลังจากติดตั้งไลบรารีนี้ผ่านนักแต่งเพลงคุณสามารถโหลดไลบรารีได้โดยรวมไฟล์ vendor/autoload.php ที่สร้างโดยนักแต่งเพลงในระหว่างการติดตั้ง
หากคุณคุ้นเคยกับวิธีการใช้นักแต่งเพลงอยู่แล้วคุณอาจเพิ่มไลบรารีเป็นอีกทางเลือกหนึ่งโดยเพิ่มไฟล์ composer.json ต่อไปนี้ลงในโครงการของคุณและเรียกใช้คำสั่ง composer install :
{
"require" : {
"riimu/kit-pathjoin" : " ^1.2 "
}
} หากคุณไม่ต้องการใช้ Composer เพื่อโหลดไลบรารีคุณสามารถดาวน์โหลดห้องสมุดด้วยตนเองได้ด้วยการดาวน์โหลดรุ่นล่าสุดและแยกโฟลเดอร์ src ไปยังโครงการของคุณ จากนั้นคุณสามารถรวมไฟล์ src/autoload.php ที่ให้ไว้เพื่อโหลดคลาสไลบรารี
ห้องสมุดนี้มีสองวิธีที่สะดวก Path::normalize() และ Path::join() วิธีการทั้งสองนี้ทำงานในลักษณะที่คล้ายกันมาก ความแตกต่างที่สำคัญคือในขณะที่วิธี join() สามารถยอมรับเส้นทางหลายเส้นทางในการเข้าร่วม normalize() จะยอมรับเส้นทางเดียวเท่านั้น ทั้งสองวิธีจะส่งคืนเส้นทางปกติตามผลลัพธ์
ตัวอย่างต่อไปนี้จะมีกรณีการใช้งานที่แตกต่างกันมากมายของไลบรารี:
<?php
require ' vendor/autoload.php ' ;
use Riimu Kit PathJoin Path ;
// Both of the following will output 'foo/bar' on Unix and 'foobar' on Windows
echo Path:: normalize ( ' foo/bar ' ) . PHP_EOL ;
echo Path:: join ( ' foo ' , ' bar ' ) . PHP_EOL ;
// The join method accepts multiple arguments or a single array
echo Path:: join ( ' foo ' , ' bar ' , ' baz ' ) . PHP_EOL ; // outputs 'foo/bar/baz'
echo Path:: join ([ ' foo ' , ' bar ' , ' baz ' ]) . PHP_EOL ; // outputs 'foo/bar/baz'
// The '.' and '..' directory references will be resolved in the paths
echo Path:: normalize ( ' foo/./bar/../baz ' ) . PHP_EOL ; // outputs 'foo/baz'
echo Path:: join ([ ' foo/./ ' , ' bar ' , ' ../baz ' ]) . PHP_EOL ; // outputs 'foo/baz'
// Only the first path can denote an absolute path in the join method
echo Path:: join ( ' /foo ' , ' /bar/baz ' ) . PHP_EOL ; // outputs '/foo/bar/baz'
echo Path:: join ( ' foo ' , ' /bar ' ) . PHP_EOL ; // outputs 'foo/bar'
echo Path:: join ( ' foo ' , ' ../bar ' , ' baz ' ) . PHP_EOL ; // outputs 'bar/baz'
echo Path:: join ( '' , ' /bar ' , ' baz ' ) . PHP_EOL ; // outputs 'bar/baz'
// Relative paths can start with a '..', but absolute paths cannot
echo Path:: join ( ' /foo ' , ' ../../bar ' , ' baz ' ) . PHP_EOL ; // outputs '/bar/baz'
echo Path:: join ( ' foo ' , ' ../../bar ' , ' baz ' ) . PHP_EOL ; // outputs '../bar/baz'
// Empty paths will result in a '.'
echo Path:: normalize ( ' foo/.. ' ) . PHP_EOL ;
echo Path:: join ( ' foo ' , ' bar ' , ' ../.. ' ) . PHP_EOL ; Path::normalize() ยังยอมรับพารามิเตอร์ที่สอง $prependDrive ที่ใช้ค่าบูลีนและค่าเริ่มต้นเป็นจริง บนแพลตฟอร์ม Windows จดหมายไดรฟ์เป็นส่วนสำคัญของเส้นทางที่สมบูรณ์ ดังนั้นเมื่อพารามิเตอร์ถูกตั้งค่าเป็นจริงวิธีการจะรวมตัวอักษรไดรฟ์ของไดเรกทอรีการทำงานปัจจุบันไปยังเส้นทางสัมบูรณ์หากเส้นทางสัมบูรณ์ไม่ได้ให้ตัวเอง
ตัวอย่างต่อไปนี้เป็นจริงสำหรับระบบ Windows หากไดเรกทอรีการทำงานอยู่บน C: Drive:
<?php
require ' vendor/autoload.php ' ;
use Riimu Kit PathJoin Path ;
echo Path:: normalize ( ' /foo/bar ' ) . PHP_EOL ; // outputs 'C:fooBar'
echo Path:: normalize ( ' D:/foo/bar ' ) . PHP_EOL ; // outputs 'D:fooBar'
echo Path:: normalize ( ' /foo/bar ' , false ) . PHP_EOL ; // outputs 'fooBar' ห้องสมุดนี้เป็นลิขสิทธิ์ (c) 2014-2017 Riikka Kalliomäki
ดูใบอนุญาตสำหรับใบอนุญาตและข้อมูลการคัดลอก