【问题标题】:Autoloading classes in superclass在超类中自动加载类
【发布时间】:2014-02-23 11:56:42
【问题描述】:

我正在尝试构建自己的 MVC 框架,但自动加载器出现问题。

我有以下目录布局:

-application
--Model
---RegiserUser.php
--Libs
---Base.php
---Model.php
---Model
--Controller
---Login.php

Model_RegiserUser 扩展了扩展 Base 的 Model

自动加载器方法在基类中。我正在尝试模仿您在 Zend 中加载类的方式:

protected function __autoload( $class_name )
    {
        echo 'test';
        $filename = str_replace( '_', DIRECTORY_SEPARATOR, strtolower( $class_name ) ) . '.php';

        $file = ROOT . $filename;

        echo $file;

        if( !file_exists( $file ) ) {
            return FALSE;
        }
        include $file;
    }

我收到此错误:

致命错误:在第 31 行的 C:\EasyPHP\data\localweb\application\controller\Login.php 中找不到类“Model_RegisterUser”

【问题讨论】:

  • "我正在尝试模拟您在 Zend 中加载类的方式" - Zend\Loader 是一个独立组件,因此如果您想要相同的行为,则无需重新发明轮子:@ 987654321@
  • 更多的是学习练习

标签: php autoloader


【解决方案1】:

strtolower 是你的问题... 在像 unix 这样的系统上,您尝试加载文件“registeruser.php”而不是“RegiserUser.php”(区分大小写;))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多