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

 钢铁年代2502883227 发布于 2022-12-01 08:55

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

比如:Index.php的内容

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

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

路过的怎么处理的,说说

5 个回答
  • 我也想知道答案。 原本想

    <?php
    namespace App\Controllers;
    
    class IndexController extends Yaf\Controller_Abstract
    {
        function indexAction()
        {
            // do sth.
        }
    }
    

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

    2022-12-01 08:59 回答
  • php.ini 开启

    yaf.use_namespace = 1
    yaf.use_spl_autoload = 1

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

    /** 自动加载器 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);
    }

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

    <?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');
        }
    }

    不过开启 use_spl_autoload 会影响效率

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

    use_spl_autoload

    2022-12-01 08:59 回答
  • 也是一直报错,原来是index里加了 namesapce App\Controllers

    2022-12-01 08:59 回答
  • yaf中的controller,model都是属于根命名空间,无需再去定义,自动引入机制这是写在扩展中的,没必要处理

    2022-12-01 08:59 回答
  • 个人总觉得在一个文件里写一堆的use ......;不太美观。如果跨项目调用 这个文件,会不会出错呢。

    2022-12-01 08:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有