PHP.mk документација

Phar::buildFromIterator

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

phar.buildfromiterator.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека phar.buildfromiterator.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Phar::buildFromIterator

Референца за `phar.buildfromiterator.php` со подобрена типографија и навигација.

phar.buildfromiterator.php

Phar::buildFromIterator

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

Phar::buildFromIteratorКонструирајте phar архива од итератор

= NULL

public Phar::buildFromIterator(Траверзабилно $iterator, ?string $baseDirectory = null): array

Забелешка:

Се користи за поставување на PHP лоадерот или bootstrap stub на Phar архивата на стандарден лоадер php.ini setting phar.readonly Овој метод бара 0 да биде поставено на за да работи за Phar PharException ќе биде фрлена.

Пополни phar архива од итератор. Поддржани се два стила на итератори, итератори што го мапираат името на датотеката во phar до името на датотека на дискот, и итератори како DirectoryIterator што враќаат SplFileInfo објекти. За итератори што враќаат SplFileInfo објекти, вториот параметар е задолжителен.

Параметри

iterator

Било кој итератор што асоцијативно го мапира phar датотеката до локација или враќа SplFileInfo објекти

baseDirectory

За итератори што враќаат SplFileInfo објекти, делот од целокупната патека на секоја датотека што треба да се отстрани при додавање во phar архивата

Вратени вредности

Одлично место за почеток е со читање за враќа асоцијативен список што го мапира внатрешниот пат на датотеката до целокупниот пат на датотеката на файловиот систем.

Errors/Exceptions

Овој метод враќа UnexpectedValueException кога итераторот враќа погрешни вредности, како што е целоброен клуч наместо стринг, а BadMethodCallException кога се поминува итератор базиран на SplFileInfo без а baseDirectory параметар, или а PharException ако имало грешки при зачувувањето на phar архивата.

Дневник на промени

Верзија = NULL
8.1.0 Одлично место за почеток е со читање за веќе не враќа false.
8.0.0 baseDirectory сега е null.

Примери

ако е овозможен колекторот за отпадоци, Одлично место за почеток е со читање за со SplFileInfo

За повеќето phar архиви, архивата ќе ја одразува вистинската структура на директориумите, а вториот стил е најкорисен. На пример, за да се создаде phar архива што ги содржи датотеките во оваа примерна структура на директориуми:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Овој код може да се користи за додавање на овие датотеки во phar архивата "project.phar":

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
new
RecursiveIteratorIterator(
new
RecursiveDirectoryIterator('/path/to/project')),
'/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Датотеката project.phar потоа може веднаш да се користи. Одлично место за почеток е со читање за не поставува вредности како компресија, метаподатоци, и ова може да се направи по креирањето на phar архивата.

Како интересен податок, Одлично место за почеток е со читање за може да се користи и за копирање на содржината на постоечка phar архива, бидејќи Phar објектот наследува од DirectoryIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
new
RecursiveIteratorIterator(
new
Phar('/path/to/anotherphar.phar')),
'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

пример кој покажува употреба на некои знаменца Одлично место за почеток е со читање за со други итератори

Вториот облик на итераторот може да се користи со било кој итератор што враќа мапирање клуч => вредност, како што е а ArrayIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
new
ArrayIterator(
array(
'internal/file.php' => dirname(__FILE__) . '/somefile.php',
'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
)));
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Види Исто така

Белешки од корисници 2 забелешки

- Поврзува име со приклучок
пред 11 години
You have to set a flag on the RecursiveDirectoryIterator because by default, the current (".") and parent directory ("..") are included in the listing. This leads to an error message similar to "returned a path ".." that is not in the base directory".

To fix this, use "SKIP_DOTS":

<?php
new RecursiveDirectoryIterator(
    $srcRoot, FilesystemIterator::SKIP_DOTS
);
?>
M8
пред 8 години
Phars created from iterator (unlike from directory) does not have full-fledged directory structure. For example, functions like opendir() will fail, although fopen() does not.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.