> 백엔드 개발 > PHP 튜토리얼 > yaf. use_namespace=1的情况下,controller怎么使用namespace

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

WBOY
풀어 주다: 2016-06-06 20:26:34
원래의
2639명이 탐색했습니다.

请教个问题:
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>
로그인 후 복사
로그인 후 복사

没法加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>
로그인 후 복사
로그인 후 복사

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

路过的怎么处理的,说说

我也想知道答案。 原本想

<code><?php namespace App\Controllers;

class IndexController extends Yaf\Controller_Abstract
{
    function indexAction()
    {
        // do sth.
    }
}
</code></code>
로그인 후 복사

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

php.ini 开启

<code>yaf.use_namespace = 1
yaf.use_spl_autoload = 1</code>
로그인 후 복사

定义加载器 可以在公用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>
로그인 후 복사

然后在 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>
로그인 후 복사

不过开启 use_spl_autoload 会影响效率

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

use_spl_autoload

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿