Kurulum
Genel Bakış
Aspose.Slides for PHP via Java iki süreçte çalışır. PHP betiğiniz, her çağrıyı PHP/Java Bridge üzerinden Aspose.Slides’e gönderen PHP sınıflarını kullanır; Aspose.Slides, Apache Tomcat içinde Java üzerinde çalışır. Bu makale, her iki tarafı nasıl yapılandıracağınızı, paketi Composer ile nasıl kuracağınızı ve kurulumu doğrulamak için kısa bir betik nasıl çalıştıracağınızı açıklar.
Ön Koşullar
- PHP 7.0’dan 8.3’e kadar,
php.iniiçindeallow_url_include = Onayarıyla. Betikleriniz, köprünün istemci kütüphanesi olanJava.incdosyasını Tomcat üzerinden HTTP ile yükler. PHP 8.4 ve sonraki sürümlerde, PHP’ninxmluzantısı yüklendiğindeJava.inc“end() expects exactly 1 argument” hatasıyla durur ve Windows PHP derlemeleri her zaman bunu yükler. - Composer.
- Java 8 veya daha yeni sürüm. Bir JRE yeterlidir.
- Apache Tomcat 9. PHP/Java Bridge
javax.servletAPI’si üzerine inşa edilmiştir; Tomcat 10 ve sonrası bu API’yi sağlamaz, bu yüzden köprü orada başlatılamaz. - PHP/Java Bridge 7.2.1, en son sürümü. Web uygulaması
JavaBridge.war, Tomcat içinde çalışır.
Bu makale, Tomcat ve PHP betiklerinizi aynı bilgisayarda çalıştırır. Aspose.Slides dosyaları Tomcat içinde açar ve kaydeder, bu yüzden betiklerinizin ona gönderdiği her yolun Tomcat içinde geçerli olması gerekir.
Linux’ta Kurulum
Bu komutlar, Ubuntu 24.04’te tüm dosyaları ev klasörünüze kurar. Diğer dağıtımlarda aynı paketleri dağıtımın paket yöneticisiyle kurun.
-
PHP, Composer, Java ve indirme araçlarını kurun, ardından PHP komut satırı için
allow_url_includeayarını açın:sudo apt-get update sudo apt-get install -y php-cli composer default-jre-headless curl unzip sudo sed -i 's/^allow_url_include = Off/allow_url_include = On/' "$(php -r 'echo php_ini_loaded_file();')" -
Apache Tomcat 9 ve PHP/Java Bridge’i indirin, köprünün
JavaBridge.wardosyasını Tomcat’inwebappsklasörüne koyun ve Tomcat’i başlatın. Tomcat, başlaması sırasında WAR dosyasınıwebapps/JavaBridgeiçine açar:cd ~ curl -fsSLO https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.122/bin/apache-tomcat-9.0.122.tar.gz tar -xzf apache-tomcat-9.0.122.tar.gz curl -fsSL -o php-java-bridge.zip "https://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_7.2.1/php-java-bridge_7.2.1_documentation.zip/download" unzip -o php-java-bridge.zip JavaBridge.war -d apache-tomcat-9.0.122/webapps apache-tomcat-9.0.122/bin/startup.sh -
Bir proje klasörü oluşturun ve Aspose.Slides for PHP via Java’i Packagist üzerinden kurun:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
Tomcat’i durdurun, paketten Aspose.Slides JAR dosyasını köprünün
WEB-INF/libklasörüne kopyalayın, köprününJava.incdosyasını paketten gelen PHP 8 sürümüyle değiştirin ve Tomcat’i tekrar başlatın:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/tr/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/tr/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.shPHP 7 için
Java.incdeğişimini atlayın. Tomcat’in başlatılması birkaç saniye sürer ve betikleriniz Aspose.Slides kullanırken Tomcat’in çalışıyor olması gerekir.
Windows’ta Kurulum
-
Windows için PHP 8.3’ü kurun ve klasörünü
PATHortam değişkenine ekleyin.php.ini-productiondosyasını aynı klasördephp.iniolarak kopyalayın.php.iniiçindeallow_url_include = Onayarlayın veextension_dir = "ext",extension=opensslveextension=zipsatırlarının yorumunu kaldırın. Composer, paketleri indirmek içinopensslve paketleri açmak için (7‑Zip kurulu değilse veyaPATH‘de birunzipkomutu yoksa)zipuzantısına ihtiyaç duyar. -
Composer’ı kurun: Composer.
-
Java’yı kurun ve
JAVA_HOMEortam değişkenini Java klasörüne ayarlayın. Tomcat, bu değişken olmadan başlatılamaz. -
Komut İstemi’nde Apache Tomcat 9 ve PHP/Java Bridge’i indirin, köprünün
JavaBridge.wardosyasını Tomcat’inwebappsklasörüne koyun ve Tomcat’i başlatın. Tomcat’in betikleri,CATALINA_HOMEdeğişkeni aracılığıyla Tomcat’i bulur; bu nedenle sonraki adımlar için aynı Komut İstemi penceresini kullanmaya devam edin. Tomcat, başlaması sırasında WAR dosyasınıwebapps\JavaBridgeiçine açar:cd %USERPROFILE% curl -fsSLO https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.122/bin/apache-tomcat-9.0.122-windows-x64.zip tar -xf apache-tomcat-9.0.122-windows-x64.zip set CATALINA_HOME=%USERPROFILE%\apache-tomcat-9.0.122 curl -fsSL -o php-java-bridge.zip "https://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_7.2.1/php-java-bridge_7.2.1_documentation.zip/download" tar -xf php-java-bridge.zip -C "%CATALINA_HOME%\webapps" JavaBridge.war "%CATALINA_HOME%\bin\startup.bat" -
Bir proje klasörü oluşturun ve Aspose.Slides for PHP via Java’i Packagist üzerinden kurun:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
Tomcat’i durdurun, paketten Aspose.Slides JAR dosyasını köprünün
WEB-INF\libklasörüne kopyalayın, köprününJava.incdosyasını paketten gelen PHP 8 sürümüyle değiştirin ve Tomcat’i tekrar başlatın:"%CATALINA_HOME%\bin\shutdown.bat" copy vendor\aspose\slides\jar\aspose-slides-*-php.jar "%CATALINA_HOME%\webapps\JavaBridge\WEB-INF\lib\" tar -xf vendor\aspose\slides\Java.inc.php8.zip -C "%CATALINA_HOME%\webapps\JavaBridge\java" "%CATALINA_HOME%\bin\startup.bat"PHP 7 için
Java.incdeğişimini atlayın. Tomcat’in başlatılması birkaç saniye sürer ve betikleriniz Aspose.Slides kullanırken Tomcat’in çalışıyor olması gerekir.
Kurulumu Doğrulama
hello.php adlı bu betiği proje klasörüne kaydedin. Betik bir sunum oluşturur, içinde bir metin kutusu olur ve betiğin yanına kaydeder:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/tr/lib/aspose.slides.php");
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 400, 100);
$shape->getTextFrame()->setText("Hello, Aspose.Slides!");
$presentation->save(__DIR__ . "/hello.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Proje klasöründen çalıştırın:
php hello.php
Betik hello.pptx dosyasını yazar; bir slayt ve içinde metin kutusu bulunur. Lisans olmadan, slayt bir deneme filigranı da içerir; bakınız Lisanslama.
Betik aspose.slides.php dosyasını doğrudan içerir: Composer’ın otomatik yükleyicisi bu sınıfları yükleyemez, çünkü hepsi tek bir dosyada tanımlıdır. Ayrıca save metoduna mutlak bir yol gönderir, çünkü Aspose.Slides Tomcat içinde çalışır ve göreli yolu Tomcat’in çalışma klasörüne göre çözer, betiğinizin klasörüne göre değil.
SSS
Aspose.Slides’in doğru şekilde entegre edildiğini nasıl doğrulayabilirim?
Kurulumu Doğrulama bölümündeki betiği çalıştırın. Hatasız bir şekilde hello.pptx oluşturuyorsa, PHP, PHP/Java Bridge ve Aspose.Slides birlikte çalışıyor demektir.
Betiğim neden “Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’” hatasıyla duruyor?
PHP, Java.inc dosyasını Tomcat’ten yükleyemedi. Hata mesajının öncesinde http:// sarmalayıcısının devre dışı olduğu belirtiliyorsa, PHP komut satırının kullandığı php.ini dosyasında allow_url_include = On olarak ayarlayın; hangi dosyanın yüklendiğini php --ini gösterir. Eğer “Connection refused” mesajı alıyorsanız, Tomcat henüz çalışmıyor demektir: Tomcat’i başlatın veya başlatılmasını birkaç saniye bekleyin.
Büyük sunumları işlerken bellek tüketimini nasıl sınırlayabilirim?
JVM bellek limitlerini sadece ihtiyaç duyulan kadar yükseltin ve her Presentation örneğini bir finally bloğunda kapatarak önbelleği hemen serbest bırakın. Bu, bellek yetersizliği hatalarını önler ve toplu işlemler sırasında toplam bellek kullanımının öngörülebilir kalmasını sağlar.
İstenmeyen dışa aktarım formatlarını dışarı çıkararak son JAR boyutunu küçültebilir miyim?
Mevcut Aspose.Slides sürümleri tek bir monolitik kütüphane olarak dağıtılır; bu yüzden derleme zamanında PDF ya da SVG gibi belirli dışa aktarıcıları devre dışı bırakamazsınız.