PharData::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromDirectory β€” Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ tar/zip-Π°Ρ€Ρ…ΠΈΠ² ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

ОписаниС

public function PharData::buildFromDirectory(string $directory, string $pattern = ""): array

НаполняСт tar/zip-Π°Ρ€Ρ…ΠΈΠ² содСрТимым Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ являСтся рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (pcre). Π€Π°ΠΉΠ»Ρ‹, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подходят ΠΏΠΎΠ΄ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π°Ρ€Ρ…ΠΈΠ², Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π΅Ρ‚. Если ΠΏΡ€ΠΈ создании Π°Ρ€Ρ…ΠΈΠ²Π° Π½ΡƒΠΆΠ½Π° большая ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ PharData::buildFromIterator().

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

directory

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Π°Ρ€Ρ…ΠΈΠ².

pattern

РСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π°Ρ€Ρ…ΠΈΠ².

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Phar::buildFromDirectory() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ассоциативный массив, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π° с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π½Π° дискС ΠΈΠ»ΠΈ false, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка.

Ошибки

ВыбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ BadMethodCallException, Ссли Π½Π΅ удаётся ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ PharException выбрасываСтся ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… записи Π½Π° диск.

Бписок измСнСний

ВСрсия ОписаниС
8.1.0 PharData::buildFromDirectory() большС Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования PharData::buildFromDirectory()

<?php
$phar
= new PharData('project.tar');
// Π΄ΠΎΠ±Π°Π²ΠΈΠΌ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
$phar->buildFromDirectory(dirname(__FILE__) . '/project');

$phar2 = new PharData('project2.zip');
// Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ .php Ρ„Π°ΠΉΠ»Ρ‹
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
?>

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • Phar::buildFromDirectory() - Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ phar-Π°Ρ€Ρ…ΠΈΠ² ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ², располоТСнных Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
  • PharData::buildFromIterator() - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ tar/zip-Π°Ρ€Ρ…ΠΈΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
0
dan ΒΆ
6 years ago
buildFromDirectory won't add empty subdirectories on 7.2