Php 在laravel中编写用户定义的类?
我在Php 在laravel中编写用户定义的类?,php,laravel,laravel-4,Php,Laravel,Laravel 4,我在libraries/myclass.php中有一个类和一个名为myFunction的函数。我还尝试用以下代码在控制器中调用该函数 $myclasobj=new libraries\Myclass(); $returnvalue=$myclasobj->myFunction($para); 未找到该类的结果。我不想它作为一个助手类和自动加载这个类。我只想作为一个简单的类使用。我使用的是Laravel4。我怎样才能得到这个 更新 感谢大家的大力帮助。 根据@carousel,@ohgod
libraries/myclass.php
中有一个类和一个名为myFunction
的函数。我还尝试用以下代码在控制器中调用该函数
$myclasobj=new libraries\Myclass();
$returnvalue=$myclasobj->myFunction($para);
未找到该类的结果。我不想它作为一个助手类和自动加载这个类。我只想作为一个简单的类使用。我使用的是Laravel4。我怎样才能得到这个
更新感谢大家的大力帮助。
根据@carousel,@ohgod为什么我使用名称空间(实际上在我不知道它之前)。
我在名为
mylib
的库下创建一个目录,并将我的类(myclass.php
)移动到其中,然后添加名称空间mylib
到myclass.php
的顶部然后我添加
使用mylib\Myclass代码>到我的控制器。
最后,我将这些行添加到composer.json
,
"psr-0": {
"mylib": "app/libraries"
},
在这些事情之后,我的课程开始工作了。感谢大家帮助我为了在Laravel中使用,每个新的课程都必须链接到应用程序。可以通过多种方式完成:
Through class map
With namespacing
By its path
从这个意义上讲,没有简单的类。如果composer正确引用了所有类,则所有类都可以成为Laravel应用程序流的一部分
更新我的答案:
这里有一个最好的资源来解释外观。为了在Laravel中使用,每个新类都必须链接到应用程序。可以通过多种方式完成:
Through class map
With namespacing
By its path
从这个意义上讲,没有简单的类。如果composer正确引用了所有类,则所有类都可以成为Laravel应用程序流的一部分
更新我的答案:
这里有一个解释外观的最佳资源。尝试这样做,它会解决您的问题:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/classes', //we added this
));
尝试这样做,它会解决您的问题:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/classes', //we added this
));
假设文件尚未加载,将库/目录添加到类加载器的正确方法是修改composer.json以将目录添加到自动加载器
autoload: {
classmap: [
"...",
"libraries/"
]
}
之后,您将需要重建自动加载器,因此在主目录中,继续在您的终端中运行此操作:
$ php artisan dump-autoload -o
还要确保类实际上包含在名称空间中,因为使用
new libraries\myClass();
不从“库”文件夹加载“myClass”。如果您可以将其添加到原始问题中,这将很有帮助。假设文件尚未加载,将库/目录添加到类加载器的正确方法是修改composer.json以将目录添加到自动加载器
autoload: {
classmap: [
"...",
"libraries/"
]
}
之后,您将需要重建自动加载器,因此在主目录中,继续在您的终端中运行此操作:
$ php artisan dump-autoload -o
还要确保类实际上包含在名称空间中,因为使用
new libraries\myClass();
不从“库”文件夹加载“myClass”。如果您可以将其添加到原始问题中,这将很有帮助。您的命名空间在哪里定义libraries
不指示目录在本例中,您使用的是命名空间来访问该类,但该命名空间中不存在该类。请稍候,我使用名称空间尝试使用命名空间use app\libraries\Myclass代码>但仍然出错每个人都在这里投票。原因是什么?我不知道。我没有投任何反对票..您的命名空间在哪里定义libraries
不指示目录在本例中,您使用的是命名空间来访问该类,但该命名空间中不存在该类。请稍候,我使用名称空间尝试使用命名空间use app\libraries\Myclass代码>但仍然出错每个人都在这里投票。原因是什么?我不知道。我没有投任何反对票。我建议不要使用路径
,关于类映射
,在laravel中,它被称为门面类
。你能给出一些使用这个的例子吗?我不太明白,但我想说一下如何做到这一点。最佳做法是为所有类命名。manuthalasseril请重新参考一些好的composer/laravel教程。这是一个很大的主题,这里无法涵盖。我想看看投票否决我的帖子的理由。我建议不要使用路径
,关于类映射
,在laravel中,它被称为门面类
,你能给出一些我不太理解的例子吗,但我想说的是如何做到这一点。最佳做法是为所有类命名。manuthalasseril请重新参考一些好的composer/laravel教程。这是一个很大的主题,这里无法涵盖。我想看看投票否决我的帖子的理由。应该是classmap和composerdumpautoload@carousel使用artisan更静态,因为我不知道asker的composer安装在哪里。它也应该是composer dump autoload
(带连字符),它应该是classmap和composerdumpautoload@carousel使用artisan更静态,因为我不知道asker的composer安装在哪里。它也将是composer dump autoload
(带有连字符)。