VGD*_*VGD 2 php alias class laravel
所以我想为自定义类添加一个别名,以便能够在刀片中使用它们:
<?php
namespace App\Classes;
class Requirement
{
public static function Test()
{
return "hello";
}
}
Run Code Online (Sandbox Code Playgroud)
在config/app.php
我添加了这样的别名:
...
'Requirement' => App\Classes\Requirement::class
Run Code Online (Sandbox Code Playgroud)
然后,我希望能够在像这样的刀片模板中调用它
{{ Requirement::Test() }}
Run Code Online (Sandbox Code Playgroud)
但是别名不管怎么样.我也试过了composer dump-autoload
,但它还没有用.
顺便说一句:添加这样的自定义类是实现特定于站点的逻辑的可行方法,例如从数据库中检索和处理数据,还是有更好的方法?
编辑1
我创建Requirement.php
在app/Facades
与以下内容
<?php
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class Requirement extends Facade{
protected static function getFacadeAccessor() { return 'Requirement'; }
}
Run Code Online (Sandbox Code Playgroud)
加PageContentProvider.php
中app/Providers
包含以下内容
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class PageContentProvider extends ServiceProvider
{
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind('Requirement', function($app){
return new \App\Classes\Requirement();
});
}
}
Run Code Online (Sandbox Code Playgroud)
并在config/app.php
别名
'Requirement'=>App\Facades\Requirement::class
Run Code Online (Sandbox Code Playgroud)
以及提供者
App\Providers\PageContentProvider::class
Run Code Online (Sandbox Code Playgroud)
但它仍然无法正常工作.
编辑2
通过添加类似的东西
exit();
Run Code Online (Sandbox Code Playgroud)
要么
echo "blabla";
Run Code Online (Sandbox Code Playgroud)
在里面register()
,什么都没变.这是否表PageContentProvider
明甚至没有加载?
编辑3
由于标准AppServiceProvider
被加载时,我删除的coresponding进入AppServiceProvider
中config/app.php
... ,它仍然工作!不知怎的,我的更改没有得到应用.有人有解决方案吗?
问题根本不是代码:在意识到改变config/app.php
没有应用之后,简单
php artisan config:clear
Run Code Online (Sandbox Code Playgroud)
确切地说,我在问题中提出的每一个问题.