2016-09-24 10 views
3

私のアプリケーションでpharを使ってみましたが、私には少し問題があります。以前私はWebプロジェクトを作成し、pharにhtmlファイルを含むクラスとphpファイルを入れましたが、静的ファイルをpharにインポートすることはできず、htmlタグからそれらを参照できませんでした。私がしたことは:PHP:htmlのpharアーカイブ内にある静的ファイルを参照する

  • 私のクラスとhtmlコードを含むpharアーカイブが作成されました。 cliアクセスとcli.phpの操作のために2つのスタブを作成し、Webアクセスのためにindex.phpを書きました(このファイルには他のPHPファイルが必要で、明らかにHTMLコードをエコーし​​ます)。

のbuild.xmlをPhingののの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に到達できますか?私はこのpharの中にcss /、js/images/foldersを置いて、HTMLページに画像が必要なとき(例えば、<img src="IMAGE-LOCATION-I-DONT-KNOW">)、現在のコードをあまり変更しないで、pharファイルの中にあるファイルから取得します。

答えて

1

セットアップがうまくいかない理由はわかりませんが、PHARで静的ファイルにアクセスできます。ここで私が持っているものです:

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(アプリケーションへのエントリ・ポイント)だけでなく、resourcesが含まれています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

関連する問題