التثبيت
نظرة عامة
Aspose.Slides for PHP via Java يعمل في عمليتين. يستخدم سكريبت PHP الخاص بك فئات PHP التي تمرر كل استدعاء عبر PHP/Java Bridge إلى Aspose.Slides، الذي يعمل على Java داخل Apache Tomcat. يشرح هذا المقال كيفية إعداد الجانبين، وتثبيت الحزمة باستخدام Composer، وتشغيل سكريبت قصير للتحقق من التثبيت.
المتطلبات المسبقة
- PHP 7.0 إلى 8.3، مع
allow_url_include = Onفيphp.ini. تقوم السكريبتات الخاصة بك بتحميل مكتبة العميل للجسر،Java.inc، من Tomcat عبر HTTP. في PHP 8.4 وما بعده، يتوقفJava.incمع الخطأ “end() expects exactly 1 argument” كلما تُحمَّل امتدادxmlفي PHP، وتقوم إصدارات Windows من PHP دائمًا بتحميله. - Composer
- Java 8 أو أحدث. JRE كافية.
- Apache Tomcat 9. تم بناء PHP/Java Bridge على واجهة برمجة التطبيقات
javax.servlet، التي لم يعد Tomcat 10 وما بعده يوفرها، لذا لا يبدأ الجسر هناك. - PHP/Java Bridge 7.2.1، أحدث إصداره. تطبيق الويب الخاص به،
JavaBridge.war، يعمل في Tomcat.
هذا المقال يشغّل Tomcat وسكريبتات PHP الخاصة بك على نفس الحاسوب. يفتح Aspose.Slides ويحفظ الملفات داخل Tomcat، لذا يجب أن يكون كل مسار تمرره السكريبتات صالحًا هناك.
التثبيت على Linux
هذه الأوامر تثبت كل شيء في مجلد المنزل لديك على Ubuntu 24.04. على التوزيعات الأخرى، قم بتثبيت نفس الحزم باستخدام مدير الحزم الخاص بالتوزيعة.
-
قم بتثبيت PHP و Composer و Java وأدوات التحميل، ثم فعّل
allow_url_includeلسطر أوامر PHP: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 و PHP/Java Bridge، ضع ملف
JavaBridge.warالخاص بالجسر في مجلدwebappsالخاص بـ Tomcat، ثم شغّل Tomcat. يقوم Tomcat بفك ملف WAR إلىwebapps/JavaBridgeعند بدء التشغيل: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 -
أنشئ مجلد مشروع وقم بتثبيت Aspose.Slides for PHP via Java من Packagist:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
أوقف Tomcat، انسخ ملف JAR الخاص بـ Aspose.Slides من الحزمة إلى مجلد
WEB-INF/libللجسر، استبدلJava.incالخاص بالجسر بالإصدار المتوافق مع PHP 8 من الحزمة، ثم شغّل Tomcat مرة أخرى:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/ar/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/ar/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.sh
في PHP 7، احذف استبدال Java.inc. يستغرق Tomcat بضع ثوانٍ للبدء، ويجب أن يكون قيد التشغيل كلما استخدمت السكريبتات الخاصة بك Aspose.Slides.
التثبيت على Windows
-
قم بتثبيت PHP 8.3 for Windows وأضف مجلده إلى متغير البيئة
PATH. انسخphp.ini-productionإلىphp.iniفي نفس المجلد. فيphp.ini، اضبطallow_url_include = Onوأزل التعليق عن الأسطرextension_dir = "ext"،extension=openssl، وextension=zip. يحتاج Composer إلىopensslلتحميل الحزم، وzipلفك ضغطها ما لم يتم تثبيت 7‑Zip أو وجود أمرunzipفيPATH. -
قم بتثبيت Composer.
-
قم بتثبيت Java واضبط متغير البيئة
JAVA_HOMEعلى مجلده. لا يبدأ Tomcat بدونه. -
في موجه الأوامر، قم بتنزيل Apache Tomcat 9 و PHP/Java Bridge، ضع ملف
JavaBridge.warالخاص بالجسر في مجلدwebappsالخاص بـ Tomcat، ثم شغّل Tomcat. تجد سكريبتات Tomcat Tomcat عبر المتغيرCATALINA_HOME، لذا استمر باستخدام نافذة موجه الأوامر نفسها للخطوات التالية. يقوم Tomcat بفك ملف WAR إلىwebapps\JavaBridgeعند بدء التشغيل: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" -
أنشئ مجلد مشروع وقم بتثبيت Aspose.Slides for PHP via Java من Packagist:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
أوقف Tomcat، انسخ ملف JAR الخاص بـ Aspose.Slides من الحزمة إلى مجلد
WEB-INF\libللجسر، استبدلJava.incالخاص بالجسر بالإصدار المتوافق مع PHP 8 من الحزمة، ثم شغّل Tomcat مرة أخرى:"%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، احذف استبدال Java.inc. يستغرق Tomcat بضع ثوانٍ للبدء، ويجب أن يكون قيد التشغيل كلما استخدمت السكريبتات الخاصة بك Aspose.Slides.
تحقق من التثبيت
احفظ هذا السكريبت كملف hello.php في مجلد المشروع. ينشئ عرضًا تقديميًا يحتوي على صندوق نص واحد ويحفظه بجانب السكريبت:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ar/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();
}
شغّله من مجلد المشروع:
php hello.php
يقوم السكريبت بإنشاء hello.pptx، مع شريحة واحدة تحتوي على صندوق النص. بدون ترخيص، تحمل الشريحة علامة مائية للتقييم؛ راجع Licensing.
يتضمن السكريبت aspose.slides.php مباشرةً: لا يستطيع محمل Composer التلقائي تحميل هذه الفئات، لأنها جميعًا معرفّة في هذا الملف الواحد. كما يمرّر مسارًا مطلقًا إلى save، لأن Aspose.Slides يعمل داخل Tomcat ويحل المسار النسبي بالنسبة لمجلد عمل Tomcat، وليس بالنسبة للسكريبت الخاص بك.
الأسئلة المتكررة
كيف يمكنني التحقق من أن Aspose.Slides مدمج بشكل صحيح؟
شغّل السكريبت في تحقق من التثبيت. إذا كتب hello.pptx دون أخطاء، فإن PHP و PHP/Java Bridge و Aspose.Slides تعمل معًا.
لماذا يتوقف السكريبت الخاص بي بالرسالة “Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’"؟
لم يتمكن PHP من تحميل Java.inc من Tomcat. إذا كانت الرسالة السابقة تشير إلى أن المغلف http:// معطل، فعّل allow_url_include = On في ملف php.ini الذي يستخدمه سطر أوامر PHP؛ يظهر الأمر php --ini الملف المستخدم. إذا كانت الرسالة تقول “Connection refused”، فإن Tomcat لم يبدأ بعد: ابدأه، أو انتظر بضع ثوانٍ حتى يبدأ.
كيف يمكنني الحد من استهلاك الذاكرة عند معالجة عروض تقديمية كبيرة؟
قم بزيادة حدود ذاكرة JVM فقط إلى الحد المطلوب، وأغلق كل كائن Presentation في كتلة finally لإطلاق الذاكرة بسرعة. هذا يمنع أخطاء نفاد الذاكرة ويحافظ على استخدام الذاكرة الكلي متوقعًا أثناء عمليات الدُفعة.
هل يمكنني استبعاد تنسيقات التصدير غير المرغوب فيها لتقليل حجم JAR النهائي؟
الإصدارات الحالية من Aspose.Slides تُوزّع كمكتبة واحدة متكاملة، لذا لا يمكنك تعطيل مُصدّرين محددين مثل PDF أو SVG أثناء عملية البناء.