Top*_*her 4 php namespaces class function laravel
我正在尝试构建一个包含一些常用函数的类,我可以在我的项目的任何地方使用这些函数。我不知道在哪里构建包含类的 PHP 文件,也不知道如何调用它们...谁能帮我找出所有这些东西的位置?谢谢!!!
/App/Http/Helpers/MyClasses.php
<?php
class PopularFunctions {
public function sayhi() {
echo 'hi';
}
}
?>
Run Code Online (Sandbox Code Playgroud)
/App/Http/Controllers/TasksController.php
<?php
namespace App\Http\Controllers;
use App\Http\Helpers\MyClasses;
class TasksController extends Controller {
public function index() {
$myfunctions = new PopularFunctions();
$myfunctions->sayhi();
}
}
Run Code Online (Sandbox Code Playgroud)
这将返回:找不到类“App\Http\Controllers\PopularFunctions”。
Kel*_*vin 15
基本上,我们可以在app目录中创建另一个目录(MyCustomStuff例如),然后namespace正确创建我们的文件。
我知道两种方法。
1. 通过 Composer 实现全局函数
应用程序/MyCustomStuff/MyGlobalTools.php
<?php
function sayhi() {
echo 'hi';
}
?>
Run Code Online (Sandbox Code Playgroud)
然后在composer.json中"autoload": { }添加
"files": [
"app/MyCustomStuff/MyGlobalTools.php"
]
Run Code Online (Sandbox Code Playgroud)
所以结构将是
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/MyCustomStuff/MyGlobalTools.php"
]
},
Run Code Online (Sandbox Code Playgroud)
更改自动加载后。然后运行composer dump-autoload
然后在控制器中,只需调用全局函数(无需导入),例如:
public function index() {
$res = sayHi();
}
Run Code Online (Sandbox Code Playgroud)
2. 或普通班
应用程序/MyCustomStuff/MyClass.php
<?php
namespace App\MyCustomStuff;
class MyClass {
function sayhi() {
echo 'hi';
}
}
?>
Run Code Online (Sandbox Code Playgroud)
在你的控制器中
<?php
namespace App\Http\Controllers;
use App\MyCustomStuff\MyClass;
class TasksController extends Controller {
public function index() {
$myfunctions = new MyClass();
$res = $myfunctions->sayhi();
}
}
Run Code Online (Sandbox Code Playgroud)
在App/Http 中创建一个目录说“Helpers”
在 Helpers 目录中创建一个类 CustomAvatar.php
<?php
class CustomAvatar{
public $default_avatar='avatar.png';
public function make_custom_avatar(){
// do your operation here
}
}
?>
Run Code Online (Sandbox Code Playgroud)
现在如果你想在你的控制器中使用这个类:
use App\Http\Helpers\CustomAvatar;
...
public function create_user(){
$customAvatar=new CustomAvatar();
$defaultAvatar = $customAvatar->default_avatar;
$user=new User();
$user->avatar=$defaultAvatar;
$user->save();
}
Run Code Online (Sandbox Code Playgroud)
在 Laravel 框架中,您只能在 app\Http\Controller 文件夹中创建控制器。如果您想创建自定义类,请在应用程序文件夹内创建。
例子:
文件:app\FAReports.php
命名空间应用程序;
FA 报告类 {
// 防御 //
}
| 归档时间: |
|
| 查看次数: |
6737 次 |
| 最近记录: |