Pathjoin هي مكتبة PHP لتطبيع وربط مسارات نظام الملفات. الغرض من هذه المكتبة هو تسهيل العمل مع مسارات نظام الملفات غير المألوفة من النظام الأساسي وفاصل دليل النظام.
الغرض من تطبيع مسار الملف هو توفير تمثيل مسار ملف واحد ثابت. بمعنى آخر ، سيتم حل التطبيع في هذه المكتبة . و .. مراجع الدليل وأيضا تكثيف فواصل الدليل المتعددة في واحدة. هذا يجعل من الأسهل بكثير تجنب المشكلات الشائعة عند مقارنة المسارات ضد بعضها البعض.
على الرغم من أن PHP يوفر وظيفة مدمجة realpath() ، إلا أنها ليست قابلة للاستخدام في كل حالة لأنها تعمل باستخدام نظام الملفات. تجمع هذه المكتبة ببساطة بين المسارات وتطبيعها باستخدام معالجة السلسلة. لا يوجد أي شرط لتكون الملفات أو الدلائل قابلة للقراءة أو حتى موجودة.
وثائق API متوفرة على: http://kit.riimu.net/api/Pathjoin/
أسهل طريقة لتثبيت هذه المكتبة هي استخدام الملحن للتعامل مع تبعياتك. من أجل تثبيت هذه المكتبة عبر الملحن ، ما عليك سوى اتباع هاتين الخطوتين:
الحصول على composer.phar عن طريق تشغيل تركيب سطر الأوامر الملحن في جذر المشروع الخاص بك.
بمجرد تشغيل البرنامج النصي للتثبيت ، يجب أن يكون لديك ملف composer.phar في جذر المشروع الخاص بك ويمكنك تشغيل الأمر التالي:
php composer.phar require "riimu/kit-pathjoin:^1.2"
بعد تثبيت هذه المكتبة عبر الملحن ، يمكنك تحميل المكتبة من خلال تضمين ملف vendor/autoload.php الذي تم إنشاؤه بواسطة الملحن أثناء التثبيت.
إذا كنت معتادًا بالفعل على كيفية استخدام الملحن ، فيمكنك إضافة المكتبة بدلاً من ذلك كاعتماد عن طريق إضافة ملف composer.json التالي إلى مشروعك وتشغيل أمر composer install :
{
"require" : {
"riimu/kit-pathjoin" : " ^1.2 "
}
} إذا كنت لا ترغب في استخدام الملحن لتحميل المكتبة ، فيمكنك أيضًا تنزيل المكتبة يدويًا عن طريق تنزيل أحدث إصدار واستخراج مجلد 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 ; $prependDrive Path::normalize() على منصات 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.
انظر ترخيص الترخيص ونسخ المعلومات.