2014-03-29 5 views
2

PHP 응용 프로그램 개발자가 laravel-4를 웹 응용 프로그램을 작성하기위한 프레임 워크로 사용합니다. 지난 며칠 동안 웹 응용 프로그램에서 phar 파일을 만들고 싶었습니다. laravel 프레임 워크에서 생성되었습니다.PHP 응용 프로그램에서 phar 파일을 작성할 때 larvel과 같은 PHP 프레임 워크를 사용할 때 고려해야 할 내용

웹에서 도구를 빌드하여 php 아카이브 파일 (.phar)을 검색했으며 PHP box을 발견했습니다.이 도구는 매우 유용하며 phar 파일을 작성하기 위해 json 구성 파일을 사용하지만 내 phar를 작성하는 데 사용할 수 없습니다. 웹 응용 프로그램에서 phar 파일을 만들 때 많은 고려 사항이 있으므로 laravel과 같은 프레임 워크를 사용하십시오. 내 질문은 : 자동 로딩 메커니즘 작곡가 자동 로딩 메커니즘을 처리하는 방법을

1 등

laravel 사용 작곡가 자동 로더?

2 - 어떻게 프레임 워크 부트 스트랩 프로세스를 처리할까요? 'like laravel'

3 브라우저에서 phar 파일 내부에서 색인 페이지를 읽으려면 어떻게해야합니까?

4 phar 파일에서 프레임 워크 명령 줄 도구를 사용하는 방법은 무엇입니까? 'like laravel-artisan'

답변

2

응용 프로그램에서 composer.json을 사용하고 거기에 상자가 있어야합니다. 응용 프로그램이 laravel에서 실행될 때 부트 스트랩이 작동하고 phar 안에서도 작동한다는 것을 알고 있습니다.

나는 Box가 많은 작곡가에게 자동 로딩 물건을 가져다 준다고 믿는다. 그래서 당신은 그것에 곤란을 겪지 않을 것이다. class_map이 자동으로 포함되는 것 같습니다.

한가지 고려해야 할 사항은 구성 세부 정보를 전달해야한다는 것입니다.

<?php 
require_once "phar://myapp.phar/frontcontroller.php"; // maybe index.php 
$config = array('dsn' => 'database-config'); 
Application::run($config); 

또한의 Phar에서의 Phar 접근은 문제가 : 일반적으로

, 당신은 지금처럼의 Phar 내부 응용 프로그램에에 "앞으로"필요!

PHAR에 직접 패키지 된 PHAR에 액세스 할 수 없습니다. 먼저 패키지 된 PHAR을 추출한 다음 두 번째로 전달 호출을 수행하고 CLI 명령을 전달해야합니다. 문제는 여기에 해결 : https://stackoverflow.com/a/13537329/1163786

전체 예

box.json.dist

{ 
    "main": "bootstrap.php", 
    "output": "application.phar", 
    "compactors": ["Herrera\\Box\\Compactor\\Composer"], 
    "chmod": "0755", 
    "directories": ["src/"], 
    "stub": true 
} 

bootstrap.php

<?php 
require 'vendor/autoload.php'; //<-- this is autoload.php generated by Composer 

use MyApp\Application; 

$config = parse_ini_file(__DIR__.'/config.ini'); 

$app = new Application(); 
$app->run($config); 
+0

을 어떤 사람들은 application.phar과 장소를 구축 내부 framework.phar, 그래서 난 그냥 조금 지저분해질 수 있음을 알고 있습니다. –

+0

처음 ** ** 저에게 답변 해 주셔서 대단히 감사합니다. 하지만 phar에서 phar에 액세스하려고하지 않습니다. 종속성 (공급 업체 디렉토리)을 사용하여 웹 응용 프로그램에서 phar 파일을 빌드하면됩니다. Phar 파일 내부에서'composer/autoload.php' 파일을 호출하는 방법 – DeNury

+0

에 따라 그에 대한 대답이 업데이트되었습니다. 부트 스트랩을 참조하십시오.php, 어디 작곡가 오토로더 포함 ... –