全球阶级不承认laravel

时间:2014-07-13 01:07:31

标签: php laravel-4

我正在尝试使用laravel按类实现全局函数,这是我的方法:

创建一个新类:app/libraries/regex.class.php

class Regex{
    public static function isUsername($username){
        $regex = "/^[a-zA-Z0-9_]+$/";
        if (preg_match($regex, $username))
            return true;
        else
            return false;
    }
}

将新库文件夹添加到app/start/global.php

ClassLoader::addDirectories(array(
    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
    app_path().'/libraries',
));

然后在路由调用的视图中使用该函数:

 if(Regex::isUsername($_REQUEST['username'])==true){
    echo "<br><br>did it";
}
else{
    echo "<br><br>failed it";
}

如果我将isUsername()函数放在我使用它的视图的顶部,它可以正常工作但尝试使其全局抛出错误。但是我得到:Class 'Regex' not found在我尝试使用它的视图中的行。显然它没有上课,但我不明白为什么?

编辑:我能够通过将require app_path().'/libraries/regex.class.php';添加到全局文件的末尾来使其工作,它现在可以正常工作,但我仍然想知道为什么自动加载的原始尝试不起作用

1 个答案:

答案 0 :(得分:1)

您应该根据文件所包含的类命名文件,因此在这种情况下,应将其命名为Regex.php。 Laravel类加载器在以这种方式命名的文件中查找类。

您还应该确保已将libraries文件夹添加到composer.json中的autoload.classmap部分。