القيود والفروقات في واجهة البرمجة

فروقات واجهة البرمجة العامة

تظهر هذه القائمة، باستخدام مقاطع كود عينة، بعض الفروقات بين Aspose.Slides لـ Java و Aspose.Slides لـ PHP عبر واجهات برمجة Java.

استيراد المكتبة (مقارنات الحزم)

Aspose.Slides لـ Java

import com.aspose.slides.*;

Aspose.Slides لـ PHP عبر Java

require_once("Java.inc");
require_once("lib/aspose.slides.php");

use aspose\sldes;
use aspose\sldes\Presentation;

إنشاء عرض تقديمي جديد

Aspose.Slides لـ Java

Presentation presentation = new Presentation();

Aspose.Slides لـ PHP عبر Java

$presentation = new Presentation();

الثوابت أو التعدادات

Aspose.Slides لـ Java

arc2.getLineFormat().setDashStyle(MsoLineDashStyle.SOLID);

Aspose.Slides لـ PHP عبر Java

$arc2->getLineFormat()->setDashStyle(slides\MsoLineDashStyle::SOLID);

مثال

Aspose.Slides لـ Java

import com.aspose.slides.ISlide;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.ShapeType;

public class Test
{
    public static void main(String[] args) throws Exception
    {
        // ينشئ كائن Presentation يمثل ملف عرض تقديمي
        Presentation pres = new Presentation();
        try
        {
            // يحصل على الشريحة الأولى
            ISlide slide = pres.getSlides().get_Item(0);

            // يضيف شكل تلقائي بالنوع المحدد إلى الخط
            slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
            pres.save("NewPresentation_out.pptx", SaveFormat.Pptx);
        }
        finally
        {
            if (pres != null) pres.dispose();
        }
    }
}

Aspose.Slides لـ PHP عبر Java

<?php
require_once("Java.inc");
require_once("lib/aspose.slides.php");

use aspose\slides;
use aspose\slides\Presentation;
use aspose\slides\ShapeType;
use aspose\slides\SaveFormat;

$pres = new Presentation();
try
{
    // يحصل على الشريحة الأولى
    $slide = $pres->getSlides()->get_Item(0);

    // يضيف شكل تلقائي بالنوع المحدد إلى الخط
    $slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
    $pres->save("NewPresentation_out.pptx", SaveFormat::Pptx);
}
finally
{
    if (!java_is_null($pres)) $pres->dispose();
}
?>

قيود أخرى لـ Aspose.Slides لـ PHP عبر واجهة برمجة Java بالمقارنة مع واجهة برمجة Java لـ Aspose.Slides

مساحة أسماء Aspose.Slides والفئات الجافا التي تستخدمها هي أغلفة تم إنشاؤها بواسطة PhpJavaBridge فوق الفئات الجافا بنفس الاسم من حزمة com.aspose.slides.

1. لف المعايير والحجج الجافا

المعايير والحجج التي ترجعها وتقبلها هي أغلفة فوق الفئات الجافا بنفس الأسماء. يتم تحويل السلاسل وأنواع الأرقام فقط تلقائيًا. المصفوفات والمجموعات والبايتات والقيم المنطقية لا يتم تحويلها.

خطأ شائع:

if ($node->isAssistant()) - خطأ!
if (java_values($node->isAssistant())) - صحيح!

2. تمديد فئة جافا و оператор instanceof

لا يمكنك توسيع فئة جافا من فئة PHP. كحل بديل، يمكنك تنفيذ التركيب عند الحاجة. يعمل مشغل instanceof فقط لفئة معينة. لا يعمل مع واجهة الفئة أو الفئة الأصلية.

حل بديل

3. مصفوفة جافا ليست مصفوفة PHP

إنشاء مصفوفة جافا في PHP:

$Array = new JavaClass("java.lang.reflect.Array");
$Integer = new JavaClass("java.lang.Integer");
$IntegerArray = $Array->newInstance($Integer, 2);
$IntegerArray[0] = 1;
$IntegerArray[1] = 0;

4. طول مصفوفة جافا

$data->length; - لا يعمل

حل بديل

$Array = new JavaClass("java.lang.reflect.Array");
$Array->getLength($data);

5. طريقة جافا Files.readAllBytes

$htmlBytes = Files->readAllBytes(Paths->get("embedOle.html")); - لا يعمل

حل بديل

$file = new Java("java.io.File", "embedOle.html");
$Array = new JavaClass("java.lang.reflect.Array");
$Byte = new JavaClass("java.lang.Byte");
$htmlBytes = $Array->newInstance($Byte, $Array->getLength($file));
try {
    $dis = new Java("java.io.DataInputStream", new Java("java.io.FileInputStream", $file));
    $dis->readFully($htmlBytes);
} finally {
    if (!java_is_null($dis)) $dis->close();
}

6. طريقة جافا Files.write

Files->write(new File($path)->toPath(), $fontData, StandardOpenOption::CREATE); - لا يعمل

حل بديل

$fstr = new Java("java.io.FileOutputStream", $path);
$Array = new java_class("java.lang.reflect.Array");
try {
    $fstr->write($fontData, 0, $Array->getLength($fontData));
} finally {
	$fstr->close();
}