所以我在localhost中有一个公共目录,其中包含一些我希望能够在当前laravel项目中使用的类。
那么我将如何在laravel中包含这些外部类/文件?
我尝试在composer.json文件中添加这些文件,
"autoload": {
"classmap": [
"database",
"../public_classes/priceClass.php"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"../public_classes/priceClass.php"
]
},
并执行composer dump-autoload
,然后当我尝试调用该函数时,它无法正常工作。
答案 0 :(得分:2)
如果您使用PSR-4,则无需在composer.json
中添加任何内容。例如,您可以在\app\MyClasses\MyClass.php
中创建PHP文件,并在自定义类中使用此命名空间:namespace App\MyClasses
。
Laravel将为您自动加载此课程。
答案 1 :(得分:2)
我还想在我的Laravel项目中包含一些类,因为我只是将文件复制到一个新目录(app / Libraries)中,并将Package名称分配给所有类,然后按PSR-4 Autoloading standard列出所有这些类文件和我在composer.json
。
...
"autoload": {
"classmap": [
"app/Libraries",
],
...
希望这能解决你的问题...
乐意帮助!!!
答案 2 :(得分:0)
我最终要做的是将路径放在我的composer.json文件中,然后执行composer dump-autoload
。
composer.json:
"autoload": {
"classmap": [
"database",
"../public_classes/priceClass.php"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"../public_classes/priceClass.php"
]
},
然后,我想添加的文件,我将其编辑为简单的函数而不是oop的函数。
priceClass.php:
<?php
function getPrices(){
/*
*
*
*Statements here
*
*/
}
?>
只需通过
在我的laravel控制器中调用它$prices = getPrices();
我这样做了,因为当我试图做类似的事情时:
class Prices(){
public function getPrices(){
....
}
}
然后在我的laravel控制器中调用它:
$priceClass = new Prices();
$prices = $priceClass->getPrices();
我最终遇到了错误,例如:找不到价格类。