PathJoin 은 파일 시스템 경로를 정규화하고 결합하기위한 PHP 라이브러리입니다. 이 라이브러리의 목적은 플랫폼 및 시스템 디렉토리 분리기에 따라 파일 시스템 경로를보다 쉽게 작업 할 수 있도록하는 것입니다.
파일 경로 정규화의 목적은 단일 일관된 파일 경로 표현을 제공하는 것입니다. 다시 말해,이 라이브러리의 정규화는 해결됩니다 . 그리고 .. 디렉토리 참조 및 다중 디렉토리 분리기를 하나로 압축합니다. 이로 인해 경로를 서로 비교할 때 일반적인 문제를 피하는 것이 훨씬 쉬워집니다.
PHP는 내장 기능 realpath() 제공하지만 파일 시스템을 사용하여 작동하기 때문에 모든 경우에 사용할 수있는 것은 아닙니다. 이 라이브러리는 단순히 문자열 처리를 사용하여 경로를 결합하고 정규화합니다. 파일이나 디렉토리를 읽을 수 있거나 존재할 필요가 없습니다.
API 문서는 http://kit.riimu.net/api/pathjoin/에서 확인할 수 있습니다.
이 라이브러리를 설치하는 가장 쉬운 방법은 작곡가를 사용하여 종속성을 처리하는 것입니다. 작곡가를 통해이 라이브러리를 설치하려면 다음과 같은 두 단계를 따르십시오.
프로젝트 루트에서 Composer 명령 줄 설치를 실행하여 composer.phar 를 획득하십시오.
설치 스크립트를 실행하면 composer.phar 파일이 프로젝트 루트에 있어야하며 다음 명령을 실행할 수 있습니다.
php composer.phar require "riimu/kit-pathjoin:^1.2"
Composer를 통해이 라이브러리를 설치 한 후에는 설치 중에 작곡가가 생성 한 vendor/autoload.php 파일을 포함하여 라이브러리를로드 할 수 있습니다.
Composer를 사용하는 방법에 이미 익숙한 경우 다음 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 ; Path::normalize() 또한 부울 값을 취하고 기본값을 true로하는 두 번째 매개 변수 $prependDrive 수락합니다. Windows 플랫폼에서 드라이브 문자는 절대 경로의 중요한 부분입니다. 따라서, 매개 변수가 true로 설정되면,이 메소드는 절대 경로가 자체를 제공하지 않으면 현재 작업 디렉토리의 드라이브 문자를 절대 경로로 선불로 만듭니다.
작업 디렉토리가 C : Drive에있는 경우 Windows Systems의 경우 다음 예제가 참입니다.
<?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입니다.
라이센스 및 복사 정보는 라이센스를 참조하십시오.