1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-24 07:12:18 +01:00
Files
archived-doc-tr/language/oop5/autoload.xml
2022-10-13 19:08:54 +03:00

129 lines
4.1 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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
-->