mirror of
https://github.com/php/doc-tr.git
synced 2026-03-24 07:12:18 +01:00
129 lines
4.1 KiB
XML
129 lines
4.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: ce3a2d381693ccbc10cc4a808c3eb853f3c85c9e Maintainer: nilgun Status: ready -->
|
||
<!-- CREDITS: tpug, sezer -->
|
||
<sect1 xml:id="language.oop5.autoload" xmlns="http://docbook.org/ns/docbook">
|
||
<title>Otomatik Yüklenen Sınıflar</title>
|
||
<para>
|
||
Nesne-yönelimli uygulama yazan birçok geliştirici, her bir sınıf tanımı
|
||
için ayrı bir PHP kaynak dosyası oluşturmaktadır. Bu kullanımın en can
|
||
sıkıcı noktalarından bir tanesi, betiklerin en tepesinde bir sürü dosyanın
|
||
betiğe dahil edilmesini gerektirmesidir (her bir sınıf için ayrı bir
|
||
dosya).
|
||
</para>
|
||
<para>
|
||
<function>spl_autoload_register</function> işlevi, henüz tanımlanmamışlarsa,
|
||
sınıfların ve arayüzlerin otomatik olarak yüklenmesini sağlayacak
|
||
sayıda otomatik yükleyiciyi kaydeder. Otomatik yükleyicileri
|
||
kaydederek, bir hatayla başarısızlığa uğramadan önce PHP'ye sınıf veya
|
||
arayüzü yüklemek için son bir şans verilir.
|
||
</para>
|
||
<caution>
|
||
<para>
|
||
PHP 8.0.0 öncesinde sınıf ve arayüzleri otomatik yüklemek için
|
||
<function>__autoload</function> işlevini kullanmak mümkündü. Bununla
|
||
birlikte, <function>__autoload</function> işlevi
|
||
<function>spl_autoload_register</function> işlevinin daha az esnek
|
||
benzeridir ve <function>__autoload</function> işlevinin kullanılması
|
||
PHP 7.2.0 itibariyle önerilmemekte olup PHP 8.0.0 itibariyle kullanımdan
|
||
kaldırılmıştır.
|
||
</para>
|
||
<para>
|
||
Kurucu benzeri her sınıf aynı yolla otomatik yüklenebilir. Buna sınıflar,
|
||
arayüzler, nitelikler ve sayılamalar dahildir.
|
||
</para>
|
||
</caution>
|
||
<note>
|
||
<para>
|
||
<function>spl_autoload_register</function>, birden çok otomatik yükleyiciyi
|
||
kaydetmek için bir çok kez çağrılabilir. Ancak bir otomatik yükleme
|
||
işlevinden bir istisna yavrulanması, bu işlemi kesintiye uğratır ve diğer
|
||
otomatik yükleme işlevleri çalışamaz. Bu nedenle, bir otomatik yükleme
|
||
işlevinden istisna yavrulanması kesinlikle önerilmez.
|
||
</para>
|
||
</note>
|
||
<para>
|
||
<example>
|
||
<title>- Otomatik yükleme örneği</title>
|
||
<para>
|
||
Bu örnek <literal>MyClass1</literal> ve <literal>MyClass2</literal>
|
||
sınıflarını yüklemeye çalışmaktadır. Sınıflar aynı isimli
|
||
<filename>MyClass1.php</filename> ve <filename>MyClass2.php</filename>
|
||
dosyalarının içinde yer almaktadırlar.
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
spl_autoload_register(function ($class_name) {
|
||
include $class_name . '.php';
|
||
});
|
||
|
||
|
||
$obj = new MyClass1();
|
||
$obj2 = new MyClass2();
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
<example>
|
||
<title>- Başka bir otomatik yükleme örneği</title>
|
||
<para>
|
||
Bu örnek <literal>DenemeA</literal> arayüzünü yüklemeye çalışır.
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
spl_autoload_register(function ($name) {
|
||
var_dump($isim);
|
||
});
|
||
|
||
class Fan implements DenemeA {
|
||
}
|
||
|
||
/*
|
||
string(5) "DenemeA"
|
||
|
||
Fatal error: Interface 'DenemeA' not found in ...
|
||
*/
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
|
||
<simplesect role="seealso">
|
||
&reftitle.seealso;
|
||
<simplelist>
|
||
<member><function>unserialize</function></member>
|
||
<member><link linkend="ini.unserialize-callback-func">
|
||
unserialize_callback_func</link></member>
|
||
<member><link linkend="ini.unserialize-max-depth">unserialize_max_depth</link></member>
|
||
<member><function>spl_autoload_register</function></member>
|
||
<member><function>spl_autoload</function></member>
|
||
<member><function>__autoload</function></member>
|
||
</simplelist>
|
||
</simplesect>
|
||
|
||
</sect1>
|
||
|
||
<!-- 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
|
||
-->
|