PHP.mk документација

Yaf_Loader

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

class.yaf-loader.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека class.yaf-loader.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Yaf_Loader

Референца за `class.yaf-loader.php` со подобрена типографија и навигација.

class.yaf-loader.php

Класата Yaf_Loader

(Yaf >=1.0.0)

Вовед

Yaf_Loader воведува сеопфатно решение за авто-вчитање за Yaf.

Првиот пат кога ќе се добие инстанца на Yaf_Application се добива, Yaf_Loader ќе инстанцира синглтон и ќе се регистрира себеси со spl_autoload. Инстанца добивате користејќи го Yaf_Loader::getInstance()

Yaf_Loader се обидува да вчита класа само еднаш, ако не успее, зависи од yaf.use_spl_auload, ако оваа конфигурација е Вклучено Yaf_Loader::autoload() ќе врати false, со што се дава шанса на друга функција за авто-вчитање. ако е Исклучено (по дифолт), Yaf_Loader::autoload() ќе врати true, и поважно е дека ќе се активира многу корисно предупредување (многу корисно за да се открие зошто класата не можела да се вчита).

Забелешка:

Ве молиме задржете го yaf.use_spl_autoload Исклучено освен ако постои некоја библиотека што има свој механизам за авто-вчитање и е невозможно да се преработи.

Стандардно, Yaf_Loader претпоставува дека сите библиотеки (скрипти дефинирани со класи) се чуваат во глобалната библиотека директориум, што е дефинирано во php.ini(yaf.library).

Ако сакате Yaf_Loader да пребарувате некои класи (библиотеки) во локалниот директориум за класи(што е дефинирано во application.ini, и по дифолт, тоа е application.directory . "/library"), треба да го регистрирате префиксот на класата користејќи го Yaf_Loader::registerLocalNameSpace()

Ајде да видиме неколку примери (претпоставувајќи дека APPLICATION_PATH е application.directory):

Пример #1 Пример за конфигурација

// Assuming the following configure in php.ini:
yaf.library = "/global_dir"

//Assuming the following configure in application.ini
application.library = APPLICATION_PATH "/library"
Претпоставувајќи дека е регистриран следниот локален именски простор:

Пример #2 Регистрирај локален именски простор

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function
_initLoader($dispatcher) {
Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
}
}
?>
Потоа примерите за автоматско вчитување:

Пример #3 Пример за вчитување класа

class Foo_Bar_Test =>
  // APPLICATION_PATH/library/Foo/Bar/Test.php
  
class GLO_Name  =>
  // /global_dir/Glo/Name.php
 
class BarNon_Test
  // /global_dir/Barnon/Test.php

Пример #4 Пример за вчитување класа од именски простор

class \Foo\Bar\Dummy =>
   // APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>
   // /global_dir/FooBar/Bar/Dummy.php

Можеби сте забележале дека сите папки со прва буква напишана со голема буква, можете да ги направите со мали букви со поставување yaf.lowcase_path = Вклучено во php.ini

Yaf_Loader е исто така дизајниран да ги вчитува MVC класите, а правилото е:

Пример #5 Пример за вчитување на MVC класа

Controller Classes =>
// APPLICATION_PATH/controllers/

Model Classes =>
// APPLICATION_PATH/models/

Plugin Classes =>
// APPLICATION_PATH/plugins/
Yaf го идентификува суфиксот на класата (ова е стандардно, можете да го промените и на префикс со промена на конфигурацијата yaf.name_suffix) за да одлучите дали е MVC класа:

Пример #6 Разлики на MVC класи

Controller Classes =>
    // ***Controller

Model Classes =>
    // ***Model

Plugin Classes =>
    // ***Plugin
некои примери:

Пример #7 Пример за вчитување на MVC

class IndexController
    // APPLICATION_PATH/controllers/Index.php

class DataModel =>
   // APPLICATION_PATH/models/Data.php

class DummyPlugin =>
  // APPLICATION_PATH/plugins/Dummy.php

class A_B_TestModel =>
  // APPLICATION_PATH/models/A/B/Test.php

Забелешка:

Од 2.1.18, Yaf поддржува автоматско вчитување на контролери од страна на кориснички скрипти (што значи автоматско вчитување предизвикано од корисничка PHP скрипта, на пр.: пристап до статичка својство на контролер во Bootstrap или Plugins), но автолоадерот само се обидува да ја лоцира скриптата на класата на контролерот под стандардната папка на модулот, која е "APPLICATION_PATH/controllers/".

исто така, директориумот ќе биде засегнат од yaf.lowcase_path.

Синопсис на класата

class Yaf_Loader {
/* Својства */
protected $_local_ns;
protected $_library;
protected $_global_library;
static $_instance;
/* Методи */
private __construct()
public autoload(): void
public static getInstance(): void
public getLibraryPath(bool $is_global = false): Yaf_Loader
public getNamespacePath(string $namespaces): string
public getNamespaces(): array
public static import(): void
public isLocalName(): void
public registerNamespace(string|array $namespaces, string $path = ?): bool
public setLibraryPath(string $directory, bool $is_global = false): Yaf_Loader
}

Својства

_local_ns

_library

Стандардно, оваа вредност е application.directory . "/library", можете да го промените ова или во application.ini(application.library) или повикајте го Yaf_Loader::setLibraryPath()

_global_library

_instance

Содржина

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.