Tek bir dosya içine birden çok PHP komut dosyası birleştirme

6 Cevap

Ben 'include' deyimini kullanarak bağlıdır diğer bir veya iki kütüphaneleri içeren bir PHP komut dosyası var. Daha kolay taşınabilir hale getirmek için, ben bir şekilde (tek bir PHP komut dosyası içine komut ve include d kütüphanelerini bu 'derlemek' istiyorum ack içerdiğini, aynı şekilde tüm onun Perl) bir dosyada bağımlılıkları. PHP bunu yapmak için kolay bir yolu var mı?

Clarification: bir windows çalıştırılabilir derleme [(1)] kabul edilebilir bir çözüm (parçası) olabilir, ama senaryo hala '{ile PHP kaynak kodu olması daha iyidir * nix, çalıştırmak gerekiyor olabilir } üstünde.

Ben herhangi bir işletim sistemi üzerinde bir yerde $ PATH içine tek bir dosya açılır ve o da yüklü olması ekstra PHP kütüphaneleri gerek olmadan çalışmaya sahip olmak istiyorum.

6 Cevap

PHP yeni versiyonları java jar dosyalarına benzer bir kavramı destekler. phar bir göz atın. Sen tek bir arşiv olarak uygulama tüm dosyaları paketlemek ve bu çalıştırabilir.

Hayır bunu bir şekilde orada yerleşik. Ben bir dizine kadar kodunuzu ambalaj ve bu şekilde dağıtmak öneriyoruz. Ben bir dizin "something.module" içine kod yerleştirmek, PHP ile bunu, ve sonra her. Modül dizin altındaki ana dosyadan da dahil olmak üzere, bir modules dizininde yineleme var. Ama daha basit bir şey için, sadece gibi bir yapıya sahip olabilir:

my_package/
  my_package.php
  include1.php
  include2.php

my_package.php arasına include(realpath(dirname(__FILE__).'/inclue1.php')). Diğer tüm scrits sadece include('my_packahe/my_package.php') gerekir

PHP paketleri ScriptJoiner hatta daha JuggleCode yardımcı olabilir:

Hem scriptfiles katılmak çok kolay PHP-Ayrıştırıcı (http://packagist.org/packages/nikic/php-parser), üzerine inşa edilir.

Manually, you just remove all references of include/require, and "concatenate" the files together. you should also strip the open and end tags ('<?php', "?>") before concatenation, and add them in the final file.

Bir veya iki küçük kütüphaneler için, gerektiği - umarım - "sadece çalışmak" ...

phc bu sağlar. Sadece --include bayrağı ile çalıştırın, ve tüm kodunuzu birleştirir (kuyu, bir include, require, vb her türlü argümanı) tek bir PHP içine dosya.

Eğer isterseniz, aynı zamanda onu derlemek, ama bu tek bir dosya içine hepsini birleştirmek için gerekli değil.

Sen, tüm dosyaları açar açılış ve kapanış etiketleri kaldırır ve birlikte bunları birleştirir ve tek bir dosya olarak kaydeder özel bir komut dosyası yazabilirsiniz. yapmak oldukça kolay olmalıdır.

Yoksa php derleyici kullanabilirsiniz. Bu sizin için ne arıyorsanız biraz daha fazla yapacağız, ama sadece tek bir dosya istiyorsanız, bunlardan biri aracılığıyla dev projeyi çalıştırın.

Ayrıca byte-kodu herşeyi derlemek ve bir dosyaya sopa PHP için derleyici inşa kullanmak mümkün olabilir.