2016-09-24 10 views
3

내 응용 프로그램에서 phar를 사용해 보았지만 나에게 약간의 문제가있다. 이전에 나는 웹 프로젝트를 만들었고 phar에 html 파일을 포함하는 클래스와 PHP 파일을 넣었지만 정적 파일을 phar로 가져올 수 없었고 html 태그에서 참조 할 수 없었습니다. 내가 한 일은 다음과 같습니다.PHP : html의 phar 아카이브 안에있는 정적 파일 참조

  • 내 클래스와 HTML 코드가 포함 된 phar 아카이브가 만들어졌습니다. 내가 cli.php에서 cli 액세스 및 작업을 위해 두 개의 스텁을 만들었고 웹 액세스를 위해 index.php를 썼습니다 (이 파일은 다른 PHP 파일을 필요로하며 html 코드를 분명히 나타냄). phing의 build.xml 파일의

의 Phar 빌드의 conf :

<pharpackage 
    destfile="./target/${phar.file.name}.phar" 
    basedir="./" 
    webstub="index.php" 
    clistub="index.php"> 
    <fileset refid="pharBuild"/> ... 

cli.php 파일은 다음과 같다 :

<?php 
if (php_sapi_name() == "cli") { 
require_once "cli.php"; 
} else { 
// prepare and print the web page. evidently some HTML tags. 
:

<?php 
if ($argv[1] === "op1") { 
    // do something 
... 

index.php 파일이 같다

  • 구성 접기 어 물건에 대한 ... 당신은 알아 :
  • 이미지, 스타일 및 물건에 대한 자산 폴더.
  • phar 아카이브가 포함 된 index.php 파일을 추가하십시오. 나는 phar 아카이브를 직접 실행할 수 없었다.

그렇다면 Phar 파일로 이미지, 스타일 및 js를 가져올 수 있습니까? html 페이지에 이미지 (예 : <img src="IMAGE-LOCATION-I-DONT-KNOW">)가 필요할 때 현재 phar 파일에 CSS /, js/images/폴더를 넣고 현재 코드를 너무 많이 변경하지 않고 내 phar 파일 안에있는 파일에서 가져옵니다. .

답변

1

설치가 작동하지 않는 이유가 확실하지 않지만 PHAR을 통해 정적 파일에 액세스 할 수 있습니다. 여기에 내가있어 무엇하십시오 resources뿐만 아니라

build.xml

<target name="package"> 
    <pharpackage basedir="." destfile="./my-project.phar" stub="phar_stub.php" compression="none"> 
     <fileset dir="src"> 
      <include name="**/**"/> 
     </fileset> 
     <fileset dir="vendor"> 
      <include name="**/**"/> 
     </fileset> 
     <fileset dir="public"> 
      <include name="**/**"/> 
     </fileset> 
    </pharpackage> 
</target> 

phar_stub.php

<?php 

Phar::mungServer(['REQUEST_URI', 'SCRIPT_NAME']); 
Phar::webPhar(null, __DIR__ . "/public/index.php"); 
__HALT_COMPILER(); 

srcvendor 클래스를 포함하고 publicindex.php (응용 프로그램에 대한 진입 점을) 포함 css와 js 폴더.

일단 내가 통해 내 응용 프로그램에 액세스 할 수 있습니다 배치 : 어떤 것, 나는 확실히 "압축 = 'gzip을'을 '가지고 있었다 고투 http://localhost/my-project.phar/public/resource/app.css

한 가지 : http://localhost/my-project.phar/public/index.php/some/route

그리고 정적 리소스를 통해 액세스 할 수 있습니다 브라우저에 압축 된 버전을 제공하지만 브라우저는 압축 된 버전을 압축 해제하는 방법을 찾지 못했습니다. 나는 너무 많이 가지고 놀지 않고 압축을 해제했다. 희망은 도움이

+0

고마워요! 스텁 파일이 문제였습니다. 나는 그것을 바꿨고 효과가 있었다. 이 mungServer에 대해 검색해야합니다. 좋은 하루 되세요! – Kambaa