Home > Backend Development > PHP Tutorial > yaf. use_namespace=1的情况下,controller怎么使用namespace

yaf. use_namespace=1的情况下,controller怎么使用namespace

WBOY
Release: 2016-06-06 20:26:34
Original
2638 people have browsed it

请教个问题:
yaf. use_namespace=1的情况下,controller怎么使用namespace?

比如:Index.php的内容

<code>use Yaf\Controller_Abstract;
use Yaf\Dispatcher;
class IndexController extends Controller_Abstract
{
    public function indexAction()
    {
        Dispatcher::getInstance()->disableView(0);
        echo 'Great,It Works!';
    }
}</code>
Copy after login
Copy after login

没法加namespace了,文件名是Index.php

路过的怎么处理的,说说

回复内容:

请教个问题:
yaf. use_namespace=1的情况下,controller怎么使用namespace?

比如:Index.php的内容

<code>use Yaf\Controller_Abstract;
use Yaf\Dispatcher;
class IndexController extends Controller_Abstract
{
    public function indexAction()
    {
        Dispatcher::getInstance()->disableView(0);
        echo 'Great,It Works!';
    }
}</code>
Copy after login
Copy after login

没法加namespace了,文件名是Index.php

路过的怎么处理的,说说

我也想知道答案。 原本想

<code><?php namespace App\Controllers;

class IndexController extends Yaf\Controller_Abstract
{
    function indexAction()
    {
        // do sth.
    }
}
</code></code>
Copy after login

一直报错。去掉namespace App\Controllers就行。不知道怎么办了。

php.ini 开启

<code>yaf.use_namespace = 1
yaf.use_spl_autoload = 1</code>
Copy after login

定义加载器 可以在公用function中

<code>/** 自动加载器 modules */
function autoload_modules($class){
    $class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
    
    ...

    $file = APPLICATION_PATH . DIRECTORY_SEPARATOR . 'xxxx' . $class . '.php';
    if( file_exists($file) )
        Loader::import($file);
}</code>
Copy after login

然后在 Bootstrap 文件中用 spl_autoload_register 自定义加载器

<code><?php use \Yaf\Bootstrap_Abstract;
use \Yaf\Dispatcher;
use \Yaf\Loader;

class Bootstrap extends Bootstrap_Abstract
{
    /**  自动加载器 */
    function _initAutoload(Yaf\Dispatcher $dispatcher)
    {
        Loader::import('xxxx/function.php');
        spl_autoload_register('autoload_modules');
    }
}</code></code>
Copy after login

不过开启 use_spl_autoload 会影响效率

<code>开启的情况下, Yaf在加载不成功的情况下, 会继续让PHP的自动加载函数加载, 从性能考虑, 除非特殊情况, 否则保持这个选项关闭
</code>
Copy after login

use_spl_autoload

也是一直报错,原来是index里加了 namesapce App\Controllers

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template