mirror of
https://github.com/php/doc-tr.git
synced 2026-03-23 23:02:09 +01:00
305 lines
8.8 KiB
XML
305 lines
8.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: e0352653179c355a6b9c353629147b06a2069f24 Maintainer: nilgun Status: ready -->
|
||
<chapter xml:id="faq.com" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<title>PHP ve COM</title>
|
||
<titleabbrev>PHP ve COM</titleabbrev>
|
||
|
||
<para>
|
||
PHP, Win32 platformlarında COM ve DCOM nesnelere erişim için
|
||
kullanılabilir.
|
||
</para>
|
||
|
||
<qandaset>
|
||
<qandaentry xml:id="faq.com.q1">
|
||
<question>
|
||
<para>
|
||
Bazı hesaplamalar için bir DLL derledim. Bu DLL'li PHP altında
|
||
çalıştırmanın bir yolu var mı?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Bu basit bir DLL ise bunu PHP altında çalıştırmanın bir yolu yoktur.
|
||
Eğer DLL bir COM sunucusu içeriyor ve IDispatch arayüzünü gerçekliyorsa
|
||
bu DLL'e erişebilirsiniz.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q2">
|
||
<question>
|
||
<para>
|
||
'Unsupported variant type: xxxx (0xxxxx)' iletisinin anlamı nedir?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Düzinelerce VARIANT türü ve bunların birleşimleri vardır. Bunların çoğu
|
||
desteklenmekteyse de bir kısmı halen gerçeklenme aşamasındadır. Diziler
|
||
tamamen desteklenmemektedir. PHP ve COM arasında sadece tek boyutlu
|
||
diziler aktarılabilmektedir. Lütfen bunu bir hata olarak raporlayın
|
||
(hala raporlanmamışsa) ve bunu yaparken mümkün olduğunca fazla bilgi
|
||
verin.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q3">
|
||
<question>
|
||
<para>
|
||
PHP'de görsel nesnelerle çalışmak mümkün müdür?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Genelde mümkündür, fakat PHP'deki gibi çoğunlukla HTTP sunucusu
|
||
bağlamında işlem yapan bir betik dili olarak kullanılırlar. Bu bakımdan
|
||
görsel nesneler hiçbir zaman sunucunun masaüstünde görünmezler. PHP'yi
|
||
uygulama yazmak için kullanacaksanız (PHP-GTK örneğinde olduğu gibi),
|
||
görsel nesnelerle COM üzerinden çalışmak için herhangi bir sınırlama
|
||
yoktur.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q4">
|
||
<question>
|
||
<para>
|
||
Bir COM nesnesini bir oturumda saklayabilir miyim?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Hayır, saklayamazsınız. COM nesne örnekleri birer özkaynak olarak ele
|
||
alınır. Bu bakımdan sadece tek betiklik bir bağlamda kullanılabilirler.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q5">
|
||
<question>
|
||
<para>
|
||
COM hatalarını yakalayabilir miyim?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
COM eklentisi sizin de yakalayabileceğiniz
|
||
<literal>com_exception</literal> istisnalarını yakalar. Bundan sonra ne
|
||
yapılacağını belirlemek için <literal>code</literal> üyesini
|
||
inceleyebilirsiniz.
|
||
</para>
|
||
<para>
|
||
COM hatalarını PHP tarafından sağlanan yollarla (@,
|
||
track_errors, ...) yakalamak mümkün değildir.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q6">
|
||
<question>
|
||
<para>
|
||
Perl'de olduğu gibi PHP betiklerinden DLL dosyaları üretebilir miyim?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Hayır, maalesef PHP'de böyle bir araç yoktur.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q7">
|
||
<question>
|
||
<para>
|
||
'Unable to obtain IDispatch interface for CLSID
|
||
{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' iletisininin anlamı nedir?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Bu hata pek çok sebepten ortaya çıkabilir:
|
||
<itemizedlist>
|
||
<listitem>
|
||
<simpara>
|
||
CLSID yanlıştır.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
İstenen DLL yoktur.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
İstenen bileşen IDispatch arayüzünü gerçeklemiyordur.
|
||
</simpara>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q8">
|
||
<question>
|
||
<para>
|
||
Bir COM nesnesini bir uzak sunucudan nasıl çalıştırabilirim?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Tıpkı bir yerel nesne gibi çalıştırabilirsiniz. Tek yapacağınız, COM
|
||
kurucusuna ikinci bağımsız değişken olarak uzak makinenin IP adresini
|
||
aktarmaktır.
|
||
</para>
|
||
<para>
|
||
&php.ini; dosyanızda
|
||
<link linkend="ini.com.allow-dcom">com.allow_dcom</link><literal>=</literal>&true;
|
||
atamasını yapmış olmalısınız.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q9">
|
||
<question>
|
||
<para>
|
||
'DCOM is disabled in C:\path...\scriptname.php on line 6' iletisini
|
||
alıyorum. Ne yapabilirim?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
&php.ini; dosyanızı düzenlemek için açıp
|
||
<link linkend="ini.com.allow-dcom">com.allow_dcom</link><literal>=</literal>&true;
|
||
atamasını yapın.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q10">
|
||
<question>
|
||
<para>
|
||
Bir ActiveX nesnesini PHP ile bir sayfaya yüklemek ve kullanmak mümkün
|
||
müdür?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Bunun için PHP ile bir şey yapılamaz. HTML belge tarafından
|
||
istendikleri takdirde ActiveX nesneler istemci tarafında yüklenirler.
|
||
PHP betiğiyle bir ilgileri olmadığından sunucu taraflı doğrudan
|
||
etkileşim mümkün değildir.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
<qandaentry xml:id="faq.com.q11">
|
||
<question>
|
||
<para>
|
||
Bir bileşenin çalışan bir örneğini almak mümkün müdür?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Bu, takma adların yardımı ile mümkündür. Aynı yazı örneği için çok
|
||
sayıda başvuru edinmek için örneği şöyle oluşturabilirsiniz:I
|
||
</para>
|
||
<informalexample><programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
$yazı = new COM("C:\docs\yazı.doc");
|
||
?>
|
||
]]>
|
||
</programlisting></informalexample>
|
||
<para>
|
||
Çalışan bir örnek olmadığı takdirde bu yeni bir örnek oluşturur, aksi
|
||
takdirde çalışan örnek için bir başvuru döndürür.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
<qandaentry xml:id="faq.com.q12">
|
||
<question>
|
||
<para>
|
||
COM nesnesinden gönderilen bir olayı işleme sokmanın bir yolu var mıdır?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Bir olay alıcıyı tanımlayabilir ve bunu
|
||
<function>com_event_sink</function> kullanarak bağlayabilirsiniz.
|
||
PHP'nin olay alıcı sınıfının bir iskeletini üretmesi için
|
||
<function>com_print_typeinfo</function> işlevini kullanabilirsiniz.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q13">
|
||
<question>
|
||
<para>
|
||
Birden fazla arayüz içeren bir COM nesnesinin bir yöntemini çağırmaya
|
||
çalışırken sorunlarla karşılaşıyorum. Ne yapabilirim?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Yanıt pek tatmin edici değil biliyorum. Aslında tam olarak ne
|
||
yapılacağını bilmiyorum ama yapılabilecek bir şeyler olmalı.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q14">
|
||
<question>
|
||
<para>
|
||
PHP, COM ile çalıştığına göre COM+ ile de çalışır, değil mi?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
COM+, COM'un bileşenlerini MTS ve MSMQ üzerinden yönetmek için bir
|
||
arayüz ile genişletir. PHP'nin bu tarz nesneleri desteklemesi için
|
||
yapacağı özel bir şey yoktur.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry xml:id="faq.com.q15">
|
||
<question>
|
||
<para>
|
||
PHP, COM nesnelerle çalıştığına göre, özkaynakları yönetmek üzere
|
||
MTS'yi PHP ile birlikte kullanmayı düşünebilir miyiz?
|
||
</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
PHP henüz MTS hareketlerini işleme sokamamaktadır. Bu bakımdan, bir
|
||
hata oluşursa hareketi başa sarmak mümkün değildir. MTS hareketlerini
|
||
destekleyen bileşenleri kullanmak niyetindeyseniz hareket yönetimini
|
||
kendiniz gerçeklemek zorundasınız.
|
||
</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|