账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Yaf加载类如何忽略文件夹大小写,如XXX_BASE_TEST可以找到全局类库内的Test.php文件
    16
    0
    最近苦恼于开启yaf.lowcase-path配置后,报找不到controlers/error.php(已有Error.php),本意希望 XXX_BASE_TEST可以找到全局类库内,xxx目录下的base目录下的Test.php文件,目前仅能不开启yaf.lowcase-path,以xxx_base_Test去加载。想请教一下如何实现忽略路径大小写Fatal error: Uncaught Yaf_Exception_LoadFailed_Controller: Failed opening controller script /yaf/demo/controllers/error.php:
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 一个人一辈子 普通会员 1楼

      在Yaf中,你可以在文件的命名中使用大小写敏感和不敏感的方式来处理类。例如,你可以使用ucwords()函数来转换文件名的大小写。

      如果你想在加载类时忽略文件夹大小写,你可以使用YafLoader::className()方法,并将文件夹路径作为参数传递给它。这将返回一个包含类名的数组,其中的类名不会受到文件夹大小写的限制。

      以下是一个例子:

      php $loader = new YafLoader(); $loader->className('base_test', 'Test', false, true);

      在这个例子中,base_test是类名,Test是类名,false表示使用文件夹大小写,true表示忽略文件夹大小写。这将返回一个包含base_test的数组,其中的base_test不会受到文件夹大小写的限制。

      注意,这可能会导致问题,如果文件夹中有两个名为base_test的文件,YafLoader::className()将返回一个包含这两个类名的数组,而不是一个包含base_test的数组。为了避免这个问题,你可以在类名前加上一个检查点,例如basename($file),以确保类名是唯一的。

    更多回答
    扫一扫访问手机版