Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
2e60096
registerlocalnamespace.xml Fix typo
mmalferov Apr 13, 2026
b88761b
registerlocalnamespace.xml Amend return type
mmalferov Apr 13, 2026
c566582
registerlocalnamespace.xml Fix typo
mmalferov Apr 13, 2026
14e57a5
registerlocalnamespace.xml Fix typo
mmalferov Apr 13, 2026
ab2f653
registerlocalnamespace.xml To variable
mmalferov Apr 14, 2026
9bf4b84
registerlocalnamespace.xml Add space
mmalferov Apr 14, 2026
d821078
registernamespace.xml Fix typo and amend return type
mmalferov Apr 14, 2026
7a5fce7
registernamespace.xml Amend the directive name
mmalferov Apr 14, 2026
191fba8
registernamespace.xml `;` to `.`
mmalferov Apr 14, 2026
d627fa9
registernamespace.xml Fix typo. `underline` → `underscore`
mmalferov Apr 14, 2026
24c9751
registernamespace.xml Fix parameter name
mmalferov Apr 14, 2026
55074ce
construct.xml Fix typo, amend examples
mmalferov Apr 14, 2026
bbb6515
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Apr 26, 2026
70004f8
Update reference/yaf/yaf_loader/registernamespace.xml
mmalferov Apr 26, 2026
0eb9101
Update reference/yaf/yaf_loader/registernamespace.xml
mmalferov Apr 26, 2026
5854aed
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Apr 26, 2026
dcddb2b
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Apr 26, 2026
1330d2d
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Apr 26, 2026
d524b7f
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Apr 26, 2026
5f3bf1d
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Apr 26, 2026
303cef0
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Apr 26, 2026
5b3e06d
registerlocalnamespace.xml Fix an XML syntax error
mmalferov Apr 27, 2026
df547dd
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Jun 8, 2026
866c483
Update reference/yaf/yaf_loader/registerlocalnamespace.xml
mmalferov Jun 8, 2026
eb4f1f7
Apply suggestions from code review
mmalferov Jul 23, 2026
60f2ae5
Update construct.xml
mmalferov Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 35 additions & 22 deletions reference/yaf/yaf_loader/registerlocalnamespace.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>void</type><methodname>Yaf_Loader::registerLocalNamespace</methodname>
<methodparam><type>mixed</type><parameter>prefix</parameter></methodparam>
<modifier>public</modifier> <type class="union"><type>Yaf_Loader</type><type>false</type></type><methodname>Yaf_Loader::registerLocalNamespace</methodname>
<methodparam><type class="union"><type>string</type><type>array</type></type><parameter>namespace</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>path</parameter></methodparam>
</methodsynopsis>
Comment thread
mmalferov marked this conversation as resolved.
<para>
Register local class prefix name, <classname>Yaf_Loader</classname> search
Register local class prefix name, <classname>Yaf_Loader</classname> searches
classes in two library directories, the one is configured via <link
linkend="configuration.yaf.library">application.library.directory</link>(in
linkend="configuration.yaf.directory">application.library.directory</link> (in
application.ini) which is called local library directory; the other is
configured via <link linkend="ini.yaf.library">yaf.library</link> (in
php.ini) which is called global library directory, since it can be shared
Expand All @@ -27,17 +28,18 @@
determine which library directory should be searched in by examining the prefix
name of the missed classname.

If the prefix name is registered as a localnamespack then look for it in
If the prefix name is registered as a local namespace then look for it in
local library directory, otherwise look for it in global library directory.
<note>
<para>
If yaf.library is not configured, then the global library directory is
assumed to be the local library directory. in that case, all autoloading
will look for local library directory.

But if you want your Yaf application be strong, then always register your
own classes as local classes.
</para>
<simpara>
If <literal>yaf.library</literal> is not configured, then the global library directory is
assumed to be the local library directory. In that case, all autoloading
will look for local library directory.
</simpara>
<simpara>
For a more robust Yaf application, always register the application's own
classes as local classes.
</simpara>
</note>
</para>
</refsect1>
Expand All @@ -46,32 +48,43 @@
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>prefix</parameter></term>
<term><parameter>namespace</parameter></term>
<listitem>
<para>
a string or an array of class name prefix.
all class prefix with these prefix will be loaded in local library path.
</para>
<simpara>
A &string; or an &array; of class name prefixes. A prefix only matches at
an underscore or backslash boundary: registering <literal>Baidu</literal>
makes <literal>Baidu_Name</literal> and <literal>Baidu</literal> local,
but not <literal>BaiduName</literal>. A leading backslash is ignored, and
backslashes are handled like underscores.
</simpara>
</listitem>
</varlistentry>
Comment thread
mmalferov marked this conversation as resolved.
<varlistentry>
<term><parameter>path</parameter></term>
<listitem>
<simpara>A &string; of path, it is better to use absolute path here for performance.</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>

<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
bool
</para>
<simpara>
Returns the <classname>Yaf_Loader</classname> instance on success&return.falseforfailure;.
</simpara>
</refsect1>

<refsect1 role="examples">
&reftitle.examples;
<example>
<title><function>Yaf_Loader::registerLocalNamespace</function>example</title>
<title><function>Yaf_Loader::registerLocalNamespace</function> example</title>
<programlisting role="php">
<![CDATA[
<?php

$loader = Yaf_Loader::getInstance('/local/library/', '/global/library');

$loader->registerLocalNamespace("Baidu");
$loader->registerLocalNamespace(array("Sina", "Weibo"));

Expand Down
44 changes: 24 additions & 20 deletions reference/yaf/yaf_loader/registernamespace.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,27 @@
<refentry xml:id="yaf-loader.registernamespace" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>Yaf_Loader::registerNamespace</refname>
<refpurpose>Register namespace with searching path</refpurpose>
<refpurpose>Registers a namespace with searching path</refpurpose>
</refnamediv>

<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>bool</type><methodname>Yaf_Loader::registerNamespace</methodname>
<methodparam><type class="union"><type>string</type><type>array</type></type><parameter>namespaces</parameter></methodparam>
<modifier>public</modifier> <type class="union"><type>Yaf_Loader</type><type>false</type></type><methodname>Yaf_Loader::registerNamespace</methodname>
<methodparam><type class="union"><type>string</type><type>array</type></type><parameter>namespace</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>path</parameter></methodparam>
</methodsynopsis>
<para>
Register a namespace with searching path, <classname>Yaf_Loader</classname>
searchs classes under this namespace in path, the one is also could be
configureded via <link linkend="configuration.yaf.library.namespace">
application.library.directory.namespace</link>(in application.ini);
searches classes under this namespace in path, which can also be
configured via <link linkend="configuration.yaf.library.namespace">
application.library.namespace</link> (in <literal>application.ini</literal>).
</para>
<para>
<note>
<para>
Yaf still think underline as folder separator.
</para>
<simpara>
Yaf still thinks underscore as folder separator.
</simpara>
</note>
</para>
</refsect1>
Expand All @@ -36,45 +36,49 @@
<term><parameter>namespace</parameter></term>
<listitem>
<para>
a string of namespace, or an array of namespaces with paths.
A &string; of namespace, or an &array; of namespaces with paths.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>path</parameter></term>
<listitem>
<para>
a string of path, it is better to use abosolute path here for performance
</para>
<simpara>
A &string; of path, it is better to use absolute path here for performance.
Ignored when <parameter>namespace</parameter> is an &array;; in that case
each path is given as the value of its namespace key.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>

<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
bool
</para>
<simpara>
Returns the <classname>Yaf_Loader</classname> instance on success,&return.falseforfailure;.
</simpara>
</refsect1>

<refsect1 role="examples">
&reftitle.examples;
<example>
<title><function>Yaf_Loader::registerNamespace</function>example</title>
<title><function>Yaf_Loader::registerNamespace</function> example</title>
<programlisting role="php">
<![CDATA[
<?php

$loader = Yaf_Loader::getInstance();

$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");
$loader->registerNamespace(array(
"\Vendor\ASP" => "/var/lib/asp",
"\Vendor\JSP" => "/usr/lib/vendor/",
));

$loader->autoload("\Vendor\PHP\Dummy"); //load '/var/lib/php/Dummy.php'
$loader->autoload("\Vendor\PHP\Foo_Bar"); //load '/var/lib/php/Foo/Bar.php'
$loader->autoload("\Vendor\JSP\Dummy"); //load '/usr/lib/vendor/Dummy.php'
$loader->autoload("\Vendor\PHP\Dummy"); // Load '/var/lib/php/Dummy.php'
$loader->autoload("\Vendor\PHP\Foo_Bar"); // Load '/var/lib/php/Foo/Bar.php'
$loader->autoload("\Vendor\JSP\Dummy"); // Load '/usr/lib/vendor/Dummy.php'

?>
]]>
Expand Down
Loading
Loading