mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-23 22:52:12 +01:00
initial translation in reference/yaf/
This commit is contained in:
201
reference/yaf/yaf-dispatcher.xml
Normal file
201
reference/yaf/yaf-dispatcher.xml
Normal file
@@ -0,0 +1,201 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-dispatcher" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Dispatcher</title>
|
||||
<titleabbrev>Yaf_Dispatcher</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Dispatcher intro -->
|
||||
<section xml:id="yaf-dispatcher.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
O objetivo de <classname>Yaf_Dispatcher</classname> é inicializar
|
||||
o ambiente de requisição, rotear a requisição recebida e então despachar
|
||||
quaisquer ações descobertas; ele agrega todas as respostas e as retorna
|
||||
quando o processo é concluído.
|
||||
</para>
|
||||
<para>
|
||||
<classname>Yaf_Dispatcher</classname> também implementa o padrão Singleton,
|
||||
o que significa que apenas uma única instância dele pode estar disponível a qualquer momento. Isso
|
||||
permite que ele também atue como um registro no qual os outros objetos no
|
||||
processo de despacho podem recorrer.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-dispatcher.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Dispatcher</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<modifier>final</modifier>
|
||||
<classname>Yaf_Dispatcher</classname>
|
||||
</ooclass>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.router">_router</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.view">_view</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.request">_request</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.plugins">_plugins</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<modifier>static</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.instance">_instance</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.auto-render">_auto_render</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.return-response">_return_response</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.instantly-flush">_instantly_flush</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.default-module">_default_module</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.default-controller">_default_controller</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-dispatcher.props.default-action">_default_action</varname>
|
||||
</fieldsynopsis>
|
||||
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-dispatcher')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-dispatcher')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- {{{ Yaf_Dispatcher properties -->
|
||||
<section xml:id="yaf-dispatcher.props">
|
||||
&reftitle.properties;
|
||||
<variablelist>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.router">
|
||||
<term><varname>_router</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.view">
|
||||
<term><varname>_view</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.request">
|
||||
<term><varname>_request</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.plugins">
|
||||
<term><varname>_plugins</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.instance">
|
||||
<term><varname>_instance</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.auto-render">
|
||||
<term><varname>_auto_render</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.return-response">
|
||||
<term><varname>_return_response</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.instantly-flush">
|
||||
<term><varname>_instantly_flush</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.default-module">
|
||||
<term><varname>_default_module</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.default-controller">
|
||||
<term><varname>_default_controller</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-dispatcher.props.default-action">
|
||||
<term><varname>_default_action</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-dispatcher;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
301
reference/yaf/yaf-loader.xml
Normal file
301
reference/yaf/yaf-loader.xml
Normal file
@@ -0,0 +1,301 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-loader" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Loader</title>
|
||||
<titleabbrev>Yaf_Loader</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Loader intro -->
|
||||
<section xml:id="yaf-loader.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<classname>Yaf_Loader</classname> introduz uma solução compreensiva de
|
||||
carregamento automático para o Yaf.
|
||||
</para>
|
||||
<para>
|
||||
Na primeira vez que uma instância de <classname>Yaf_Application</classname> for recuperada,
|
||||
<classname>Yaf_Loader</classname> instanciará um singleton e se registrará com
|
||||
spl_autoload. Uma instância é recuperada usando <methodname>Yaf_Loader::getInstance</methodname>.
|
||||
</para>
|
||||
<para>
|
||||
<classname>Yaf_Loader</classname> tenta carregar uma classe em apenas uma tentativa.
|
||||
Se falhar, dependerá de <link
|
||||
linkend="ini.yaf.use-spl-autoload">yaf.use_spl_autoload</link>. Se esta
|
||||
configuração estiver ativada, <methodname>Yaf_Loader::autoload</methodname> retornará
|
||||
&false;, dando assim a chance para outra função de carregamento automático. Se estiver desligada
|
||||
(por padrão), <methodname>Yaf_Loader::autoload</methodname> retornará
|
||||
&true; e o mais importante é que um alerta será acionado
|
||||
(muito útil para descobrir por que uma classe não pôde ser carregada).
|
||||
<note>
|
||||
<para>
|
||||
A configuração yaf.use_spl_autoload deve ser mantida desativada, a menos que haja alguma biblioteca
|
||||
com seu próprio mecanismo de carregamento automático e seja impossível reescrevê-lo.
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
<para>
|
||||
Por padrão, <classname>Yaf_Loader</classname> assume que todas as bibliotecas (script
|
||||
definido por classe) são armazenadas no <link linkend="ini.yaf.library">diretório de
|
||||
biblioteca global</link>, que é definido no php.ini (yaf.library).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Se for desejado que o <classname>Yaf_Loader</classname> pesquise algumas
|
||||
classes (bibliotecas) no <link linkend="yaf-loader.props.library">diretório de classes
|
||||
local</link> (que é definido no application.ini e por padrão
|
||||
é <link
|
||||
linkend="configuration.yaf.directory">application.directory</link> . "/library"),
|
||||
o prefixo da classe deve ser registrado usando
|
||||
<methodname>Yaf_Loader::registerLocalNameSpace</methodname>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Vejamos alguns exemplo (assumindo que APPLICATION_PATH seja <link
|
||||
linkend="configuration.yaf.directory">application.directory</link>):
|
||||
<example>
|
||||
<title>Exemplo de configuração</title>
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
// Assumindo a configuração a seguir no php.ini:
|
||||
yaf.library = "/global_dir"
|
||||
|
||||
// Assumindo a configuração a seguir no application.ini
|
||||
application.library = APPLICATION_PATH "/library"
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
Supondo que o seguinte namespace local esteja registrado:
|
||||
<example>
|
||||
<title>Registrando namespace local</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
class Bootstrap extends Yaf_Bootstrap_Abstract{
|
||||
public function _initLoader($dispatcher) {
|
||||
Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
A seguir, exemplos de carregamento automático:
|
||||
<example>
|
||||
<title>Exemplo de carregamento de classe</title>
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
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
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Exemplo de carregamento de classe de namespace</title>
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
class \Foo\Bar\Dummy =>
|
||||
// APPLICATION_PATH/library/Foo/Bar/Dummy.php
|
||||
|
||||
class \FooBar\Bar\Dummy =>
|
||||
// /global_dir/FooBar/Bar/Dummy.php
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Observe que todos os diretórios têm a primeira letra maiúscula. Eles podem ficar em letras
|
||||
minúsculas definindo <link linkend="ini.yaf.lowcase-path">yaf.lowcase_path</link> para "On" no php.ini.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<classname>Yaf_Loader</classname> também é projetado para carregar as classes MVC,
|
||||
e a regra é:
|
||||
<example>
|
||||
<title>Exemplo de carregamento de classes MVC</title>
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
Controller Classes =>
|
||||
// APPLICATION_PATH/controllers/
|
||||
|
||||
Model Classes =>
|
||||
// APPLICATION_PATH/models/
|
||||
|
||||
Plugin Classes =>
|
||||
// APPLICATION_PATH/plugins/
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
Yaf identifica o sufixo de uma classe (isto é padrão, o sufixo
|
||||
pode ser alterado pela configuração <link
|
||||
linkend="ini.yaf.name-suffix">yaf.name_suffix</link>) para decidir se é
|
||||
uma classe MVC:
|
||||
<example>
|
||||
<title>Distinções de classes MVC</title>
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
Controller Classes =>
|
||||
// ***Controller
|
||||
|
||||
Model Classes =>
|
||||
// ***Model
|
||||
|
||||
Plugin Classes =>
|
||||
// ***Plugin
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
Alguns exemplos:
|
||||
<example>
|
||||
<title>Exemplo de carregamento MVC</title>
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
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
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
A partir do Yaf 2.1.18, é oferecido suporte ao carregamento automático de controladores para o lado do script do usuário
|
||||
(isto é, o carregamento automático é acionado pelo script PHP do usuário, por exemplo: acessar uma
|
||||
propriedade estática do controlador no Bootstrap ou em Plugins),
|
||||
mas o carregador automático apenas tenta localizar o script da classe do controlador sob o pasta
|
||||
padrão do módulo, que é "APPLICATION_PATH/controllers/".
|
||||
</para>
|
||||
</note>
|
||||
Além disso, o diretório será afetado por <link linkend="ini.yaf.lowcase-path">yaf.lowcase_path</link>.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-loader.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Loader</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Loader</classname>
|
||||
</ooclass>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-loader.props.local-ns">_local_ns</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-loader.props.library">_library</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-loader.props.global-library">_global_library</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>static</modifier>
|
||||
<varname linkend="yaf-loader.props.instance">_instance</varname>
|
||||
</fieldsynopsis>
|
||||
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-loader')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-loader')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- {{{ Yaf_Loader properties -->
|
||||
<section xml:id="yaf-loader.props">
|
||||
&reftitle.properties;
|
||||
<variablelist>
|
||||
<varlistentry xml:id="yaf-loader.props.local-ns">
|
||||
<term><varname>_local_ns</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-loader.props.library">
|
||||
<term><varname>_library</varname></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Por padrão, este valor é <link
|
||||
linkend="configuration.yaf.directory">application.directory</link> . "/library".
|
||||
Ele pode ser alterado no application.ini (application.library) ou com uma chamada a
|
||||
<methodname>Yaf_Loader::setLibraryPath</methodname>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-loader.props.global-library">
|
||||
<term><varname>_global_library</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-loader.props.instance">
|
||||
<term><varname>_instance</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
</partintro>
|
||||
|
||||
|
||||
&reference.yaf.entities.yaf-loader;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
153
reference/yaf/yaf-plugin-abstract.xml
Normal file
153
reference/yaf/yaf-plugin-abstract.xml
Normal file
@@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-plugin-abstract" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Plugin_Abstract</title>
|
||||
<titleabbrev>Yaf_Plugin_Abstract</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Plugin_Abstract intro -->
|
||||
<section xml:id="yaf-plugin-abstract.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
Os plugins permitem fácil extensibilidade e personalização da estrutura.
|
||||
</para>
|
||||
<para>
|
||||
Plugins são classes. A definição real da classe irá variar de acordo com o
|
||||
componente - pode ser necessário implementar esta interface, mas o fato
|
||||
é que o próprio plugin é uma classe.
|
||||
</para>
|
||||
<para>
|
||||
Um plugin pode ser carregado no Yaf usando
|
||||
<methodname>Yaf_Dispatcher::registerPlugin</methodname>. Após
|
||||
o registro, todos os métodos que o plugin implementou de acordo com esta
|
||||
interface serão chamados no momento apropriado.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section role="examples">
|
||||
&reftitle.examples;
|
||||
<example>
|
||||
<title>Exemplo de plugin</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
/* A classe Bootstrap deve ser definida em ./application/Bootstrap.php */
|
||||
class Bootstrap extends Yaf_Bootstrap_Abstract {
|
||||
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
|
||||
/* registrar um plugin */
|
||||
$dispatcher->registerPlugin(new TestPlugin());
|
||||
}
|
||||
}
|
||||
|
||||
/* a classe do plugin deve ser colocada em ./application/plugins/ */
|
||||
class TestPlugin extends Yaf_Plugin_Abstract {
|
||||
public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
|
||||
/* Antes do roteamento.
|
||||
Neste gancho, o usuário pode reescrever o URL. */
|
||||
var_dump("routerStartup");
|
||||
}
|
||||
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
|
||||
/* Roteamento completo.
|
||||
Neste gancho, o usuário pode verificar o login. */
|
||||
var_dump("routerShutdown");
|
||||
}
|
||||
public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
|
||||
var_dump("dispatchLoopStartup");
|
||||
}
|
||||
public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
|
||||
var_dump("preDispatch");
|
||||
}
|
||||
public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
|
||||
var_dump("postDispatch");
|
||||
}
|
||||
public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
|
||||
/* Gancho final.
|
||||
Neste gancho o usuário pode fazer log ou implementar layout. */
|
||||
var_dump("dispatchLoopShutdown");
|
||||
}
|
||||
}
|
||||
|
||||
Class IndexController extends Yaf_Controller_Abstract {
|
||||
public function indexAction() {
|
||||
return FALSE; // evita a renderização
|
||||
}
|
||||
}
|
||||
|
||||
$config = array(
|
||||
"application" => array(
|
||||
"directory" => dirname(__FILE__) . "/application/",
|
||||
),
|
||||
);
|
||||
|
||||
$app = new Yaf_Application($config);
|
||||
$app->bootstrap()->run();
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs.similar;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
string(13) "routerStartup"
|
||||
string(14) "routerShutdown"
|
||||
string(19) "dispatchLoopStartup"
|
||||
string(11) "preDispatch"
|
||||
string(12) "postDispatch"
|
||||
string(20) "dispatchLoopShutdown"
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</section>
|
||||
|
||||
|
||||
<section xml:id="yaf-plugin-abstract.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Plugin_Abstract</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Plugin_Abstract</classname>
|
||||
</ooclass>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-plugin-abstract')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-plugin-abstract;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
102
reference/yaf/yaf-registry.xml
Normal file
102
reference/yaf/yaf-registry.xml
Normal file
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-registry" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Registry</title>
|
||||
<titleabbrev>Yaf_Registry</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Registry intro -->
|
||||
<section xml:id="yaf-registry.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
Todos os métodos de <classname>Yaf_Registry</classname> são declarados como estáticos, tornando-o
|
||||
universalmente acessível. Isso fornece a capacidade de obter ou definir quaisquer dados
|
||||
personalizados de qualquer maneira no código, conforme necessário.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-registry.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Registry</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Registry</classname>
|
||||
</ooclass>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||||
<fieldsynopsis>
|
||||
<modifier>static</modifier>
|
||||
<varname linkend="yaf-registry.props.instance">_instance</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-registry.props.entries">_entries</varname>
|
||||
</fieldsynopsis>
|
||||
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-registry')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-registry')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- {{{ Yaf_Registry properties -->
|
||||
<section xml:id="yaf-registry.props">
|
||||
&reftitle.properties;
|
||||
<variablelist>
|
||||
<varlistentry xml:id="yaf-registry.props.instance">
|
||||
<term><varname>_instance</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-registry.props.entries">
|
||||
<term><varname>_entries</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-registry;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
175
reference/yaf/yaf-request-http.xml
Normal file
175
reference/yaf/yaf-request-http.xml
Normal file
@@ -0,0 +1,175 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-request-http" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Request_Http</title>
|
||||
<titleabbrev>Yaf_Request_Http</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Request_Http intro -->
|
||||
<section xml:id="yaf-request-http.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
Qualquer requisição de cliente é inicializada como um
|
||||
<classname>Yaf_Request_Http</classname>.
|
||||
Os métodos desta classe permitem obter informações da requisição como
|
||||
consulta do URI e parâmetros POST.
|
||||
<note>
|
||||
<para>
|
||||
Por segurança, $_GET e $_POST são somente-leitura no Yaf, ou seja,
|
||||
se for definido um valor para estas variáveis globais, ele não poderá ser obtido por
|
||||
<methodname>Yaf_Request_Http::getQuery</methodname> ou
|
||||
<methodname>Yaf_Request_Http::getPost</methodname>.
|
||||
</para>
|
||||
<para>
|
||||
Porém, existem usos que demandam este recurso, como os testes de unidade. Por isso,
|
||||
o Yaf pode ser compilado com --enable-yaf-debug, que permite que o Yaf leia os
|
||||
valores definidos pelo usuário via script.
|
||||
</para>
|
||||
<para>
|
||||
Neste caso, o Yaf emitirá um alerta E_STRICT para lembrar sobre
|
||||
isso: "Strict Standards: you are running yaf in debug mode".
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-request-http.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Request_Http</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Request_Http</classname>
|
||||
</ooclass>
|
||||
|
||||
<ooclass>
|
||||
<modifier>extends</modifier>
|
||||
<classname>Yaf_Request_Abstract</classname>
|
||||
</ooclass>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||||
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-request-http')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-request-http')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
|
||||
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-request-abstract')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- {{{ Yaf_Request_Http properties -->
|
||||
<section xml:id="yaf-request-http.props">
|
||||
&reftitle.properties;
|
||||
<variablelist>
|
||||
<varlistentry xml:id="yaf-request-http.props.module">
|
||||
<term><varname>module</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.controller">
|
||||
<term><varname>controller</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.action">
|
||||
<term><varname>action</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.method">
|
||||
<term><varname>method</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.params">
|
||||
<term><varname>params</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.language">
|
||||
<term><varname>language</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.exception">
|
||||
<term><varname>_exception</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.base-uri">
|
||||
<term><varname>_base_uri</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.uri">
|
||||
<term><varname>uri</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.dispatched">
|
||||
<term><varname>dispatched</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-request-http.props.routed">
|
||||
<term><varname>routed</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-request-http;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
119
reference/yaf/yaf-route-map.xml
Normal file
119
reference/yaf/yaf-route-map.xml
Normal file
@@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-route-map" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Route_Map</title>
|
||||
<titleabbrev>Yaf_Route_Map</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Route_Map intro -->
|
||||
<section xml:id="yaf-route-map.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<classname>Yaf_Route_Map</classname> é uma rota incluída no Yaf. Ela simplesmente
|
||||
converte um ponto terminal de URI (aquela parte do URI que vem depois da
|
||||
base: veja <methodname>Yaf_Request_Abstract::setBaseUri</methodname>)
|
||||
em um nome de controlador nome ou nome de ação (depende do parâmetro passado para
|
||||
<methodname>Yaf_Route_Map::__construct</methodname>), com a seguinte regra:
|
||||
A => controlador A.
|
||||
A/B/C => controlador A_B_C.
|
||||
A/B/C/D/E => controlador A_B_C_D_E.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Se o segundo parâmetro de
|
||||
<methodname>Yaf_Route_Map::__construct</methodname> for especificado,
|
||||
apenas a parte antes do delimitador do URI será usada no encaminhamento, a parte posterior
|
||||
será usada como parâmetros da requisição do encaminhamento (consulte a seção de exemplos de
|
||||
<methodname>Yaf_Route_Map::__construct</methodname>).
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-route-map.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Route_Map</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Route_Map</classname>
|
||||
</ooclass>
|
||||
|
||||
<oointerface>
|
||||
<interfacename>Yaf_Route_Interface</interfacename>
|
||||
</oointerface>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-route-map.props.ctl-router">_ctl_router</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-route-map.props.delimiter">_delimiter</varname>
|
||||
</fieldsynopsis>
|
||||
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-route-map')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-route-map')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- {{{ Yaf_Route_Map properties -->
|
||||
<section xml:id="yaf-route-map.props">
|
||||
&reftitle.properties;
|
||||
<variablelist>
|
||||
<varlistentry xml:id="yaf-route-map.props.ctl-router">
|
||||
<term><varname>_ctl_router</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-route-map.props.delimiter">
|
||||
<term><varname>_delimiter</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-route-map;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
125
reference/yaf/yaf-route-simple.xml
Normal file
125
reference/yaf/yaf-route-simple.xml
Normal file
@@ -0,0 +1,125 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-route-simple" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Route_Simple</title>
|
||||
<titleabbrev>Yaf_Route_Simple</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Route_Simple intro -->
|
||||
<section xml:id="yaf-route-simple.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<classname>Yaf_Route_Simple</classname> procurará a correspondência à string da consulta e
|
||||
encontrará a informação de rota.
|
||||
</para>
|
||||
<para>
|
||||
Tudo que é necessário fazer é informar ao <classname>Yaf_Route_Simple</classname> qual chave de $_GET é
|
||||
o módulo, qual chave é o controlador e qual chave é a ação.
|
||||
</para>
|
||||
<para>
|
||||
<methodname>Yaf_Route_Simple::route</methodname> sempre retorna
|
||||
&true;,
|
||||
por isso é importante incluir <classname>Yaf_Route_Simple</classname> na frente da pilha de rotas,
|
||||
caso contrário todas as outras rotas não serão chamadas.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-route-simple.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Route_Simple</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Route_Simple</classname>
|
||||
</ooclass>
|
||||
|
||||
<oointerface>
|
||||
<interfacename>Yaf_Route_Interface</interfacename>
|
||||
</oointerface>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-route-simple.props.controller">controller</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-route-simple.props.module">module</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-route-simple.props.action">action</varname>
|
||||
</fieldsynopsis>
|
||||
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-route-simple')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-route-simple')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- {{{ Yaf_Route_Simple properties -->
|
||||
<section xml:id="yaf-route-simple.props">
|
||||
&reftitle.properties;
|
||||
<variablelist>
|
||||
<varlistentry xml:id="yaf-route-simple.props.controller">
|
||||
<term><varname>controller</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-route-simple.props.module">
|
||||
<term><varname>module</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-route-simple.props.action">
|
||||
<term><varname>action</varname></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-route-simple;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
82
reference/yaf/yaf-route-static.xml
Normal file
82
reference/yaf/yaf-route-static.xml
Normal file
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-route-static" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Route_Static</title>
|
||||
<titleabbrev>Yaf_Route_Static</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Route_Static intro -->
|
||||
<section xml:id="yaf-route-static.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
Por padrão, <classname>Yaf_Router</classname> tem apenas uma
|
||||
<classname>Yaf_Route_Static</classname> como sua rota padrão.
|
||||
</para>
|
||||
<para>
|
||||
<classname>Yaf_Route_Static</classname> é projetada para suportar o
|
||||
requisito de 80%.
|
||||
</para>
|
||||
<para>
|
||||
Observe que é desnecessário instanciar uma <classname>Yaf_Route_Static</classname>
|
||||
ou adicioná-la à pilha de rotas do <classname>Yaf_Router</classname>,
|
||||
pois sempre haverá uma na pilha do<classname>Yaf_Router</classname>
|
||||
e ela sempre será chamada por último.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-route-static.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Route_Static</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Route_Static</classname>
|
||||
</ooclass>
|
||||
|
||||
<oointerface>
|
||||
<interfacename>Yaf_Router</interfacename>
|
||||
</oointerface>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-route-static')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-route-static;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
242
reference/yaf/yaf-router.xml
Normal file
242
reference/yaf/yaf-router.xml
Normal file
@@ -0,0 +1,242 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-router" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_Router</title>
|
||||
<titleabbrev>Yaf_Router</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_Router intro -->
|
||||
<section xml:id="yaf-router.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<classname>Yaf_Router</classname> é o roteador padrão da extensão. Roteamento é
|
||||
o processo de pegar um ponto de extremidade de URI (aquela parte do URI que vem
|
||||
depois da base: veja <methodname>Yaf_Request_Abstract::setBaseUri</methodname>)
|
||||
e decompô-lo em parâmetros para determinar qual módulo, controlador e
|
||||
ação desse controlador deve receber a requisição. Esses valores de módulo,
|
||||
controlador, ação e outros parâmetros são empacotados em um
|
||||
objeto <classname>Yaf_Request_Abstract</classname> que é então processado por
|
||||
<classname>Yaf_Dispatcher</classname>. O roteamento ocorre apenas uma vez: quando a requisição
|
||||
é recebida inicialmente e antes do primeiro controlador ser despachado.
|
||||
|
||||
<classname>Yaf_Router</classname> foi projetado para permitir funcionalidades
|
||||
semelhantes a mod_rewrite usando estruturas PHP puras. É vagamente baseado no
|
||||
roteamento Ruby on Rails e não requer nenhum conhecimento prévio de reescrita
|
||||
de URL de servidor web. Ele foi projetado para funcionar com uma única regra mod_rewrite
|
||||
do Apache (uma destas):
|
||||
<example>
|
||||
<title>Regra de re-escrita para Apache</title>
|
||||
<programlisting role="conf">
|
||||
<![CDATA[
|
||||
RewriteEngine on
|
||||
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
ou (preferível):
|
||||
<example>
|
||||
<title>Regra de re-escrita para Apache</title>
|
||||
<programlisting role="conf">
|
||||
<![CDATA[
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} -s [OR]
|
||||
RewriteCond %{REQUEST_FILENAME} -l [OR]
|
||||
RewriteCond %{REQUEST_FILENAME} -d
|
||||
RewriteRule ^.*$ - [NC,L]
|
||||
RewriteRule ^.*$ index.php [NC,L]
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
Se o Lighttpd for usado, a seguinte regra de re-escrita é válida:
|
||||
<example>
|
||||
<title>Regra de re-escrita para Lighttpd</title>
|
||||
<programlisting role="conf">
|
||||
<![CDATA[
|
||||
url.rewrite-once = (
|
||||
".*\?(.*)$" => "/index.php?$1",
|
||||
".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
|
||||
"" => "/index.php"
|
||||
)
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
Se o Nginx for usado, use a seguinte regra de re-escrita:
|
||||
<example>
|
||||
<title>Regra de re-escrita para Nginx</title>
|
||||
<programlisting role="conf">
|
||||
<![CDATA[
|
||||
server {
|
||||
listen ****;
|
||||
server_name yourdomain.com;
|
||||
root document_root;
|
||||
index index.php index.html;
|
||||
|
||||
if (!-e $request_filename) {
|
||||
rewrite ^/(.*) /index.php/$1 last;
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-router.default">
|
||||
<title>Rota padrão</title>
|
||||
<para>
|
||||
<classname>Yaf_Router</classname> vem pré-configurado com uma rota padrão
|
||||
<classname>Yaf_Route_Static</classname>, que corresponderá aos URIs no formato
|
||||
de controlador/ação. Além disso, um nome de módulo pode ser especificado como o primeiro
|
||||
elemento do caminho, permitindo URIs no formato módulo/controlador/ação. Por fim,
|
||||
também corresponderá a quaisquer parâmetros adicionais anexados ao URI por padrão
|
||||
- controlador/ação/var1/valor1/var2/valor2.
|
||||
<note>
|
||||
<para>
|
||||
O nome do módulo deve ser definido na configuração, considerando application.module="Index,Foo,Bar".
|
||||
Neste caso apenas Index, Foo e Bar podem ser considerados como nome do módulo.
|
||||
Caso não seja configurado, existirá apenas um módulo chamado "Index".
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Alguns exemplos de como essas rotas são correspondidas:
|
||||
<example>
|
||||
<title>Exemplo de <classname>Yaf_Route_Static</classname> (rota padrão)</title>
|
||||
<programlisting role="conf">
|
||||
<![CDATA[
|
||||
// Assumindo a seguinte configuração:
|
||||
$conf = array(
|
||||
"application" => array(
|
||||
"modules" => "Index,Blog",
|
||||
),
|
||||
);
|
||||
|
||||
Apenas controlador:
|
||||
http://examplo/noticias
|
||||
controlador == noticias
|
||||
Apenas ação (quando definido yaf.action_prefer=1 no php.ini)
|
||||
ação == noticias
|
||||
|
||||
Módulo inválido é mapeado para nome de controlador:
|
||||
http://example/foo
|
||||
controlador == foo
|
||||
|
||||
Módulo + controlador:
|
||||
http://example/blog/arquivo
|
||||
module == blog
|
||||
controlador == arquivo
|
||||
|
||||
Módulo + controlado + ação:
|
||||
http://example/blog/arquivo/lista
|
||||
module == blog
|
||||
controlador == arquivo
|
||||
ação == lista
|
||||
|
||||
Módulo + controlado + ação + parâmetros:
|
||||
http://example/blog/archive/lista/ordem/alfa/data/decres
|
||||
module == blog
|
||||
controlador == archive
|
||||
ação == lista
|
||||
ordem == alfa
|
||||
data == decres
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="yaf-router.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_Router</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_Router</classname>
|
||||
</ooclass>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-router.props.routes">_routes</varname>
|
||||
</fieldsynopsis>
|
||||
<fieldsynopsis>
|
||||
<modifier>protected</modifier>
|
||||
<varname linkend="yaf-router.props.current">_current</varname>
|
||||
</fieldsynopsis>
|
||||
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-router')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-router')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- {{{ Yaf_Router properties -->
|
||||
<section xml:id="yaf-router.props">
|
||||
&reftitle.properties;
|
||||
<variablelist>
|
||||
<varlistentry xml:id="yaf-router.props.routes">
|
||||
<term><varname>_routes</varname></term>
|
||||
<listitem>
|
||||
<para>
|
||||
registered routes stack
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="yaf-router.props.current">
|
||||
<term><varname>_current</varname></term>
|
||||
<listitem>
|
||||
<para>
|
||||
after routing phase, this indicated the name of which route
|
||||
is used to route current request.
|
||||
|
||||
you can get this name by
|
||||
<methodname>Yaf_Router::getCurrentRoute</methodname>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-router;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
70
reference/yaf/yaf-view-interface.xml
Normal file
70
reference/yaf/yaf-view-interface.xml
Normal file
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: leonardolara Status: ready -->
|
||||
|
||||
<reference xml:id="class.yaf-view-interface" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<title>A classe Yaf_View_Interface</title>
|
||||
<titleabbrev>Yaf_View_Interface</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
|
||||
<!-- {{{ Yaf_View_Interface intro -->
|
||||
<section xml:id="yaf-view-interface.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
Yaf fornece aos desenvolvedores a capacidade de usar um mecanismo de visualização personalizado em vez
|
||||
do mecanismo incluído que é <classname>Yaf_View_Simple</classname>. Há
|
||||
um exemplo para explicar como isto é feito. Consulte
|
||||
<methodname>Yaf_Dispatcher::setView</methodname>.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<section xml:id="yaf-view-interface.synopsis">
|
||||
&reftitle.classsynopsis;
|
||||
|
||||
<!-- {{{ Synopsis -->
|
||||
<classsynopsis>
|
||||
<ooclass><classname>Yaf_View_Interface</classname></ooclass>
|
||||
|
||||
<!-- {{{ Class synopsis -->
|
||||
<classsynopsisinfo>
|
||||
<ooclass>
|
||||
<classname>Yaf_View_Interface</classname>
|
||||
</ooclass>
|
||||
</classsynopsisinfo>
|
||||
<!-- }}} -->
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.yaf-view-interface')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
</section>
|
||||
|
||||
</partintro>
|
||||
|
||||
&reference.yaf.entities.yaf-view-interface;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- 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
|
||||
-->
|
||||
Reference in New Issue
Block a user