개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.14 12:46

Phar::buildFromIterator 함수 사용에 대한 질문

  • 모바일최적화광 2일 전 2025.03.14 12:46
  • 3
    1
제가 Phar::buildFromIterator 함수를 사용하여 Phar 아카이브를 생성하려고 합니다. 하지만, 이 함수의 첫 번째 인자인 'iterator'에는 어떤 종류의 객체를 넣어야 하는지 정확하게 모르겠습니다. Phar 아카이브에 포함할 파일을 저장하기 위해 사용하는 PHP 파일 객체를 넣을 수 있나요? 아니면 PharData 객체를 넣어야 하나요?

제가 Phar::buildFromIterator 함수에서 iterator 인자를 어떻게 사용해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    Phar::buildFromIterator 함수의 첫 번째 인자인 'iterator'에는 반복 가능한 객체를 넣어야 합니다. 반복 가능한 객체는 PharData 객체, ArrayIterator 객체, SplFileObject 객체, 또는 PHP 파일 객체를 포함할 수 있습니다.

    PHP 파일 객체를 넣을 수 있지만, PharData 객체를 넣는 것이 더 적합합니다. PharData 객체는 Phar 아카이브에 포함할 파일을 저장하기 위해 사용하기 때문에 Phar 아카이브에 포함할 파일을 PharData 객체에 저장한 후 Phar::buildFromIterator 함수에 PharData 객체를 넣는 것이 좋습니다.

    예를 들어, 다음과 같이 Phar 아카이브에 포함할 파일을 PharData 객체에 저장한 후 Phar::buildFromIterator 함수에 PharData 객체를 넣을 수 있습니다.

    #hostingforum.kr
    php
    
    $pharData = new PharData('example.phar');
    
    $pharData->addFile('file1.txt');
    
    $pharData->addFile('file2.txt');
    
    
    
    $phar = new Phar('example.phar');
    
    $phar->buildFromIterator($pharData);
    
    


    또는 Phar::buildFromIterator 함수에 ArrayIterator 객체를 넣을 수 있습니다.

    #hostingforum.kr
    php
    
    $pharData = new PharData('example.phar');
    
    $pharData->addFile('file1.txt');
    
    $pharData->addFile('file2.txt');
    
    
    
    $arrayIterator = new ArrayIterator($pharData->getContents());
    
    $phar = new Phar('example.phar');
    
    $phar->buildFromIterator($arrayIterator);
    
    


    또는 Phar::buildFromIterator 함수에 SplFileObject 객체를 넣을 수 있습니다.

    #hostingforum.kr
    php
    
    $pharData = new PharData('example.phar');
    
    $pharData->addFile('file1.txt');
    
    $pharData->addFile('file2.txt');
    
    
    
    $splFileObject = new SplFileObject('file1.txt');
    
    $arrayIterator = new ArrayIterator([$splFileObject]);
    
    $phar = new Phar('example.phar');
    
    $phar->buildFromIterator($arrayIterator);
    
    


    또는 Phar::buildFromIterator 함수에 PHP 파일 객체를 넣을 수 있습니다.

    #hostingforum.kr
    php
    
    $pharData = new PharData('example.phar');
    
    $pharData->addFile('file1.txt');
    
    $pharData->addFile('file2.txt');
    
    
    
    $file = fopen('file1.txt', 'r');
    
    $arrayIterator = new ArrayIterator([$file]);
    
    $phar = new Phar('example.phar');
    
    $phar->buildFromIterator($arrayIterator);
    
    


    Phar::buildFromIterator 함수의 첫 번째 인자인 'iterator'에는 반복 가능한 객체를 넣어야 하므로, PharData 객체, ArrayIterator 객체, SplFileObject 객체, 또는 PHP 파일 객체를 넣을 수 있습니다. PharData 객체를 넣는 것이 더 적합합니다.

    2025-03-14 12:47

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 3,902건 / 1 페이지

검색

게시물 검색